atlanticwave-sdx/atlanticwave-proto

L2MP flows are not inserted to the db rules table

mcevik0 opened this issue · 2 comments

On RENCI-BEN testbed, localcontroller rencictlr has 2 switches. When L2MP connections are created, flows are pushed to the switches properly, however, on deletion flows are not removed on the switches.

Logs show that rules for the 2 switches on this localcontroller cannot be fetched from the database.

2020-04-02 12:25:40,365 localcontroller: 139730846623488 DEBUG    Received a REMOV message from 0x7f159972d3d0
Received a REMOV message from 0x7f159972d3d0
2020-04-02 12:25:40,367 localcontroller: 139730846623488 DEBUG    --- MCEVIK - switch_id:  205
--- MCEVIK - switch_id:  205
2020-04-02 12:25:40,367 localcontroller: 139730846623488 DEBUG    remove_rule_sdxmsg:  7:205:[]
remove_rule_sdxmsg:  7:205:[]
2020-04-02 12:25:40,368 localcontroller: 139730846623488 ERROR    remove_rule_sdxmsg: trying to remove a rule that doesn't exist 7
remove_rule_sdxmsg: trying to remove a rule that doesn't exist 7
2020-04-02 12:25:40,369 localcontroller: 139730846623488 DEBUG    Received a REMOV message from 0x7f159972d3d0
Received a REMOV message from 0x7f159972d3d0
2020-04-02 12:25:40,370 localcontroller: 139730846623488 DEBUG    --- MCEVIK - switch_id:  201
--- MCEVIK - switch_id:  201
2020-04-02 12:25:40,371 localcontroller: 139730846623488 DEBUG    --- MCEVIK i: 0 - rule_type:  L2MultipointEndpointLCRule
--- MCEVIK i: 0 - rule_type:  L2MultipointEndpointLCRule
2020-04-02 12:25:40,371 localcontroller: 139730846623488 DEBUG    --- MCEVIK i: 0 - rule_switch:  205
--- MCEVIK i: 0 - rule_switch:  205
2020-04-02 12:25:40,371 localcontroller: 139730846623488 DEBUG    --- MCEVIK i: 1 - rule_type:  L2MultipointFloodLCRule
--- MCEVIK i: 1 - rule_type:  L2MultipointFloodLCRule
2020-04-02 12:25:40,372 localcontroller: 139730846623488 DEBUG    --- MCEVIK i: 1 - rule_switch:  201
--- MCEVIK i: 1 - rule_switch:  201
2020-04-02 12:25:40,372 localcontroller: 139730846623488 DEBUG    remove_rule_sdxmsg:  7:201:[<shared.L2MultipointEndpointLCRule.L2MultipointEndpointLCRule object at 0x7f15996d4490>, <shared.L2MultipointFloodLCRule.L2MultipointFloodLCRule object at 0x7f15996d45d0>]
remove_rule_sdxmsg:  7:201:[<shared.L2MultipointEndpointLCRule.L2MultipointEndpointLCRule object at 0x7f15996d4490>, <shared.L2MultipointFloodLCRule.L2MultipointFloodLCRule object at 0x7f15996d45d0>]
2020-04-02 12:25:40,374 localcontroller.ryucontrollerinterface: 139730846623488 DEBUG    Removing old cmd to RTI: 201:7
Removing old cmd to RTI: 201:7

Details about the flows can be seen on this document

Changes are implemented in https://github.com/atlanticwave-sdx/atlanticwave-proto/commits/mcevik-l2multipoint-ratelimiting

Tests performed with the commit 860e7c4 and works well.

32d2731
added a log and peaceful return in removal of L2MPRateLimiting when not Corsa switches.