-
Notifications
You must be signed in to change notification settings - Fork 236
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
northd: Always ct commit ECMP symmetric traffic in the original direc…
…tion. Commit 506f7d4 ("northd: rely on new actions for ecmp-symmetric routing") relied on commit_ecmp_nh() to learn the mapping between a traffic session's 5-tuple and the MAC of the next-hop to be used for that session. This logical action translates to OVS learn() action. While in theory this is the most correct way of tracking the mapping between ECMP symmetric reply sessions and their next hop's MAC address, it also creates additional load in ovs-vswitchd (to learn the new flows) and introduces latency and affects traffic throughput. An alternative is to instead re-commit the 5-tuple (along with the next-hop MAC and port information) to conntrack every time traffic received from the next-hop side is forwarded by the OVN router. Testing shows that in a scenario with 4 next-hops and ECMP symmetric replies enabled with traffic running for 600 seconds latency, throughput and ovs-vswitchd CPU usage are significantly better with this change: - Before: - ovs-vswitchd ~1200% CPU (distributed across 17 revalidator threads) - Sent: 638.72MiB, 1.06MiB/s - Recv: 7.17GiB, 12.24MiB/s - After: - ovs-vswitchd ~7% CPU (distributed across 17 revalidator threads) - Sent: 892.69MiB, 1.49MiB/s - Recv: 8.63GiB, 14.72MiB/s The only downside of not using learn() flows is that OVN cannot determine on its own when a next-hop goes away (without using BFD). This scenario however can probably be handled by the CMS which has more knowledge about the rest of the network (outside OVN), e.g., ovn-kubernetes currently flushes conntrack entries created for ECMP symmetric reply sessions when it detects that the next-hop went away. If a next-hops changes MAC address that's handled by OVN gracefully and the conntrack entry corresponding to that session gets updated accordingly. NOTE: we don't remove the logical actions' implementation as ovn-controller needs to be able to translate logical flows generated by older versions of ovn-northd. Fixes: 506f7d4 ("northd: rely on new actions for ecmp-symmetric routing") Signed-off-by: Dumitru Ceara <dceara@redhat.com> Reviewed-by: Ales Musil <amusil@redhat.com>
- Loading branch information
Showing
2 changed files
with
27 additions
and
45 deletions.
There are no files selected for viewing
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
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