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
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to