Hi all,

I was checking the datapath flows before and after the upgrade and the
below second flow from each output (before/after the upgrade) has a
difference about the ct_mark:

##before the upgrade
#
recirc_id(0x1e6e85),tunnel(tun_id=0x1c,src=10.XX.XX.X3X,dst=10.XX.XX.4,tos=0x20,geneve({}{}),flags(-df+csum+key)),in_port(137),ct_state(-new+est-rel-rpl-inv+trk),ct_mark(0/0x1),eth(src=fa:16:3e:9b:b3:c6,dst=fa:16:3e:d7:c9:46),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),
packets:9, bytes:1062, used:0.074s, actions:1706
#
recirc_id(0),tunnel(tun_id=0x1c,src=10.XX.XX.X3X,dst=10.XX.XX.4,tos=0x20,geneve({class=0x102,type=0x80,len=4,0x60008/0x7fffffff}),flags(-df+csum+key)),in_port(137),ct_mark(0/0x2),eth(src=fa:16:3e:9b:b3:c6,dst=00:00:00:00:00:00/01:00:00:00:00:00),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),
packets:8, bytes:944, used:0.114s, actions:ct(zone=7185),recirc(0x1e6e85)
#
recirc_id(0),in_port(1706),eth(src=fa:16:3e:d7:c9:46,dst=fa:16:3e:9b:b3:c6),eth_type(0x86dd),ipv6(src=2001:db8:2:a::301,dst=2001:db8:1:2::10,proto=58,hlimit=255,frag=no),icmpv6(type=128/0xfc),
packets:8, bytes:944, used:0.122s, actions:ct(zone=7185),recirc(0x1e6e86)


##after the upgrade
#
recirc_id(0xae310f),tunnel(tun_id=0x1c,src=10.XX.XX.X3X,dst=10.XX.XX.4,tos=0x20,geneve({}{}),flags(-df+csum+key)),in_port(137),ct_state(-new+est-rel-rpl-inv+trk),ct_mark(0/0x1),eth(src=fa:16:3e:9b:b3:c6,dst=fa:16:3e:d7:c9:46),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),
packets:1569, bytes:185142, used:0.238s, actions:1706
#
recirc_id(0),tunnel(tun_id=0x1c,src=0.XX.XX.X3X,dst=10.XX.XX.4,tos=0x20,geneve({class=0x102,type=0x80,len=4,0x60008/0x7fffffff}),flags(-df+csum+key)),in_port(137),eth(src=fa:16:3e:9b:b3:c6,dst=00:00:00:00:00:00/01:00:00:00:00:00),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),icmpv6(type=128/0x80),
packets:1569, bytes:185142, used:0.362s,
actions:ct(zone=7185),recirc(0xae310f)
#
recirc_id(0),in_port(1706),eth(src=fa:16:3e:d7:c9:46,dst=fa:16:3e:9b:b3:c6),eth_type(0x86dd),ipv6(src=2001:db8:2:a::301,dst=2001:db8:1:2::10,proto=58,hlimit=255,frag=no),icmpv6(type=128/0xfc),
packets:0, bytes:0, used:never, actions:ct(zone=7185),recirc(0xae46f4)

After the upgrade, the second above flow is missing the ct_mark(0/0x2), so
that is interesting.

Regards,

Tiago Pires


On Fri, Apr 26, 2024 at 6:32 PM Tiago Pires <tiago.pi...@luizalabs.com>
wrote:

> Hi all,
>
> Enabling the debugging, we can see the following:
>
> 2024-04-26T20:54:25.880Z|00004|dpif(handler75)|DBG|system@ovs-system:
> miss upcall:
>
> recirc_id(0),dp_hash(0),skb_priority(0),in_port(1706),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),eth(src=fa:16:3e:d7:c9:46,dst=fa:16:3e:9b:b3:c6),eth_type(0x86dd),ipv6(src=2001:db8:2:a::301,dst=2001:db8:1:2::10,label=0xbde5f,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=129,code=0)
> icmp6,vlan_tci=0x0000,dl_src=fa:16:3e:d7:c9:46,dl_dst=fa:16:3e:9b:b3:c6,ipv6_src=2001:db8:2:a::301,ipv6_dst=2001:db8:1:2::10,ipv6_label=0xbde5f,nw_tos=0,nw_ecn=0,nw_ttl=255,nw_frag=no,icmp_type=129,icmp_code=0
> icmp6_csum:e5d6
> #
> 2024-04-26T20:54:29.933Z|00042|dpif(revalidator131)|DBG|system@ovs-system:
> flow_del ufid:82c1cdb8-d56e-4d0b-b65c-96edecef76e1
> recirc_id(0),dp_hash(0),skb_priority(0),in_port(1706),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),eth(src=fa:16:3e:d7:c9:46,dst=fa:16:3e:9b:b3:c6),eth_type(0x86dd),ipv6(src=2001:db8:2:a::301,dst=2001:db8:1:2::10,label=0xbde5f,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=129,code=0),
> packets:0, bytes:0, used:never
> #
> 2024-04-26T20:54:37.632Z|00173|dpif(handler23)|DBG|system@ovs-system:
> put[create] ufid:82c1cdb8-d56e-4d0b-b65c-96edecef76e1
> recirc_id(0),dp_hash(0/0),skb_priority(0/0),in_port(1706),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),eth(src=fa:16:3e:d7:c9:46,dst=fa:16:3e:9b:b3:c6),eth_type(0x86dd),ipv6(src=2001:db8:2:a::301,dst=2001:db8:1:2::10,label=0xbde5f/0,proto=58,tclass=0/0,hlimit=255,frag=no),icmpv6(type=129/0xfc,code=0/0),
> actions:ct(zone=7185),recirc(0x5ef91)
>
> There is this miss upcall and then the revalidator removes the flow from
> the datapath and it is added again. So, probably this is creating the
> jitter behavior.
>
> Regards,
>
> Tiago Pires
>
> On Fri, Apr 26, 2024 at 3:33 PM Tiago Pires <tiago.pi...@luizalabs.com>
> wrote:
>
>> Hi all,
>>
>> While testing the upgrade path from OVN 22.03.1/OVS 2.17.2 to OVN
>> 23.03.1/OVS 3.1.3 on Ubuntu 22.04/kernel 5.15 and 6.5 we are seeing a
>> strange behavior for icmpv6 traffic.
>> Before the upgrade a simple north-south or west-east ping between IPv6
>> hosts would have a low jitter like below:
>>
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2712 ttl=62 time=0.676 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2713 ttl=62 time=0.829 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2714 ttl=62 time=0.568 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2715 ttl=62 time=0.700 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2716 ttl=62 time=0.768 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2717 ttl=62 time=0.599 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2718 ttl=62 time=0.656 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2719 ttl=62 time=0.689 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2720 ttl=62 time=0.724 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2721 ttl=62 time=0.419 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2722 ttl=62 time=0.732 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2723 ttl=62 time=0.717 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2724 ttl=62 time=0.755 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2725 ttl=62 time=0.765 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2726 ttl=62 time=0.535 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2727 ttl=62 time=0.865 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2728 ttl=62 time=0.692 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2729 ttl=62 time=0.597 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2730 ttl=62 time=0.661 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=2731 ttl=62 time=0.558 ms
>>
>> But after the upgrade, the same ping started to have a higher jitter:
>>
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=37 ttl=253 time=2.14 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=38 ttl=253 time=50.2 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=39 ttl=253 time=57.0 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=40 ttl=253 time=61.5 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=41 ttl=253 time=2.16 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=42 ttl=253 time=1.68 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=43 ttl=253 time=1.63 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=44 ttl=253 time=3.32 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=45 ttl=253 time=1.87 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=46 ttl=253 time=39.6 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=47 ttl=253 time=2.87 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=48 ttl=253 time=60.0 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=49 ttl=253 time=1.79 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=50 ttl=253 time=2.06 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=51 ttl=253 time=2.45 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=52 ttl=253 time=2.10 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=53 ttl=253 time=4.39 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=54 ttl=253 time=2.91 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=55 ttl=253 time=1.79 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=56 ttl=253 time=1.80 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=57 ttl=253 time=2.26 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=58 ttl=253 time=55.1 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=59 ttl=253 time=57.2 ms
>> 64 bytes from 2001:db8:2:a::301: icmp_seq=60 ttl=253 time=3.34 ms
>>
>> --- 2001:db8:2:a::301 ping statistics ---
>> 60 packets transmitted, 60 received, 0% packet loss, time 59120ms
>> rtt min/avg/max/mdev = 0.531/16.329/61.464/23.395 ms
>>
>> The icmp v4 is not affected and we have the same jitter before and after
>> the upgrade. Regarding throughput, I ran a TCP/UDP (v4/v6) throughput test
>> before and after the upgrade and the numbers are similar, so it seems it
>> happens only in special with icmpv6 traffic.
>>
>> Checking the datapath, I can see the flow related with the in_port(1706)
>> where the VM is connected being removed and installed again:
>>
>> # ovs-dpctl dump-flows | grep 2001:db8:2:a::301
>> recirc_id(0x1ad3d),tunnel(tun_id=0x1c,src=10.26.73.135,dst=10.26.72.4,tos=0x20,geneve({}{}),flags(-df+csum+key)),in_port(137),ct_state(-new+est-rel-rpl-inv+trk),ct_mark(0/0x1),eth(src=fa:16:3e:9b:b3:c6,dst=fa:16:3e:d7:c9:46),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),
>> packets:7, bytes:826, used:0.674s, actions:1706
>> recirc_id(0),tunnel(tun_id=0x1c,src=10.26.73.135,dst=10.26.72.4,tos=0x20,geneve({class=0x102,type=0x80,len=4,0x60008/0x7fffffff}),flags(-df+csum+key)),in_port(137),eth(src=fa:16:3e:9b:b3:c6,dst=00:00:00:00:00:00/01:00:00:00:00:00),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),
>> packets:7, bytes:826, used:0.709s, actions:ct(zone=7185),recirc(0x1ad3d)
>>
>> # ovs-dpctl dump-flows | grep 2001:db8:2:a::301
>> recirc_id(0x1ad3d),tunnel(tun_id=0x1c,src=10.26.73.135,dst=10.26.72.4,tos=0x20,geneve({}{}),flags(-df+csum+key)),in_port(137),ct_state(-new+est-rel-rpl-inv+trk),ct_mark(0/0x1),eth(src=fa:16:3e:9b:b3:c6,dst=fa:16:3e:d7:c9:46),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),
>> packets:11, bytes:1298, used:0.190s, actions:1706
>> recirc_id(0),in_port(1706),eth(src=fa:16:3e:d7:c9:46,dst=fa:16:3e:9b:b3:c6),eth_type(0x86dd),ipv6(src=2001:db8:2:a::301,dst=2001:db8:1:2::10,proto=58,hlimit=255,frag=no),icmpv6(type=128/0xfc),
>> packets:0, bytes:0, used:never, actions:ct(zone=7185),recirc(0x1b13c)
>> recirc_id(0),tunnel(tun_id=0x1c,src=10.26.73.135,dst=10.26.72.4,tos=0x20,geneve({class=0x102,type=0x80,len=4,0x60008/0x7fffffff}),flags(-df+csum+key)),in_port(137),eth(src=fa:16:3e:9b:b3:c6,dst=00:00:00:00:00:00/01:00:00:00:00:00),eth_type(0x86dd),ipv6(src=2000::/ffc0::,dst=2001:db8:2:a::301,proto=58,hlimit=62,frag=no),
>> packets:11, bytes:1298, used:0.237s, actions:ct(zone=7185),recirc(0x1ad3d)
>>
>> (Note: no OVS HW Offloading)
>>
>> So, it seems there is a flow missing, the flow goes to userspace and it
>> is installed again on the datapath. Maybe it can explain the higher jitter.
>>
>> From what I explained, does anyone remember any recent changes that could
>> introduce such behavior? If anyone who has an IPv6 deployment and is using
>> the last OVN/OVS could test if there is similar behavior, I would
>> appreciate it.
>>
>> Regards,
>>
>> Tiago Pires
>>
>

-- 




_‘Esta mensagem é direcionada apenas para os endereços constantes no 
cabeçalho inicial. Se você não está listado nos endereços constantes no 
cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa 
mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas estão 
imediatamente anuladas e proibidas’._


* **‘Apesar do Magazine Luiza tomar 
todas as precauções razoáveis para assegurar que nenhum vírus esteja 
presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por 
quaisquer perdas ou danos causados por esse e-mail ou por seus anexos’.*



_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to