diff options
author | Tao Liu <thomas.liu@ucloud.cn> | 2022-06-30 16:34:05 +0800 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2022-07-26 12:51:19 +0200 |
commit | 74070e3559f755a87e51e1b34d280bb7dd3df916 (patch) | |
tree | ab40d4387bcdd6062c17bfcc5f704846eb6308af | |
parent | 384e7f9501b8d84a95331c0cac38d95cefd7087f (diff) | |
download | openvswitch-74070e3559f755a87e51e1b34d280bb7dd3df916.tar.gz |
netdev-linux: Do not touch LAG members if master is not attached to OVS.
Bond master netdev may be created without a classification type, due
to routing or tunneling code.
If bond master is not attached to ovs, the ingress block on LAG members
should not be updated.
Simple reproducer:
tc q ls dev net3 ingress
ip a add 10.1.1.1/30 dev bond0
ip l set net3 master bond0
tc q ls dev net3 ingress
Fixes: d22f8927c3c9 ("netdev-linux: monitor and offload LAG slaves to TC")
Signed-off-by: Tao Liu <thomas.liu@ucloud.cn>
Acked-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
-rw-r--r-- | lib/netdev-linux.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index ef996eab0..61ca8075b 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -684,7 +684,10 @@ netdev_linux_update_lag(struct rtnetlink_change *change) return; } - if (is_netdev_linux_class(master_netdev->netdev_class)) { + /* If LAG master is not attached to ovs, ingress block on LAG + * members shoud not be updated. */ + if (!master_netdev->auto_classified && + is_netdev_linux_class(master_netdev->netdev_class)) { block_id = netdev_get_block_id(master_netdev); if (!block_id) { netdev_close(master_netdev); |