[ovs-dev] [PATCH 1/3] dpif-netdev: Avoid infinite re-addition of misconfigured ports.

William Tu u9012063 at gmail.com
Mon Dec 9 20:51:37 UTC 2019


On Sat, Dec 07, 2019 at 03:46:16PM +0100, Ilya Maximets wrote:
> Infinite re-addition of failed ports happens if the device in userspace
> datapath has a linux network interface and it's not able to be
> configured.  For example, if the first reconfiguration fails because of
> misconfiguration or bad initial device state.
> In current code victims are afxdp ports and the Mellanox NIC ports
> opened by the DPDK due to their bifurcated drivers (It's unlikely for
> usual netdev-linux ports to fail).
> 
> The root cause: Every change in the state of the network interface
> of a linux kernel device generates if-notifier event and if-notifier
> event triggers the OVS code to re-apply the configuration of ports,
> i.e. add broken ports back. The most obvious part is that dpif-netdev
> changes the device flags before trying to configure it:
> 
>    1. add_port()
>    2. set_flags() --> if-notifier event
>    3. reconfigure() --> port removal from the datapath due to
>                         misconfiguration or any other issue in
>                         the underlying device.
>    4. setting flags back --> another if-notifier event.
>    5. There was new if-notifier event?
>       yes --> re-apply all settings. --> goto step 1.
> 
> Easy way to reproduce is to add afxdp port with n_rxq=N, where N is
> bigger than device supports.
> 
> This patch fixes the most obvious case for this issue by moving
> enabling of a promisc mode later to the place where we already know
> that device could be added to datapath without errors, i.e. after
> its first successful reconfiguration.
> 
> Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2019-September/363038.html
> Signed-off-by: Ilya Maximets <i.maximets at ovn.org>

Not sure about the Mellanox's bifurcated driver use case, but
I tested the afxdp port config fails cases, and I think the current
solution looks pretty ok to me.

Acked-by: William Tu <u9012063 at gmail.com>
 


More information about the dev mailing list