[ovs-discuss] 答复: ping6 delay shaking with nd_target

sunquanying sunquanying at huawei.com
Sat Mar 16 02:48:37 UTC 2019


“Delay shaking” means that ping6 delay is between 0.05ms and 0.1ms most of the time. A few minutes later, ping6 delay suddenly bigger than 0.3ms,  and after one or two packets, ping6 delay is between 0.05ms and 0.1ms again. The time interval of ping6 delay suddenly increase has no rules.

-----邮件原件-----
发件人: Ben Pfaff [mailto:blp at ovn.org] 
发送时间: 2019年3月16日 7:21
收件人: sunquanying <sunquanying at huawei.com>
抄送: ovs-discuss at openvswitch.org; jarno at ovn.org; jpettit at ovn.org; gaoxiaoqiu <gaoxiaoqiu at huawei.com>; Zhoujingbin (Robin, Cloud Networking) <zhoujingbin at huawei.com>; chenchanghu <chenchanghu at huawei.com>
主题: Re: [ovs-discuss] ping6 delay shaking with nd_target

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