From 602ae3c3db0b041ab107fd9a79bb1cfa19e9790a Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Thu, 16 Jan 2025 13:52:56 +0100 Subject: [PATCH] update set port locked Signed-off-by: Jonas Gorski --- src/netlink/nl_bridge.cc | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/netlink/nl_bridge.cc b/src/netlink/nl_bridge.cc index 55eb4309..a84841d7 100644 --- a/src/netlink/nl_bridge.cc +++ b/src/netlink/nl_bridge.cc @@ -1200,24 +1200,16 @@ nl_bridge::get_port_vlan_stp_states(rtnl_link *link) { } void nl_bridge::set_port_locked(uint32_t port_id, bool locked) { - uint32_t learn_flags, move_flags; - if (locked) { /* learn pending, but don't forward */ - learn_flags = switch_interface::SAI_SRC_LEARN_ARL | - switch_interface::SAI_SRC_LEARN_CPU | - switch_interface::SAI_SRC_LEARN_PENDING; + sw->port_set_learn(port_id, switch_interface::SAI_SRC_LEARN_NOTIFICATION); /* kernel does not allow roaming to locked ports, so just drop it */ - move_flags = switch_interface::SAI_SRC_LEARN_NONE; + sw->port_set_move_learn(port_id, switch_interface::SAI_SRC_LEARN_DROP); } else { /* everything goes */ - learn_flags = move_flags = switch_interface::SAI_SRC_LEARN_ARL | - switch_interface::SAI_SRC_LEARN_CPU | - switch_interface::SAI_SRC_LEARN_FWD | - switch_interface::SAI_SRC_LEARN_PENDING; + sw->port_set_learn(port_id, switch_interface::SAI_SRC_LEARN_HW_NOTIFICATION); + sw->port_set_move_learn(port_id, switch_interface::SAI_SRC_LEARN_HW_NOTIFICATION); } - - sw->port_set_learn(port_id, learn_flags, move_flags); } } /* namespace basebox */