[ovs-discuss] Recirculation context in dpdk-ovs

张萌 zhangmroy at 163.com
Tue Nov 27 13:20:13 UTC 2018


         Hi,

       I`m using “ovs-appctl ofproto/trace “ to trace the flows in ovs-dpdk.

       When integrated with conntrack, the ovs rule ended in the table=10, which will record the ct as the flowing flow:

             

-------------------------------------------------------------------------------------------------------------------------------------

[root at zm ~]# ovs-ofctl dump-flows br0 -O openflow15 table=10

OFPST_FLOW reply (OF1.5) (xid=0x2):

cookie=0x156ad2f7efd2d389, duration=15058.242s, table=10, n_packets=0, n_bytes=0, priority=3000,ip,nw_frag=later actions=goto_table:20

cookie=0x156ad2f7efd2d333, duration=15058.249s, table=10, n_packets=737, n_bytes=72226, priority=2000,icmp actions=ct(table=15,zone=NXM_NX_REG6[0..15])

cookie=0x156ad2f7efd2d337, duration=15058.249s, table=10, n_packets=4992, n_bytes=380540, priority=2000,udp actions=ct(table=15,zone=NXM_NX_REG6[0..15])

cookie=0x156ad2f7efd2d367, duration=15058.245s, table=10, n_packets=2028037440, n_bytes=183176086711, priority=2000,tcp actions=ct(table=15,zone=NXM_NX_REG6[0..15])

-------------------------------------------------------------------------------------------------------------------------------------

 

 

 

       And when I mock a packet using ofproto/trace, ovs recorded the contrack, and prints:

 

-------------------------------------------------------------------------------------------------------------------------------------      

[root@ zm ~]# ovs-appctl ofproto/trace br0 tcp,in_port=25,nw_dst=172.19.11.6,tp_dst=320,dl_dst=fa:16:3e:03:39:5f,dl_src=fa:16:3e:e5:cb:2c                              

Flow: tcp,in_port=25,vlan_tci=0x0000,dl_src=fa:16:3e:e5:cb:2c,dl_dst=fa:16:3e:03:39:5f,nw_src=0.0.0.0,nw_dst=172.19.11.6,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=0,tp_dst=320,tcp_flags=0

 

bridge("br0")

-------------

 0. in_port=25, priority 100, cookie 0x156ad2f7efd2d4fb

    set_field:0x29->reg5

    set_field:0x19->reg6

    write_metadata:0x2900000001

    goto_table:5

 5. ip,in_port=25,dl_src=fa:16:3e:e5:cb:2c, priority 100, cookie 0x156ad2f7efd2d51f

    goto_table:10

10. tcp, priority 2000, cookie 0x156ad2f7efd2d367

    ct(table=15,zone=NXM_NX_REG6[0..15])

    drop

 

Final flow: tcp,reg5=0x29,reg6=0x19,metadata=0x2900000001,in_port=25,vlan_tci=0x0000,dl_src=fa:16:3e:e5:cb:2c,dl_dst=fa:16:3e:03:39:5f,nw_src=0.0.0.0,nw_dst=172.19.11.6,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=0,tp_dst=320,tcp_flags=0

Megaflow: recirc_id=0,tcp,in_port=25,dl_src=fa:16:3e:e5:cb:2c,nw_dst=172.0.0.0/6,nw_frag=no

Datapath actions: ct(zone=25),recirc(0x4123)   

-------------------------------------------------------------------------------------------------------------------------------------

 

       Bug when I set the recirc_id in the flow, ovs puts:

-------------------------------------------------------------------------------------------------------------------------------------

[root at zm ~]# ovs-appctl ofproto/trace br0 recirc_id=0x4123,ct_state=new,tcp,in_port=25,nw_dst=172.19.11.6,tp_dst=320,dl_dst=fa:16:3e:03:39:5f,dl_src=fa:16:3e:e5:cb:2c

Flow: recirc_id=0x4123,ct_state=new,tcp,in_port=25,vlan_tci=0x0000,dl_src=fa:16:3e:e5:cb:2c,dl_dst=fa:16:3e:03:39:5f,nw_src=0.0.0.0,nw_dst=172.19.11.6,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=0,tp_dst=320,tcp_flags=0

 

bridge("br0")

-------------

     >>>> Recirculation context not found for ID 4123 <<<<

 

Final flow: unchanged

Megaflow: recirc_id=0x4123,ip,in_port=25,nw_frag=no

Datapath actions: drop

Translation failed (No recirculation context), packet is dropped.

 

-------------------------------------------------------------------------------------------------------------------------------------

 

       And when dump the contracks in ovs:

-------------------------------------------------------------------------------------------------------------------------------------

             

[root at A04-R08-I137-204-9320C72 ~]# ovs-dpctl dump-conntrack ovs-netdev 

2018-11-27T05:01:30Z|00001|dpif_netlink|WARN|Generic Netlink family 'ovs_datapath' does not exist. The Open vSwitch kernel module is probably not loaded.

ovs-dpctl: opening datapath (No such file or directory)

-------------------------------------------------------------------------------------------------------------------------------------

 

       Can anyone tells how to mock a packet can pass the ct in dpdk-ovs

 

 

Thanks

zhangmeng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20181127/60de077b/attachment.html>


More information about the discuss mailing list