kytos-ng / of_core

Kytos Main OpenFlow Network Application (NApp)
MIT License
0 stars 5 forks source link

[Fix] `OFPPS_LIVE` is now considered when handling port description and port status #90

Closed viniarck closed 1 year ago

viniarck commented 1 year ago

Fix #89

Local tests

I've explored it with OvS and NoviFlow switches at AmLight to make sure that OFPPS_LIVE on NoviFlow OpenFlow implementation would also behave correctly:

# show status port portno all
     port admin link description       port admin link description
     ---- ----- ---- -------------     ---- ----- ---- -------------
     1    up    up   Novi05-1          19   up    up   loop-20
     2    up    up   Novi02-2          20   up    up   loop-19
     3    down  down                   21   up    down
     4    down  down                   22   up    down
     5    up    down                   23   up    up   INT01-enp33s0
     6    up    down                   24   up    down
     7    up    down                   25   up    down
     8    up    down                   26   up    down
     9    up    down                   27   up    down
     10   up    down                   28   up    down
     11   up    down Novi06-11         29   up    down
     12   up    down                   30   up    down
     13   up    down                   31   up    down
     14   up    down                   32   up    down
     15   up    up   INT02             121  up    down
     16   up    up   INT01             221  up    down
     17   up    up   loop-18           321  up    down
     18   up    up   loop-17
❯ curl -s http://127.0.0.1:8181/api/kytos/topology/v3/interfaces | jq '.interfaces[] | .n
ame + " " +  (.active|tostring)'
"novi_port_1 true"
"novi_port_2 true"
"novi_port_3 false"
"novi_port_4 false"
"novi_port_5 false"
"novi_port_6 false"
"novi_port_7 false"
"novi_port_8 false"
"novi_port_9 false"
"novi_port_10 false"
"novi_port_11 false"
"novi_port_12 false"
"novi_port_13 false"
"novi_port_14 false"
"novi_port_15 true"
"novi_port_16 true"
"novi_port_17 true"
"novi_port_18 true"
"novi_port_19 true"
"novi_port_20 true"
"novi_port_21 false"
"novi_port_22 false"
"novi_port_23 true"
"novi_port_24 false"
"novi_port_25 false"
"novi_port_26 false"
"novi_port_27 false"
"novi_port_28 false"
"novi_port_29 false"
"novi_port_30 false"
"novi_port_31 false"
"novi_port_32 false"
"novi_port_121 false"
"novi_port_221 false"
"novi_port_321 false"
"local true"

Without the fix, interfaces that are initially shut down before the handshake would be set as active

❯ curl -s http://127.0.0.1:8181/api/kytos/topology/v3/interfaces | jq '.interfaces[] | .n
ame + " " +  (.active|tostring)'
"novi_port_1 true"
"novi_port_2 true"
"novi_port_3 true"
"novi_port_4 true"
"novi_port_5 true"
"novi_port_6 true"
"novi_port_7 true"
"novi_port_8 true"
"novi_port_9 true"
"novi_port_10 true"
"novi_port_11 true"
"novi_port_12 true"
"novi_port_13 true"
"novi_port_14 true"
"novi_port_15 true"
"novi_port_16 true"
"novi_port_17 true"
"novi_port_18 true"
"novi_port_19 true"
"novi_port_20 true"
"novi_port_21 true"
"novi_port_22 true"
"novi_port_23 true"
"novi_port_24 true"
"novi_port_25 true"
"novi_port_26 true"
"novi_port_27 true"
"novi_port_28 true"
"novi_port_29 true"
"novi_port_30 true"
"novi_port_31 true"
"novi_port_32 true"
"novi_port_121 true"
"novi_port_221 true"
"novi_port_321 true"
"local true"
viniarck commented 1 year ago

e2e tests are passing with this branch and topology's:

= 172 passed, 2 skipped, 18 xfailed, 7 xpassed, 793 warnings in 10324.24s (2:52:04) =

viniarck commented 1 year ago

LGTM

Thanks for your review, Italo.