-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: subscribe and handle kytos/mef_eline.(failover_link_down|failover_old_path|failover_deployed)
#104
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
handled kytos/mef_eline.failover_deployed refactored remove_int_flows as remove_int_flows_by_cookies
handled failover flows extracted _send_flows to be reused split remove flows methods in two, by cookies and subset deletion
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #90
Closes #33
Closes #38
Closes #105
Functionality-wise it's been implemented, it'll keep it in draft while I'm finish the unit tests, and also I need to re-stress test when the INT lab is available again this week.
Summary
See updated changelog file
Local Tests
iperf3
, it has been on par with prior metrics compared to howmef_eline
performs (a few thousands packets retransmissions at 9.5 Gbits/sec):pymongo.errors.InvalidOperation: No operations to execute
when trying to enable 200+ EVCs at once #105, since that also happens to static ones, it's not related to this current change. I'll fix that on a subsequent PR.Prior metrics that I shared on Slack
Cool to see
telemetry_int
in action handling ingress fastfailover_path
convergence on INT lab for the first time. I've explored two cases withiperf3 -c 10.22.22.3 -i 1 -t 20 -b 10G
:With one EVC:
mef_eline
TCP packet retransmissions: 1824, 2044, 4017; avg 2628.33telemetry_int
TCP packet retransmissions: 1423, 1816, 4192; avg 2477.0When handling ingress
failover_path
convergence it's adding roughly up to 25 ms of latency when sending the events internally, and pushing the extra INT flows, which are sent in the socket with asyncio TCP transport with the othermef_eline
concurrent lower priority flows.With 101 INT EVCs:
telemetry_int
TCP packet retransmissions: 3243Bottom line so far: The extra INT new flows didn't add much latency in the total convergence, on average, it's relatively on par with
mef_eline
, from the data plane network traffic point of view, and the switch has been processing them all relatively quickly too.Data plane traffic hiccup during the failover for both
mef_eline
andtelemetry_int
:Tox is passing locally but failing on Scrutinizer CI (I believe it's a temporary upstream issue, let's see):
End-to-End Tests
N/A yet