It looks like this was a real bug.  I believe that it was fixed in
August with commit 21027d04044a ("tnl-neigh: Use outgoing ofproto
version.").  It looks to me like this bug fix was backported to all
release branches going back to Open Switch 2.7, so probably you should
just upgrade OVS.

On Fri, Oct 11, 2019 at 07:17:09AM +0000, Xuchen (chenxu, Cloud Infrastructure 
Service Product Dept.) wrote:
> Hi all:
> 
> We have recently found a ofproto tables_version problem in vxlan network.
> 
> 
> 
> We create ovs network like this, and VM1 use the port tap11 as NIC. We used 
> default NORMAL flow on br-int, br-tun and br-physnet.
> 
> [计算机生成了可选文字: 专 br一physnet]
> 
> ovs-vsctl add-br br-int -- set bridge br-int datapath_type=dpdk 
> other_config:fwd_mode=openflow
> 
> ovs-vsctl add-br br-tun -- set bridge br-tun datapath_type=dpdk 
> other_config:fwd_mode=openflow
> 
> ovs-vsctl add-br br-physnet -- set bridge br-physnet datapath_type=dpdk 
> other_config:fwd_mode=openflow
> 
> 
> 
> ovs-vsctl add-port br-int patch-int-tun -- set interface patch-int-tun 
> type=patch options:peer=patch-tun-int
> 
> ovs-vsctl add-port br-tun patch-tun-int -- set interface patch-tun-int 
> type=patch options:peer=patch-int-tun
> 
> 
> 
> ovs-vsctl add-port br-physnet eth3 -- set interface eth3 type=dpdkphy
> 
> ovs-vsctl add-port br-physnet tunnel_bearing -- set interface tunnel_bearing 
> type=internal
> 
> 
> 
> ovs-vsctl add-port br-tun vxlan1 -- set interface vxlan1 type=vxlan 
> options:df_default="true" options:local_ip=80.0.0.1 options:in_key=flow 
> options:out_key=flow options:remote_ip=80.0.0.2
> 
> 
> 
> ovs-vsctl add-port br-int tap11 -- set interface tap11 type=virtio
> 
> 
> 
> ovs-vsctl set port br-tun tag=4095
> 
> ovs-vsctl set port br-physnet tag=4095
> 
> ifconfig tunnel_bearing 80.0.0.1/16
> 
> 
> 
> 
> 
> When ping in VM, in normal situation, ovs receives packet on tap11, and first 
> sends an arp request packet with dst_ip=80.0.0.2. If 80.0.0.2 returns arp 
> reply, the command "ovs-appctl tnl/arp/show" will dump the mac address of 
> 80.0.0.2.
> 
> 
> 
> However, if we execute these 3 steps:
> 
> 1. flush the arp table: ovs-appctl tnl/arp/flush;
> 
> 2. refresh flows on br-physnet: ovs-ofctl del-flows br-physnet && ovs-ofctl 
> add-flow br-physnet "table=0,priority=0 actions=NORMAL"
> 
> 3. ping in VM;
> 
> We lookup the tnl arp table but get nothing. We find that the arp request 
> packet is dropped and the reason is that the versions does not match when 
> lookup rules on br-physnet.
> 
> 
> 
> The arp request send call stack is as follow: 
> tnl_send_arp_request()->compose_table_xlate()->ofproto_dpif_execute_actions__()->……
> 
> 
> 
> before refresh br-physnet flows, version match:
> 
> Breakpoint 2, versions_visible_in_version (versions=0x55bb9eaf02e0, 
> version=6) at lib/versions.h:50
> 
> 50        {
> 
> (gdb) bt
> 
> #0  versions_visible_in_version (versions=0x55bb9eaf02e0, version=6) at 
> lib/versions.h:50
> 
> #1  0x000055bb9c499e00 in cls_match_visible_in_version (rule=0x55bb9eaf02c0, 
> version=6) at lib/classifier-private.h:109
> 
> #2  0x000055bb9c49df5e in find_match (subtable=0x55bb9eaebf00, version=6, 
> flow=0x7f6b21627e60, hash=0) at lib/classifier.c:1658
> 
> #3  0x000055bb9c49e257 in find_match_wc (subtable=0x55bb9eaebf00, version=6, 
> flow=0x7f6b21627e60, trie_ctx=0x7f6b21626000, n_tries=2, wc=0x7f6b21626ae0) 
> at lib/classifier.c:1712
> 
> #4  0x000055bb9c49c6ee in classifier_lookup__ (cls=0x55bba0dae598, version=6, 
> flow=0x7f6b21627e60, wc=0x7f6b21626ae0, allow_conjunctive_matches=true) at 
> lib/classifier.c:972
> 
> #5  0x000055bb9c49ce2a in classifier_lookup (cls=0x55bba0dae598, version=6, 
> flow=0x7f6b21627e60, wc=0x7f6b21626ae0) at lib/classifier.c:1166
> 
> #6  0x000055bb9c456cf4 in rule_dpif_lookup_in_table (ofproto=0x55bba0da4fd0, 
> version=6, table_id=0 '\000', flow=0x7f6b21627e60, wc=0x7f6b21626ae0) at 
> ofproto/ofproto-dpif.c:4195
> 
> #7  0x000055bb9c45708e in rule_dpif_lookup_from_table 
> (ofproto=0x55bba0da4fd0, version=6, flow=0x7f6b21627e60, wc=0x7f6b21626ae0, 
> stats=0x7f6b21627dc0, table_id=0x7f6b2162702a "", in_port=2, 
> may_packet_in=true, honor_table_miss=true,
> 
>     xcache=0x0) at ofproto/ofproto-dpif.c:4309
> 
> #8  0x000055bb9c479cb0 in xlate_table_action (ctx=0x7f6b21626d40, in_port=2, 
> table_id=0 '\000', may_packet_in=true, honor_table_miss=true) at 
> ofproto/ofproto-dpif-xlate.c:3913
> 
> #9  0x000055bb9c47ba60 in xlate_output_action (ctx=0x7f6b21626d40, 
> port=65529, max_len=0, may_packet_in=true) at 
> ofproto/ofproto-dpif-xlate.c:4593
> 
> #10 0x000055bb9c47e2d6 in do_xlate_actions (ofpacts=0x7f6b216285a0, 
> ofpacts_len=12, ctx=0x7f6b21626d40) at ofproto/ofproto-dpif-xlate.c:5587
> 
> #11 0x000055bb9c480bc2 in xlate_actions (xin=0x7f6b21627e50, 
> xout=0x7f6b21627da0) at ofproto/ofproto-dpif-xlate.c:6481
> 
> #12 0x000055bb9c4568ad in ofproto_dpif_execute_actions__ 
> (ofproto=0x55bba0da4fd0, version=6, flow=0x7f6b216285b0, rule=0x0, 
> ofpacts=0x7f6b216285a0, ofpacts_len=12, depth=1, resubmits=1, 
> packet=0x7f6b21628880) at ofproto/ofproto-dpif.c:4077
> 
> #13 0x000055bb9c477ce7 in compose_table_xlate (ctx=0x7f6b2162bdf0, 
> out_dev=0x55bba0d8a500, packet=0x7f6b21628880) at 
> ofproto/ofproto-dpif-xlate.c:3294
> 
> #14 0x000055bb9c477eb8 in tnl_send_arp_request (ctx=0x7f6b2162bdf0, 
> out_dev=0x55bba0d8a500, eth_src=..., ip_src=16777296, ip_dst=33554512) at 
> ofproto/ofproto-dpif-xlate.c:3326
> 
> #15 0x000055bb9c4781d0 in build_tunnel_send (ctx=0x7f6b2162bdf0, 
> xport=0x55bb9eae9110, flow=0x7f6b2162ce50, tunnel_odp_port=1) at 
> ofproto/ofproto-dpif-xlate.c:3387
> 
> #16 0x000055bb9c47961a in compose_output_action__ (ctx=0x7f6b2162bdf0, 
> ofp_port=2, xr=0x0, check_stp=true) at ofproto/ofproto-dpif-xlate.c:3755
> 
> #17 0x000055bb9c47992c in compose_output_action (ctx=0x7f6b2162bdf0, 
> ofp_port=2, xr=0x0) at ofproto/ofproto-dpif-xlate.c:3847
> 
> #18 0x000055bb9c4752b0 in output_normal (ctx=0x7f6b2162bdf0, 
> out_xbundle=0x55bba0e04840, xvlan=0x7f6b2162a230) at 
> ofproto/ofproto-dpif-xlate.c:2290
> 
> #19 0x000055bb9c4765c0 in xlate_normal_flood (ctx=0x7f6b2162bdf0, 
> in_xbundle=0x55bb9eaf53f0, xvlan=0x7f6b2162a230) at 
> ofproto/ofproto-dpif-xlate.c:2769
> 
> #20 0x000055bb9c47724e in xlate_normal (ctx=0x7f6b2162bdf0) at 
> ofproto/ofproto-dpif-xlate.c:2999
> 
> #21 0x000055bb9c47ba71 in xlate_output_action (ctx=0x7f6b2162bdf0, 
> port=65530, max_len=0, may_packet_in=true) at 
> ofproto/ofproto-dpif-xlate.c:4597
> 
> #22 0x000055bb9c47e2d6 in do_xlate_actions (ofpacts=0x55bba0ea40f8, 
> ofpacts_len=16, ctx=0x7f6b2162bdf0) at ofproto/ofproto-dpif-xlate.c:5587
> 
> #23 0x000055bb9c479a14 in xlate_recursively (ctx=0x7f6b2162bdf0, 
> rule=0x55bb9eaebcc0, deepens=true) at ofproto/ofproto-dpif-xlate.c:3867
> 
> #24 0x000055bb9c479d8d in xlate_table_action (ctx=0x7f6b2162bdf0, in_port=1, 
> table_id=0 '\000', may_packet_in=true, honor_table_miss=true) at 
> ofproto/ofproto-dpif-xlate.c:3937
> 
> #25 0x000055bb9c478da3 in compose_output_action__ (ctx=0x7f6b2162bdf0, 
> ofp_port=1, xr=0x0, check_stp=true) at ofproto/ofproto-dpif-xlate.c:3595
> 
> #26 0x000055bb9c47992c in compose_output_action (ctx=0x7f6b2162bdf0, 
> ofp_port=1, xr=0x0) at ofproto/ofproto-dpif-xlate.c:3847
> 
> #27 0x000055bb9c4752b0 in output_normal (ctx=0x7f6b2162bdf0, 
> out_xbundle=0x55bba0e04740, xvlan=0x7f6b2162b700) at 
> ofproto/ofproto-dpif-xlate.c:2290
> 
> #28 0x000055bb9c4765c0 in xlate_normal_flood (ctx=0x7f6b2162bdf0, 
> in_xbundle=0x55bba0e1df00, xvlan=0x7f6b2162b700) at 
> ofproto/ofproto-dpif-xlate.c:2769
> 
> #29 0x000055bb9c47724e in xlate_normal (ctx=0x7f6b2162bdf0) at 
> ofproto/ofproto-dpif-xlate.c:2999
> 
> #30 0x000055bb9c47ba71 in xlate_output_action (ctx=0x7f6b2162bdf0, 
> port=65530, max_len=0, may_packet_in=true) at 
> ofproto/ofproto-dpif-xlate.c:4597
> 
> #31 0x000055bb9c47e2d6 in do_xlate_actions (ofpacts=0x55bba0da4db8, 
> ofpacts_len=16, ctx=0x7f6b2162bdf0) at ofproto/ofproto-dpif-xlate.c:5587
> 
> #32 0x000055bb9c480bc2 in xlate_actions (xin=0x7f6b2162ce40, 
> xout=0x7f6b2164dc90) at ofproto/ofproto-dpif-xlate.c:6481
> 
> #33 0x000055bb9c469a75 in upcall_xlate (udpif=0x55bba0d81060, 
> upcall=0x7f6b2164dc30, odp_actions=0x7f6b2164dca8, wc=0x7f6b2164dce8) at 
> ofproto/ofproto-dpif-upcall.c:1312
> 
> #34 0x000055bb9c46a0cd in process_upcall (udpif=0x55bba0d81060, 
> upcall=0x7f6b2164dc30, odp_actions=0x7f6b2164dca8, wc=0x7f6b2164dce8) at 
> ofproto/ofproto-dpif-upcall.c:1449
> 
> #35 0x000055bb9c468dbd in recv_upcalls (handler=0x55bba0eaf268) at 
> ofproto/ofproto-dpif-upcall.c:974
> 
> #36 0x000055bb9c4689a8 in udpif_upcall_handler (arg=0x55bba0eaf268) at 
> ofproto/ofproto-dpif-upcall.c:894
> 
> #37 0x000055bb9c57e87b in ovsthread_wrapper (aux_=0x55bba0e1e350) at 
> lib/ovs-thread.c:708
> 
> #38 0x00007f6b6cf4edf5 in start_thread () from /usr/lib64/libpthread.so.0
> 
> #39 0x00007f6b6b0e548d in clone () from /usr/lib64/libc.so.6
> 
> (gdb) n
> 
> 54            atomic_read_relaxed(&CONST_CAST(struct versions *,
> 
> (gdb) n
> 
> 58            return versions->add_version <= version && version < 
> remove_version;
> 
> (gdb) p versions->add_version
> 
> $1 = 6
> 
> (gdb) p version
> 
> $2 = 6
> 
> (gdb) c
> 
> Continuing.
> 
> 
> 
> 
> 
> after refresh br-physnet flows: version does not match
> 
> Breakpoint 3, versions_visible_in_version (versions=0x55bb9eaee620, 
> version=6) at lib/versions.h:50
> 
> 50        {
> 
> (gdb) bt
> 
> #0  versions_visible_in_version (versions=0x55bb9eaee620, version=6) at 
> lib/versions.h:54
> 
> #1  0x000055bb9c499e00 in cls_match_visible_in_version (rule=0x55bb9eaee600, 
> version=6) at lib/classifier-private.h:109
> 
> #2  0x000055bb9c49df5e in find_match (subtable=0x55bba0eae8b0, version=6, 
> flow=0x7f6b21627e60, hash=0) at lib/classifier.c:1658
> 
> #3  0x000055bb9c49e257 in find_match_wc (subtable=0x55bba0eae8b0, version=6, 
> flow=0x7f6b21627e60, trie_ctx=0x7f6b21626000, n_tries=2, wc=0x7f6b21626ae0) 
> at lib/classifier.c:1712
> 
> #4  0x000055bb9c49c6ee in classifier_lookup__ (cls=0x55bba0dae598, version=6, 
> flow=0x7f6b21627e60, wc=0x7f6b21626ae0, allow_conjunctive_matches=true) at 
> lib/classifier.c:972
> 
> #5  0x000055bb9c49ce2a in classifier_lookup (cls=0x55bba0dae598, version=6, 
> flow=0x7f6b21627e60, wc=0x7f6b21626ae0) at lib/classifier.c:1166
> 
> #6  0x000055bb9c456cf4 in rule_dpif_lookup_in_table (ofproto=0x55bba0da4fd0, 
> version=6, table_id=0 '\000', flow=0x7f6b21627e60, wc=0x7f6b21626ae0) at 
> ofproto/ofproto-dpif.c:4195
> 
> #7  0x000055bb9c45708e in rule_dpif_lookup_from_table 
> (ofproto=0x55bba0da4fd0, version=6, flow=0x7f6b21627e60, wc=0x7f6b21626ae0, 
> stats=0x7f6b21627dc0, table_id=0x7f6b2162702a "", in_port=2, 
> may_packet_in=true, honor_table_miss=true,
> 
>     xcache=0x0) at ofproto/ofproto-dpif.c:4309
> 
> #8  0x000055bb9c479cb0 in xlate_table_action (ctx=0x7f6b21626d40, in_port=2, 
> table_id=0 '\000', may_packet_in=true, honor_table_miss=true) at 
> ofproto/ofproto-dpif-xlate.c:3913
> 
> #9  0x000055bb9c47ba60 in xlate_output_action (ctx=0x7f6b21626d40, 
> port=65529, max_len=0, may_packet_in=true) at 
> ofproto/ofproto-dpif-xlate.c:4593
> 
> #10 0x000055bb9c47e2d6 in do_xlate_actions (ofpacts=0x7f6b216285a0, 
> ofpacts_len=12, ctx=0x7f6b21626d40) at ofproto/ofproto-dpif-xlate.c:5587
> 
> #11 0x000055bb9c480bc2 in xlate_actions (xin=0x7f6b21627e50, 
> xout=0x7f6b21627da0) at ofproto/ofproto-dpif-xlate.c:6481
> 
> #12 0x000055bb9c4568ad in ofproto_dpif_execute_actions__ 
> (ofproto=0x55bba0da4fd0, version=6, flow=0x7f6b216285b0, rule=0x0, 
> ofpacts=0x7f6b216285a0, ofpacts_len=12, depth=1, resubmits=1, 
> packet=0x7f6b21628880) at ofproto/ofproto-dpif.c:4077
> 
> #13 0x000055bb9c477ce7 in compose_table_xlate (ctx=0x7f6b2162bdf0, 
> out_dev=0x55bb9eaeb040, packet=0x7f6b21628880) at 
> ofproto/ofproto-dpif-xlate.c:3294
> 
> #14 0x000055bb9c477eb8 in tnl_send_arp_request (ctx=0x7f6b2162bdf0, 
> out_dev=0x55bb9eaeb040, eth_src=..., ip_src=16777296, ip_dst=33554512) at 
> ofproto/ofproto-dpif-xlate.c:3326
> 
> #15 0x000055bb9c4781d0 in build_tunnel_send (ctx=0x7f6b2162bdf0, 
> xport=0x55bba0e56430, flow=0x7f6b2162ce50, tunnel_odp_port=1) at 
> ofproto/ofproto-dpif-xlate.c:3387
> 
> #16 0x000055bb9c47961a in compose_output_action__ (ctx=0x7f6b2162bdf0, 
> ofp_port=2, xr=0x0, check_stp=true) at ofproto/ofproto-dpif-xlate.c:3755
> 
> #17 0x000055bb9c47992c in compose_output_action (ctx=0x7f6b2162bdf0, 
> ofp_port=2, xr=0x0) at ofproto/ofproto-dpif-xlate.c:3847
> 
> #18 0x000055bb9c4752b0 in output_normal (ctx=0x7f6b2162bdf0, 
> out_xbundle=0x55bba0d89b00, xvlan=0x7f6b2162a230) at 
> ofproto/ofproto-dpif-xlate.c:2290
> 
> #19 0x000055bb9c4765c0 in xlate_normal_flood (ctx=0x7f6b2162bdf0, 
> in_xbundle=0x55bba0d8a500, xvlan=0x7f6b2162a230) at 
> ofproto/ofproto-dpif-xlate.c:2769
> 
> #20 0x000055bb9c47724e in xlate_normal (ctx=0x7f6b2162bdf0) at 
> ofproto/ofproto-dpif-xlate.c:2999
> 
> #21 0x000055bb9c47ba71 in xlate_output_action (ctx=0x7f6b2162bdf0, 
> port=65530, max_len=0, may_packet_in=true) at 
> ofproto/ofproto-dpif-xlate.c:4597
> 
> #22 0x000055bb9c47e2d6 in do_xlate_actions (ofpacts=0x55bba0ea40f8, 
> ofpacts_len=16, ctx=0x7f6b2162bdf0) at ofproto/ofproto-dpif-xlate.c:5587
> 
> #23 0x000055bb9c479a14 in xlate_recursively (ctx=0x7f6b2162bdf0, 
> rule=0x55bb9eaebcc0, deepens=true) at ofproto/ofproto-dpif-xlate.c:3867
> 
> #24 0x000055bb9c479d8d in xlate_table_action (ctx=0x7f6b2162bdf0, in_port=1, 
> table_id=0 '\000', may_packet_in=true, honor_table_miss=true) at 
> ofproto/ofproto-dpif-xlate.c:3937
> 
> #25 0x000055bb9c478da3 in compose_output_action__ (ctx=0x7f6b2162bdf0, 
> ofp_port=1, xr=0x0, check_stp=true) at ofproto/ofproto-dpif-xlate.c:3595
> 
> #26 0x000055bb9c47992c in compose_output_action (ctx=0x7f6b2162bdf0, 
> ofp_port=1, xr=0x0) at ofproto/ofproto-dpif-xlate.c:3847
> 
> #27 0x000055bb9c4752b0 in output_normal (ctx=0x7f6b2162bdf0, 
> out_xbundle=0x55bba0d8f880, xvlan=0x7f6b2162b700) at 
> ofproto/ofproto-dpif-xlate.c:2290
> 
> #28 0x000055bb9c4765c0 in xlate_normal_flood (ctx=0x7f6b2162bdf0, 
> in_xbundle=0x55bba0eaf5d0, xvlan=0x7f6b2162b700) at 
> ofproto/ofproto-dpif-xlate.c:2769
> 
> #29 0x000055bb9c47724e in xlate_normal (ctx=0x7f6b2162bdf0) at 
> ofproto/ofproto-dpif-xlate.c:2999
> 
> #30 0x000055bb9c47ba71 in xlate_output_action (ctx=0x7f6b2162bdf0, 
> port=65530, max_len=0, may_packet_in=true) at 
> ofproto/ofproto-dpif-xlate.c:4597
> 
> #31 0x000055bb9c47e2d6 in do_xlate_actions (ofpacts=0x55bba0da4db8, 
> ofpacts_len=16, ctx=0x7f6b2162bdf0) at ofproto/ofproto-dpif-xlate.c:5587
> 
> #32 0x000055bb9c480bc2 in xlate_actions (xin=0x7f6b2162ce40, 
> xout=0x7f6b2164dc90) at ofproto/ofproto-dpif-xlate.c:6481
> 
> #33 0x000055bb9c469a75 in upcall_xlate (udpif=0x55bba0d81060, 
> upcall=0x7f6b2164dc30, odp_actions=0x7f6b2164dca8, wc=0x7f6b2164dce8) at 
> ofproto/ofproto-dpif-upcall.c:1312
> 
> #34 0x000055bb9c46a0cd in process_upcall (udpif=0x55bba0d81060, 
> upcall=0x7f6b2164dc30, odp_actions=0x7f6b2164dca8, wc=0x7f6b2164dce8) at 
> ofproto/ofproto-dpif-upcall.c:1449
> 
> #35 0x000055bb9c468dbd in recv_upcalls (handler=0x55bba0eaf268) at 
> ofproto/ofproto-dpif-upcall.c:974
> 
> #36 0x000055bb9c4689a8 in udpif_upcall_handler (arg=0x55bba0eaf268) at 
> ofproto/ofproto-dpif-upcall.c:894
> 
> #37 0x000055bb9c57e87b in ovsthread_wrapper (aux_=0x55bba0e1e350) at 
> lib/ovs-thread.c:708
> 
> #38 0x00007f6b6cf4edf5 in start_thread () from /usr/lib64/libpthread.so.0
> 
> #39 0x00007f6b6b0e548d in clone () from /usr/lib64/libc.so.6
> 
> (gdb) n
> 
> 54            atomic_read_relaxed(&CONST_CAST(struct versions *,
> 
> 
> 
> (gdb) n
> 
> 58            return versions->add_version <= version && version < 
> remove_version;
> 
> (gdb) p versions->add_version
> 
> $3 = 8
> 
> (gdb) p version
> 
> $4 = 6
> 
> (gdb) c
> 
> Continuing.
> 
> 
> 
> 
> 
> In the beginning, the version of br-tun and br-physnet are all 6. Function 
> versions_visible_in_version() return true, then the arp request can be sent 
> out through br-physnet.
> 
> However, after I execute "ovs-ofctl del-flows br-physnet; ovs-ofctl add-flow 
> br-physnet "table=0,priority=0 actions=NORMAL"" to refresh flows on 
> br-physnet, the version of br-physnet will increament to 8, and the version 
> of br-tun is still 6. Then Function versions_visible_in_version() return 
> false, then the arp request was dropped by br-physnet.
> 
> 
> 
> Through analysis, finally we found that in function compose_table_xlate(), 
> the variable "out_dev" is tunnel_bearing, "xbridge" is br-physnet. Since ctx 
> is the context of br-tun, the ctx->xin->tables_version is version of br-tun, 
> which equals 6.
> 
> In ofproto_dpif_execute_actions__(), ovs will lookup flows in br-physnet and 
> check rule version to make sure that rules version less equal than the 
> parameter "version". In Function versions_visible_in_version() , 8 is not 
> less equal than 6, then return null, and drop the arp request packet.
> 
> 
> 
> When we replace parameter "ctx->xin->tables_version" with 
> "ofproto_dpif_get_tables_version(xbridge->ofproto)", the version of 
> br-physnet will be used to do the version check, the problem solved.
> 
> 
> 
> We want to confirm that is this a problem and is our solution reasonable ?
> 
> 
> 
> [计算机生成了可选文字: staticint compose_table_xlate(struct 
> xlate_ctx木ctx,conststructxpe吐‘out_dev structdP--packet冲 { StrU(t StrU〔t 
> StrUCt xbridge ofpact_ 〔xbridge=out_dev- packet) >xbridge; OU工pUtOUTpUI二 
> +10以flo树二 ofpact_init(&output.ofpact, f10“一eXtract(packet,&flo。) 
> flow.in_port.ofp_port=out output.port二OFPP_TABLE; output.maX--len=e二 
> OFPACT_OIJTPUT,sizeo下output)二 二 _dev一>ofp_port二 
> returnofproto--dpif_execute_actions_ ctx一>xin一tablesversio &flow, ,改OUtpU 
> ofpact,sizeof ctx一>depth,ctx一>resub爪its, output, packet); }]
> 
> 
> 
> 
> 许琛chenxu
> 
> Cloud BU 基础服务产品部
> Cloud Infrastructure Service Product Dept., Cloud BU, HUAWEI
> Mobile: 18867525645  Tel: 0755- 12345678
> 中国(China)-杭州(Hangzhou)-华为杭州研发中心Z6 [4-B15R-015S]
> HUAWEI R&D Center, Jiangshu Str., Binjiang District, Hangzhou 310051, 
> P.R.China
> E-mail: [email protected]<mailto:[email protected]>
> [邮件签名中文字红点] [cid:[email protected]] 
> <https://www.huaweicloud.com/>  [494f24f47d32af5819074491a59e2458] 
> <https://mp.weixin.qq.com/s?__biz=MzI1Mzc1MzMyOQ==&mid=100007026&idx=1&sn=91c07c2a030ab5fee15f24d601da530c&chksm=69cefeec5eb977faae9c29647b7512ec7e0f9bb6301e863c892dde95106d2ec732ff43662666#rd>
>    [5edacfeb19fb3f9d99604eeaee3be363] 
> <https://weibo.com/p/1006061930559805/home?from=page_100606&mod=TAB&is_all=1#place>
> 








> _______________________________________________
> discuss mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
  • [ovs-discuss] ... Xuchen (chenxu, Cloud Infrastructure Service Product Dept.)
    • Re: [ovs-... Ben Pfaff

Reply via email to