[ovs-dev] [PATCH v3] netdev-dpdk: add support for the RTE_ETH_EVENT_INTR_RESET event

Ilya Maximets i.maximets at ovn.org
Thu Oct 31 14:11:34 UTC 2019

On 31.10.2019 15:01, William Tu wrote:
>>> 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.
> Hi Eelco and Ilya,
> Is it better to save the current flags before step2, and
> after setting flags back, at step 5, we know it's the same
> as before, so we can skip re-applying all settings.

It already works like this, i.e. flags are saved and restored,
but each netlink notification increments sequence number in
bridge.c and bridge.c decides to re-apply configs because sequence
number changed. Datapath doesn't have control over that.

The best we can do is to postpone flags update until we know that
reconfguration passed.

Best regards, Ilya Maximets.

More information about the dev mailing list