Enable dynamic change of connector cost#1867
Conversation
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
6b4c7da to
39ad457
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1867 +/- ##
=======================================
- Coverage 70.5% 70.3% -0.3%
=======================================
Files 209 211 +2
Lines 47838 49537 +1699
Branches 5156 5302 +146
=======================================
+ Hits 33765 34855 +1090
- Misses 11608 12185 +577
- Partials 2465 2497 +32
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
16e9cd7 to
c1ed679
Compare
|
Interested to hear what the upgrade experience is in mixed router version networks. I.e. if a connector is updated and the listener is on a current router release what happens/what should happen. That said, hooked it up with a control plane experiment and it went very smoothly! |
The cost of existing inter-router connection will still be updated correctly at the connector side. The connection cost at listener side will not change, resulting asymmetric peer costs at connector and listener sides. That should not be a problem from functional point of view, as far as I understand it. For new connections, everything would work as expected after connector cost update.
Thank you for giving it a try! |
…ctor and connections
c1ed679 to
bea73cd
Compare
Enable dynamic change of the cost of inter-router connector and its existing connections.
Fixes #1857
The major steps of connector cost change are as follows.
Connector side:
qdr_connection_t->inter_router_cost, then it posts a general work item to update the peer cost in the local link state.ls_seqis bumpedListener side:
qdr_connection_t->inter_router_cost, then it posts a general work item to update the peer cost in the local link state.Notes:
qdr_core_update_connection_cost_CT) handles both steps 3 and 6.qdr_connection_tat connection open time. It is used at the connector side to find the maximum cost of connector and listener when the dynamic update happens. This approach works as long as listener cost is immutable.