[ovs-discuss] ping6 delay shaking with nd_target
Ben Pfaff
blp at ovn.org
Fri Mar 15 23:21:06 UTC 2019
What is "delay shaking"?
On Tue, Mar 12, 2019 at 12:52:25PM +0000, sunquanying wrote:
> Hello:
>
> We have a problem of occasionally delay shaking at IPv6 when add the following flow:
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=2,in_port=3,icmp6,dl_src=fa:16:3e:01:01:40,icmp_type=136,nd_target=2002:1::a84c:b41d:3e1:140 actions=output:4"
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=2,in_port=3,dl_src=fa:16:3e:01:01:40,ipv6 actions=output:4"
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=10,ipv6,in_port=4 actions=output:3"
>
> In order to make the problem a definite one, we add "need_revalidate = true" in revalidate_ukey() as following.
> static enum reval_result revalidate_ukey( ...... )
> {
> ......
> need_revalidate = true;
> if (need_revalidate) {
> ......
> }
> }
>
> We add "need_revalidate = true" and do the following test :
>
> 1. Add flow: (packets only hit the second and third flow, and will never hit the first one.)
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=2,in_port=3,icmp6,dl_src=fa:16:3e:01:01:40,icmp_type=136,nd_target=2002:1::a84c:b41d:3e1:140 actions=output:4"
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=2,in_port=3,dl_src=fa:16:3e:01:01:40,ipv6 actions=output:4"
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=10,ipv6,in_port=4 actions=output:3"
>
> average ping6 delay > 0.3ms
>
>
>
> 2. Modify dl_src of the first flow in experiment 1:
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=2,in_port=3,icmp6,dl_src=fa:16:3e:11:11:41,icmp_type=136,nd_target=2002:1::a84c:b41d:3e1:140 actions=output:4"
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=2,in_port=3,dl_src=fa:16:3e:01:01:40,ipv6 actions=output:4"
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=10,ipv6,in_port=4 actions=output:3"
>
>
> average ping6 delay < 0.1ms
>
>
> 3. Delete the first flow in experiment 1:
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=2,in_port=3,dl_src=fa:16:3e:01:01:40,ipv6 actions=output:4"
>
> ovs-ofctl add-flow ply1-1-0 "table=0,priority=10,ipv6,in_port=4 actions=output:3"
>
>
>
> average ping6 delay < 0.1ms
>
> It seems like that nd_target mask has been set as 0xffff when upcall in flow_wildcards_fold_minimask_in_map(), but change to 0x0000 when generate dpcls_rule, which leads to this phenomenon.
> Tcp and udp packets have the same results with icmpv6 ping6 packets when add the first flow in experiment 1.
>
> Could you please give us some suggestions on how to solve this problem? Will you fix this problem?
>
> Thank you.
>
> # ovs-ofctl --version
> ovs-ofctl (Open vSwitch) 2.7.3
> OpenFlow versions 0x1:0x4
> Release version: R5.RC6.018
>
> # uname -a
> Linux linux-xWqfOT 3.10.0-862.14.1.6_8.x86_64 #1 SMP Thu Dec 20 00:00:00 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
>
> # ovs-ofctl show ply1-1-0
> OFPT_FEATURES_REPLY (xid=0x2): dpid:00004a6cdb36e948
> n_tables:254, n_buffers:0
> capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
> actions: output enqueue ext_action set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
> 3(tap1-1-0): addr:d2:90:f6:f9:e6:21
> config: 0
> state: 0
> speed: 0 Mbps now, 0 Mbps max
> 4(pvi1-1-0): addr:ba:2d:6c:d6:b7:ce
> config: 0
> state: 0
> speed: 0 Mbps now, 0 Mbps max
> LOCAL(ply1-1-0): addr:4a:6c:db:36:e9:48
> config: 0
> state: 0
> current: 10MB-FD COPPER
> speed: 10 Mbps now, 0 Mbps max
> OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
>
> # ovs-vsctl show
> Bridge "ply1-1-0"
> fail_mode: secure
> Port "ply1-1-0"
> Interface "ply1-1-0"
> type: internal
> Port "pvi1-1-0"
> tag: 4093
> Interface "pvi1-1-0"
> type: patch
> options: {peer="pvo1-1-0"}
> Port "tap1-1-0"
> tag: 4092
> Interface "tap1-1-0"
> type: virtio
>
>
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
More information about the discuss
mailing list