A note: if approved, this patch will also need to go into version 2.9
On 06/26/2018 02:42 PM, Mark Michelson wrote:
When configuring a router port to have a redirect-chassis and using an
IPv6 load balancer rule that specifies a TCP/UDP port, load balancing
would not work as expected. This is because a rule to un-dnat the return
traffic from the load balancer destination was not installed. This is
because this rule was only being installed for IPv4 load balancers.
This change adds the same rule for IPv6 load balancers as well.
Signed-off-by: Mark Michelson <[email protected]>
---
ovn/northd/ovn-northd.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
index 72fe4e795..2ca439b39 100644
--- a/ovn/northd/ovn-northd.c
+++ b/ovn/northd/ovn-northd.c
@@ -4641,8 +4641,7 @@ add_router_lb_flow(struct hmap *lflows, struct
ovn_datapath *od,
free(new_match);
free(est_match);
- if (!od->l3dgw_port || !od->l3redirect_port || !backend_ips
- || addr_family != AF_INET) {
+ if (!od->l3dgw_port || !od->l3redirect_port || !backend_ips) {
return;
}
@@ -4651,7 +4650,11 @@ add_router_lb_flow(struct hmap *lflows, struct ovn_datapath *od,
* router has a gateway router port associated.
*/
struct ds undnat_match = DS_EMPTY_INITIALIZER;
- ds_put_cstr(&undnat_match, "ip4 && (");
+ if (addr_family == AF_INET) {
+ ds_put_cstr(&undnat_match, "ip4 && (");
+ } else {
+ ds_put_cstr(&undnat_match, "ip6 && (");
+ }
char *start, *next, *ip_str;
start = next = xstrdup(backend_ips);
ip_str = strsep(&next, ",");
@@ -4666,7 +4669,11 @@ add_router_lb_flow(struct hmap *lflows, struct
ovn_datapath *od,
break;
}
- ds_put_format(&undnat_match, "(ip4.src == %s", ip_address);
+ if (addr_family_ == AF_INET) {
+ ds_put_format(&undnat_match, "(ip4.src == %s", ip_address);
+ } else {
+ ds_put_format(&undnat_match, "(ip6.src == %s", ip_address);
+ }
free(ip_address);
if (port) {
ds_put_format(&undnat_match, " && %s.src == %d) || ",
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev