sonic-net / sonic-swss

SONiC Switch State Service (SwSS)
https://azure.github.io/SONiC
Other
170 stars 506 forks source link

[v1.0.3] Bridge port remove error #290

Open jipanyang opened 7 years ago

jipanyang commented 7 years ago

Hit this issue and noticed the comments in code " / Flush FDB entries pointing to this bridge port / // TODO: Remove all FDB entries associated with this bridge port before // removing the bridge port itself " Is the enhancement being worked on? thanks!

Aug 22 00:25:23.0 sonic ERR portsyncd: :- readMe: netlink reports an error=-4 on reading a netlink socket Aug 22 00:25:23.0 sonic ERR teamsyncd: :- readMe: netlink reports an error=-4 on reading a netlink socket Aug 22 00:25:23.0 sonic NOTICE orchagent: :- removeVlanMember: Remove member PortChannel46 from VLAN Vlan2000 lid:7d0 vmid:270000000009cb Aug 22 00:25:23.955989 sonic INFO kernel: [271770.105867] device Ethernet46 left promiscuous mode Aug 22 00:25:23.956003 sonic INFO kernel: [271770.105875] Bridge: port 1(PortChannel46) entered disabled state Aug 22 00:25:23.956005 sonic INFO kernel: [271770.106632] device Bridge entered promiscuous mode Aug 22 00:25:23.0 sonic INFO syncd: brcm_sai_remove_vlan_member:552 SAI Enter brcm_sai_remove_vlan_member Aug 22 00:25:23.0 sonic INFO orchagent: :- setPortPvid: Set pvid 1 to port pid:1000000000031 Aug 22 00:25:23.0 sonic INFO syncd: brcm_sai_remove_vlan_member:622 SAI Exit brcm_sai_remove_vlan_member Aug 22 00:25:23.0 sonic NOTICE orchagent: :- setHostIntfsStripTag: Set SAI_HOSTIF_VLAN_TAG_STRIP to host interface Ethernet46 Aug 22 00:25:23.0 sonic ERR orchagent: :- meta_generic_validation_remove: object 0x3a0000000009b0 reference count is 2, can't remove Aug 22 00:25:23.0 sonic ERR orchagent: :- removeBridgePort: Failed to remove bridge port PortChannel46 from default 1Q bridge, rv:-5

stcheng commented 7 years ago

This won't be resolved right now. We're working on with SAI providers to get it supported in the future.

ryan44guo commented 4 years ago

2 years pass, it have not been resolved yet. should we keep it still? I think that it is not a SAI problem. In swss logic, if something proceed failed, it should be saved in toSync map, and redo it next time. But in this situation, the caller "doVlanMemberTask" does not looking the return value. Of course that is not a simple return false and keep it in toSync map, that's an addition deal to vlan member delete, so in commonsense we need to roll back all of the deal, including reset the admin state to true (should in removeBridgePort, before return false) and the vlan thing. But in this special case, maybe we needn't roll back the vlan thing. Existence of an admin-state-false bridge port is very dangerous, when you addBridgePort in the same port, it will not create bridge-port and set the admin state again when the bridge port exist, so we got an admin-down bridge port and have no chance to re-up it. It may come from remove one vlan member and add one vlan member in same port simply. So I think it should be resolved now.