-
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: Use generic ct.est flows for LR LBs
Currently, there is one ct.est flow per LB VIP, that was required to keep track if we need to pass the "skip_snat" or "force_snat" flags. However since c1d6b8a ("northd: Store skip_snat and force_snat in ct_label/mark") the flags are carried in the ct entry and we can use match on them the same way we do for related traffic. Simplify the logic for established traffic through load balancers, by removing the requirement for one ct.est flow per VIP and replacing them with three generic ct.est flows: match=(ct.est && !ct.rel && !ct.new && ct_mark.natted), action=(next;) match=(ct.est && !ct.rel && !ct.new && ct_mark.natted && ct_mark.force_snat == 1), action=(flags.force_snat_for_lb = 1; next;) match=(ct.est && !ct.rel && !ct.new && ct_mark.natted && ct_mark.skip_snat == 1), action=(flags.skip_snat_for_lb = 1; next;) This allows us avoiding of matching on L4 in defrag stage by not storing the L3 and L4 destination in registers. Match directly on L3 and L4 destination for ct.new in DNAT stage. Populate the registers in LB affinity check stage as they are needed for LB affinity learn. Reported-at: https://bugzilla.redhat.com/2172048 Reported-at: https://bugzilla.redhat.com/2170885 Signed-off-by: Ales Musil <amusil@redhat.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> Signed-off-by: Dumitru Ceara <dceara@redhat.com>
- Loading branch information
Showing
5 changed files
with
416 additions
and
343 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
Oops, something went wrong.