On Fri, Apr 11, 2025 at 1:41 PM Ales Musil <amu...@redhat.com> wrote:

>
>
> On Fri, Apr 4, 2025 at 12:24 PM Lorenzo Bianconi <
> lorenzo.bianc...@redhat.com> wrote:
>
>> Introduce hairpin and condition-nat test for transit router scenario.
>>
>> Reported-at: https://issues.redhat.com/browse/FDP-1077
>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianc...@redhat.com>
>> ---
>>  tests/multinode.at | 30 ++++++++++++++++++++++++++++++
>>  1 file changed, 30 insertions(+)
>>
>> diff --git a/tests/multinode.at b/tests/multinode.at
>> index 7db606c49..49e128387 100644
>> --- a/tests/multinode.at
>> +++ b/tests/multinode.at
>> @@ -2667,6 +2667,7 @@ for i in 1 2; do
>>      check m_as $chassis ovn-nbctl lr-add tr
>>      check m_as $chassis ovn-nbctl lrp-add tr tr-ts 00:00:00:00:10:00
>> 10.100.200.1/24 10:200::1/64
>>      check m_as $chassis ovn-nbctl set logical_router tr
>> options:requested-tnl-key=20
>> +    check m_as $chassis ovn-nbctl lrp-set-gateway-chassis tr-ts $chassis
>>
>>      # Add TS pods, with the same tunnel keys on both sides
>>      check m_as $chassis ovn-nbctl lsp-add ts pod10
>> @@ -2676,6 +2677,11 @@ for i in 1 2; do
>>      check m_as $chassis ovn-nbctl lsp-add ts pod20
>>      check m_as $chassis ovn-nbctl lsp-set-addresses pod20
>> "00:00:00:00:10:20 10.100.200.20 10:200::20"
>>      check m_as $chassis ovn-nbctl set logical_switch_port pod20
>> options:requested-tnl-key=20
>> +
>> +    # Add mgmt pod
>> +    check m_as $chassis ovn-nbctl lsp-add ts mgmt
>> +    check m_as $chassis ovn-nbctl lsp-set-addresses mgmt
>> "00:00:00:00:10:11 10.100.200.11 10:200::11"
>> +    check m_as $chassis ovn-nbctl set logical_switch_port mgmt
>> options:requested-tnl-key=11
>>  done
>>
>>  # Add SNAT for the GW router that corresponds to "gw-tr" LRP IP
>> @@ -2697,6 +2703,12 @@ check m_as ovn-chassis-1 ovn-nbctl lr-route-add gw
>> 10:200::/64 100:65::2
>>  check m_as ovn-chassis-2 ovn-nbctl lr-route-add gw 10.100.200.0/24
>> 100.65.0.6
>>  check m_as ovn-chassis-2 ovn-nbctl lr-route-add gw 10:200::/64 100:65::6
>>
>> +# Add LB on TS and condition NAT
>> +check m_as ovn-chassis-1 ovn-nbctl lb-add lb0 172.16.0.5:5656
>> 10.100.200.10:2324 tcp
>> +check m_as ovn-chassis-1 ovn-nbctl ls-lb-add ts lb0
>> +check m_as ovn-chassis-1 ovn-nbctl --match="eth.dst ==
>> 00:00:00:00:10:11" lr-nat-add tr snat 172.16.0.2 10.100.200.0/24
>> +check m_as ovn-chassis-1 ovn-nbctl set logical_router tr
>> options:ct-commit-all="true"
>> +
>>  # Add mutual remote ports
>>  check m_as ovn-chassis-1 ovn-nbctl lrp-add tr tr-az2 00:00:00:00:30:06
>> 100.65.0.6/30 100:65::6/126
>>  check m_as ovn-chassis-1 ovn-nbctl set logical_router_port tr-az2
>> options:requested-chassis=ovn-chassis-2
>> @@ -2724,14 +2736,18 @@ check m_as ovn-chassis-2 ovn-sbctl set chassis
>> ovn-chassis-1 other_config:is-rem
>>  # Configure ports on the transit switch as remotes
>>  check m_as ovn-chassis-1 ovn-nbctl lsp-set-type pod20 remote
>>  check m_as ovn-chassis-1 ovn-nbctl lsp-set-options pod10
>> requested-chassis=ovn-chassis-1
>> +check m_as ovn-chassis-1 ovn-nbctl lsp-set-options mgmt
>> requested-chassis=ovn-chassis-1
>>  check m_as ovn-chassis-1 ovn-nbctl lsp-set-options pod20
>> requested-chassis=ovn-chassis-2
>>
>>  check m_as ovn-chassis-2 ovn-nbctl lsp-set-type pod10 remote
>> +check m_as ovn-chassis-2 ovn-nbctl lsp-set-type mgmt remote
>>  check m_as ovn-chassis-2 ovn-nbctl lsp-set-options pod10
>> requested-chassis=ovn-chassis-1
>> +check m_as ovn-chassis-2 ovn-nbctl lsp-set-options mgmt
>> requested-chassis=ovn-chassis-1
>>  check m_as ovn-chassis-2 ovn-nbctl lsp-set-options pod20
>> requested-chassis=ovn-chassis-2
>>
>>  m_as ovn-chassis-1 /data/create_fake_vm.sh external external
>> 00:00:00:00:20:10 1500 192.168.100.10 24 192.168.100.1 1000::10/64 1000::1
>>  m_as ovn-chassis-1 /data/create_fake_vm.sh pod10 pod10 00:00:00:00:10:10
>> 1500 10.100.200.10 24 10.100.200.1 10:200::10/64 10:200::1
>> +m_as ovn-chassis-1 /data/create_fake_vm.sh mgmt mgmt 00:00:00:00:10:11
>> 1500 10.100.200.11 24 10.100.200.1 10:200::11/64 10:200::1
>>  m_as ovn-chassis-2 /data/create_fake_vm.sh pod20 pod20 00:00:00:00:10:20
>> 1500 10.100.200.20 24 10.100.200.1 10:200::20/64 10:200::1
>>
>>  # We cannot use any of the helpers as they assume that there is only
>> single ovn-northd instance running
>> @@ -2751,11 +2767,23 @@ M_NS_CHECK_EXEC([ovn-chassis-1], [external],
>> [ping -q -c 5 -i 0.3 -w 2 10:200::2
>>  5 packets transmitted, 5 received, 0% packet loss, time 0ms
>>  ])
>>
>> +M_NS_CHECK_EXEC([ovn-chassis-1], [mgmt], [ip a a 172.16.100.2/24 dev
>> mgmt])
>> +M_NS_DAEMONIZE([ovn-chassis-1], [pod10], [nc -e /bin/cat -v -l -o
>> server.log 10.100.200.10 2324], [pod10.pid])
>> +M_START_TCPDUMP([ovn-chassis-1], [-neei pod10-p ip], [pod10])
>> +M_START_TCPDUMP([ovn-chassis-1], [-neei mgmt-p ip], [mgmt])
>> +
>> +m_as ovn-chassis-1 sh -c 'echo -e "Hello\nHello" > msg.expected'
>> +check m_as ovn-chassis-1 ovn-nbctl --policy="src-ip" lr-route-add tr
>> 10.100.200.0/24 10.100.200.11
>> +
>>  check test $(m_as ovn-chassis-1 grep -c "skipping output to input port" \
>>      /var/log/openvswitch/ovs-vswitchd.log) -eq 0
>>  check test $(m_as ovn-chassis-2 grep -c "skipping output to input port" \
>>      /var/log/openvswitch/ovs-vswitchd.log) -eq 0
>>
>> +M_NS_CHECK_EXEC([ovn-chassis-1], [mgmt], [sh -c '(echo "Hello"; sleep 3)
>> | nc -s 172.16.100.2 -o client.log 172.16.0.5 5656'], [0], [ignore],
>> [ignore])
>> +check m_as ovn-chassis-1 cmp server.log msg.expected
>> +check m_as ovn-chassis-1 cmp client.log msg.expected
>> +
>>  echo "Chassis1"
>>  m_as ovn-chassis-1 ovn-sbctl show
>>  m_as ovn-chassis-1 ovn-nbctl show
>> @@ -2775,6 +2803,8 @@ for i in 1 2; do
>>      multinode_cleanup_northd $chassis
>>  done
>>
>> +m_as ovn-chassis-1 killall tcpdump
>> +
>>  AT_CLEANUP
>>
>>  AT_SETUP([Migration of container ports])
>> --
>> 2.49.0
>>
>>
> Looks good to me, thanks.
>
> Acked-by: Ales Musil <amu...@redhat.com>
>

I have updated the ack to signoff and merged it into main.

Thanks,
Ales
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to