lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7ca19413-1ac5-946c-c4d0-3d9d5d88e634@ti.com>
Date:   Mon, 16 Dec 2019 11:55:05 -0500
From:   Murali Karicheri <m-karicheri2@...com>
To:     <netdev@...r.kernel.org>, "Kwok, WingMan" <w-kwok2@...com>,
        <andrew@...n.ch>, <vivien.didelot@...il.com>,
        <f.fainelli@...il.com>, <jiri@...nulli.us>, <ivecera@...hat.com>
Subject: Re: RSTP with switchdev question

+ switchdev/DSA experts

On 12/13/2019 04:18 PM, Murali Karicheri wrote:
> Hi Netdev experts,
> 
> We are working on a switchdev based switch driver with L2 and stp
> offload.  Implemented the driver based on
> Documentation/networking/switchdev.txt
> Currently seeing an issue with switch over of a link failure. So
> wondering how this is supposed to work. So any help on this will
> be highy appreciated.
> 
> 
>                    0     1
>   |-------X---------- B ----------------------|
>   A                                           C root
>   |-------------------------------------------|
> 
>                   Figure 1)
> 
> At the start, A, B and C nodes are brought up and mstpd is started
> on all nodes and we get a toplogy as above with X marking the link
> that breaks the loop. We run a Ping from C to A and it works fine
> and takes the direct path from C to A. We then simulate a link
> failure to trigger topology change by disconnecting of the link
> A to C. Switch over happens and the topology gets updated quickly
> and we get the one below in Figure 2).
> 
> Case 2)
>                    0     1
>   |------------------ B ----------------------|
>   A                                           C root
>   |-------------------X-----------------------|
>                  Figure 2)
> 
> The ping stops and resume after about 30 seconds instead of right
> away as expected in rstp case which should be in milliseconds. On
> debug we found following happening.
> 
> 1) In the steady state, the fdb dump at the firmware on B (This
>     implements the switch) shows that both A and C appears on port
>     1 as expected.
> 2  After switch over, Ping frame from C with A's MAC address gets
>     sent to B.  However B's fdb entry is still showing it is at
>     port 1. Since the frame arrived from C, it drops the frame.
> 
> So the question is, in this scenario, how does the data path
> restored quickly? Looks like for this to happen FDB at the nodes
> needs to get flushed or re-learned so that it will show all nodes
> at the correct port in the new topology. So in this case at node
> B, A should appear on port 0 instead of port 1 so that L2
> forwarding happens correctly? As expected, if another ping is
> initiated from A to C, the other ping (C to A) starts working as
> the FDB at B is updated. But if data path needs to be restored
> quickly, these fdb update should happen immediately. How does
> this happen?
> 
> Thanks
> 
> Murali
> 

-- 
Murali Karicheri
Texas Instruments

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ