>On 9/12/23 13:57, [email protected] wrote:
>> From: shylou <[email protected]>
>>
>> OVN had fix the issue[1] that avoid snat on reply packets for
>> gateway router. It is also needed to be dealt with for dgw.
>>
>> [1]https://github.com/ovn-org/ovn/commit/8b3e1afc30
>>
>> Signed-off-by: Xie Liu <[email protected]>
>> ---
>
>Hi, Xie Liu,
>
>Sorry for taking long to review this patch.
>
>> northd/northd.c | 4 ++++
>> tests/ovn-northd.at | 56 ++++++++++++++++++++++-----------------------
>> tests/ovn.at | 4 ++--
>> 3 files changed, 34 insertions(+), 30 deletions(-)
>>
>> diff --git a/northd/northd.c b/northd/northd.c
>> index 3eaa43f07..91a6e3f79 100644
>> --- a/northd/northd.c
>> +++ b/northd/northd.c
>> @@ -14648,6 +14648,8 @@ build_lrouter_out_snat_in_czone_flow(struct hmap
>> *lflows,
>
>For context, the condition here is (the same as for the second chunk of
>the diff):
>
>if (distributed_nat) {
>...
>
>> ETH_ADDR_ARGS(mac));
>> ds_put_format(&zone_actions, "eth.src = "ETH_ADDR_FMT"; ",
>> ETH_ADDR_ARGS(mac));
>> + } else {
>> + ds_put_format(match, " && (!ct.trk || !ct.rpl)");
>> }
>>
>> ds_put_cstr(&zone_actions, REGBIT_DST_NAT_IP_LOCAL" = 0; ");
>> @@ -14706,6 +14708,8 @@ build_lrouter_out_snat_flow(struct hmap *lflows,
>> struct ovn_datapath *od,
>> if (distributed_nat) {
>> ds_put_format(actions, "eth.src = "ETH_ADDR_FMT"; ",
>> ETH_ADDR_ARGS(mac));
>> + } else {
>> + ds_put_format(match, " && (!ct.trk || !ct.rpl)");
>> }
>> } else {
>
>I'm wondering why do we need to ski[ the case with "dnat_and_snat" and
>logical_port and external_mac set. Can't we just move the new line
>outside the "if (distributed_nat)"?
>
>Thanks,
>Dumitru
Hi Dumitru,
Thanks for your review, let me upgrade it in next patch with your advices.
>
>> /* Gateway router. */
>> diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
>> index 23dbe111f..ce3de2048 100644
>> --- a/tests/ovn-northd.at
>> +++ b/tests/ovn-northd.at
>> @@ -1100,7 +1100,7 @@ AT_CAPTURE_FILE([crflows])
>> AT_CHECK([grep -e "lr_out_snat" drflows | sed 's/table=../table=??/' |
>> sort], [0], [dnl
>> table=??(lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=??(lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> ip4.dst == $allowed_range), action=(ct_snat(172.16.1.1);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> ip4.dst == $allowed_range && (!ct.trk || !ct.rpl)),
>> action=(ct_snat(172.16.1.1);)
>> ])
>>
>> AT_CHECK([grep -e "lr_out_snat" crflows | sed 's/table=../table=??/' |
>> sort], [0], [dnl
>> @@ -1130,7 +1130,7 @@ AT_CAPTURE_FILE([crflows2])
>> AT_CHECK([grep -e "lr_out_snat" drflows2 | sed 's/table=../table=??/' |
>> sort], [0], [dnl
>> table=??(lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=??(lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1")),
>> action=(ct_snat(172.16.1.1);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(172.16.1.1);)
>> table=??(lr_out_snat ), priority=163 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> ip4.dst == $disallowed_range), action=(next;)
>> ])
>>
>> @@ -1159,7 +1159,7 @@ AT_CAPTURE_FILE([crflows2])
>> AT_CHECK([grep -e "lr_out_snat" drflows3 | sed 's/table=../table=??/' |
>> sort], [0], [dnl
>> table=??(lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=??(lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> ip4.dst == $allowed_range), action=(ct_snat(172.16.1.2);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> ip4.dst == $allowed_range && (!ct.trk || !ct.rpl)),
>> action=(ct_snat(172.16.1.2);)
>> ])
>>
>> AT_CHECK([grep -e "lr_out_snat" crflows3 | sed 's/table=../table=??/' |
>> sort], [0], [dnl
>> @@ -1186,7 +1186,7 @@ AT_CAPTURE_FILE([crflows2])
>> AT_CHECK([grep -e "lr_out_snat" drflows4 | sed 's/table=../table=??/' |
>> sort], [0], [dnl
>> table=??(lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=??(lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1")),
>> action=(ct_snat(172.16.1.2);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(172.16.1.2);)
>> table=??(lr_out_snat ), priority=163 , match=(ip && ip4.src ==
>> 50.0.0.11 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> ip4.dst == $disallowed_range), action=(next;)
>> ])
>>
>> @@ -5352,12 +5352,12 @@ AT_CHECK([grep "lr_out_post_undnat" lr0flows | sed
>> 's/table=./table=?/' | sort],
>> AT_CHECK([grep "lr_out_snat" lr0flows | sed 's/table=./table=?/' | sort],
>> [0], [dnl
>> table=? (lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=? (lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")),
>> action=(ct_snat_in_czone(172.168.0.10);)
>> - table=? (lr_out_snat ), priority=154 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && reg9[[4]] == 1), action=(reg9[[4]] =
>> 0; ct_snat(172.168.0.10);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")),
>> action=(ct_snat_in_czone(172.168.0.30);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")),
>> action=(ct_snat_in_czone(172.168.0.20);)
>> - table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && reg9[[4]] == 1), action=(reg9[[4]] = 0; ct_snat(172.168.0.30);)
>> - table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && reg9[[4]] == 1), action=(reg9[[4]] = 0; ct_snat(172.168.0.20);)
>> + table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && (!ct.trk || !ct.rpl)),
>> action=(ct_snat_in_czone(172.168.0.10);)
>> + table=? (lr_out_snat ), priority=154 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && (!ct.trk || !ct.rpl) && reg9[[4]] ==
>> 1), action=(reg9[[4]] = 0; ct_snat(172.168.0.10);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat_in_czone(172.168.0.30);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat_in_czone(172.168.0.20);)
>> + table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl) && reg9[[4]] == 1), action=(reg9[[4]] = 0;
>> ct_snat(172.168.0.30);)
>> + table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl) && reg9[[4]] == 1), action=(reg9[[4]] = 0;
>> ct_snat(172.168.0.20);)
>> ])
>>
>> # Separate zones for DGP
>> @@ -5400,9 +5400,9 @@ AT_CHECK([grep "lr_out_post_undnat" lr0flows | sed
>> 's/table=./table=?/' | sort],
>> AT_CHECK([grep "lr_out_snat" lr0flows | sed 's/table=./table=?/' | sort],
>> [0], [dnl
>> table=? (lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=? (lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")), action=(ct_snat(172.168.0.10);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")), action=(ct_snat(172.168.0.30);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")), action=(ct_snat(172.168.0.20);)
>> + table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && (!ct.trk || !ct.rpl)),
>> action=(ct_snat(172.168.0.10);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat(172.168.0.30);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat(172.168.0.20);)
>> ])
>>
>> # Associate load balancer to lr0
>> @@ -5482,12 +5482,12 @@ AT_CHECK([grep "lr_out_post_undnat" lr0flows | sed
>> 's/table=./table=?/' | sort],
>> AT_CHECK([grep "lr_out_snat" lr0flows | sed 's/table=./table=?/' | sort],
>> [0], [dnl
>> table=? (lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=? (lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")),
>> action=(ct_snat_in_czone(172.168.0.10);)
>> - table=? (lr_out_snat ), priority=154 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && reg9[[4]] == 1), action=(reg9[[4]] =
>> 0; ct_snat(172.168.0.10);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")),
>> action=(ct_snat_in_czone(172.168.0.30);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")),
>> action=(ct_snat_in_czone(172.168.0.20);)
>> - table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && reg9[[4]] == 1), action=(reg9[[4]] = 0; ct_snat(172.168.0.30);)
>> - table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && reg9[[4]] == 1), action=(reg9[[4]] = 0; ct_snat(172.168.0.20);)
>> + table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && (!ct.trk || !ct.rpl)),
>> action=(ct_snat_in_czone(172.168.0.10);)
>> + table=? (lr_out_snat ), priority=154 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && (!ct.trk || !ct.rpl) && reg9[[4]] ==
>> 1), action=(reg9[[4]] = 0; ct_snat(172.168.0.10);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat_in_czone(172.168.0.30);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat_in_czone(172.168.0.20);)
>> + table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl) && reg9[[4]] == 1), action=(reg9[[4]] = 0;
>> ct_snat(172.168.0.30);)
>> + table=? (lr_out_snat ), priority=162 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl) && reg9[[4]] == 1), action=(reg9[[4]] = 0;
>> ct_snat(172.168.0.20);)
>> ])
>>
>> # Separate zones for DGP
>> @@ -5548,9 +5548,9 @@ AT_CHECK([grep "lr_out_post_undnat" lr0flows | sed
>> 's/table=./table=?/' | sort],
>> AT_CHECK([grep "lr_out_snat" lr0flows | sed 's/table=./table=?/' | sort],
>> [0], [dnl
>> table=? (lr_out_snat ), priority=0 , match=(1), action=(next;)
>> table=? (lr_out_snat ), priority=120 , match=(nd_ns),
>> action=(next;)
>> - table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")), action=(ct_snat(172.168.0.10);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")), action=(ct_snat(172.168.0.30);)
>> - table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public")), action=(ct_snat(172.168.0.20);)
>> + table=? (lr_out_snat ), priority=153 , match=(ip && ip4.src ==
>> 10.0.0.0/24 && outport == "lr0-public" &&
>> is_chassis_resident("cr-lr0-public") && (!ct.trk || !ct.rpl)),
>> action=(ct_snat(172.168.0.10);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.10 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat(172.168.0.30);)
>> + table=? (lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 10.0.0.3 && outport == "lr0-public" && is_chassis_resident("cr-lr0-public")
>> && (!ct.trk || !ct.rpl)), action=(ct_snat(172.168.0.20);)
>> ])
>>
>> # Make the logical router as Gateway router
>> @@ -7340,9 +7340,9 @@ AT_CHECK([grep lr_in_unsnat lrflows | grep ct_snat |
>> sed 's/table=../table=??/'
>> ])
>>
>> AT_CHECK([grep lr_out_snat lrflows | grep ct_snat | sed
>> 's/table=../table=??/' | sort], [0], [dnl
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1")),
>> action=(ct_snat(172.16.1.10);)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S2" && is_chassis_resident("cr-DR-S2")),
>> action=(ct_snat(10.0.0.10);)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S3" && is_chassis_resident("cr-DR-S3")),
>> action=(ct_snat(192.168.0.10);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(172.16.1.10);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S2" && is_chassis_resident("cr-DR-S2") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(10.0.0.10);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S3" && is_chassis_resident("cr-DR-S3") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(192.168.0.10);)
>> ])
>>
>> check ovn-nbctl --wait=sb lr-nat-del DR snat 20.0.0.10
>> @@ -7416,9 +7416,9 @@ AT_CHECK([grep lr_in_unsnat lrflows | grep ct_snat |
>> sed 's/table=../table=??/'
>> ])
>>
>> AT_CHECK([grep lr_out_snat lrflows | grep ct_snat | sed
>> 's/table=../table=??/' | sort], [0], [dnl
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1")),
>> action=(ct_snat(172.16.1.10);)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S2" && is_chassis_resident("cr-DR-S2")),
>> action=(ct_snat(10.0.0.10);)
>> - table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S3" && is_chassis_resident("cr-DR-S3")),
>> action=(ct_snat(192.168.0.10);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S1" && is_chassis_resident("cr-DR-S1") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(172.16.1.10);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S2" && is_chassis_resident("cr-DR-S2") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(10.0.0.10);)
>> + table=??(lr_out_snat ), priority=161 , match=(ip && ip4.src ==
>> 20.0.0.10 && outport == "DR-S3" && is_chassis_resident("cr-DR-S3") &&
>> (!ct.trk || !ct.rpl)), action=(ct_snat(192.168.0.10);)
>> ])
>>
>> AT_CHECK([grep lr_in_dnat lrflows | grep ct_dnat | sed
>> 's/table=../table=??/' | sort], [0], [dnl
>> diff --git a/tests/ovn.at b/tests/ovn.at
>> index 2576a659b..79c729bc6 100644
>> --- a/tests/ovn.at
>> +++ b/tests/ovn.at
>> @@ -34453,7 +34453,7 @@ dnat_zone=$(ovs-ofctl dump-flows br-int
>> table=$DNAT_TABLE,metadata=0x${lr0_dp_ke
>> if test -n "$dnat_zone"; then
>> dnat_zone=${dnat_zone::-1}
>> fi
>> -snat_zone=$(ovs-ofctl dump-flows br-int
>> table=$SNAT_TABLE,metadata=0x${lr0_dp_key} | grep priority=153 | grep -o
>> zone=.*, | cut -d '=' -f 2)
>> +snat_zone=$(ovs-ofctl dump-flows br-int
>> table=$SNAT_TABLE,metadata=0x${lr0_dp_key} | grep priority=153 | grep
>> ct_state=-trk | grep -o zone=.*, | cut -d '=' -f 2)
>> if test -n "$snat_zone"; then
>> snat_zone=${snat_zone::-1}
>> fi
>> @@ -34470,7 +34470,7 @@ dnat_zone=$(ovs-ofctl dump-flows br-int
>> table=$DNAT_TABLE,metadata=0x${lr0_dp_ke
>> if test -n "$dnat_zone"; then
>> dnat_zone=${dnat_zone::-1}
>> fi
>> -snat_zone=$(ovs-ofctl dump-flows br-int
>> table=$SNAT_TABLE,metadata=0x${lr0_dp_key} | grep priority=153 | grep -o
>> zone=.*, | cut -d '=' -f 2)
>> +snat_zone=$(ovs-ofctl dump-flows br-int
>> table=$SNAT_TABLE,metadata=0x${lr0_dp_key} | grep priority=153 | grep
>> ct_state=-trk | grep -o zone=.*, | cut -d '=' -f 2)
>> if test -n "$snat_zone"; then
>> snat_zone=${snat_zone::-1}
>> fi
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev