Hi,

I used two machines and tried to talk to each other using user-space ovs
(ovs-dpdk, ovs-2.7 and dpdk-16.11.1) via VxLAN.
I sent packets from process A (source) in physical machine A  to another
process B (destination) in physical machine B.

I used DPDKR interface to send packets from process A and receive them in
process B.
So, a packet goes through DPDKR from process A -> VxLAN -> BR0 ->
DPDK0/ETH0 in host A.

However, after running it for some minutes, process A (source) stopped
sending packets to process B (destination).
After debugging it, it turned out it did not return mbufs in mempool, which
got from "rte_mempool_get_bulk() function in DPDKR bound to the process A.
So, when process A sent packets which are the same as "mempool" size
defined in OVS-DPDK to process B in physical machine B, it stopped sending.

I am suspecting that in the paths (DPDKR -> VxLAN -> BR0 -> DPDK0/ETH0) in
physical machine A it did not call "rte_mempool_put_bulk()" function even
though it should obviously be called.

This is my setup in physical machine A.
$ sudo ovs-vsctl show
80492b54-7d7d-4318-a1fc-1f84d6740ffe
    Bridge "br0"
        Controller "tcp:10.1.2.4"
            is_connected: true
        fail_mode: secure
        Port "dpdkr4"
            Interface "dpdkr4"
                type: dpdkr
        Port "dpdkr12"
            Interface "dpdkr12"
                type: dpdkr
        Port "dpdkr8"
            Interface "dpdkr8"
                type: dpdkr
*        Port "dpdkr1"*
*            Interface "dpdkr1"*
*                type: dpdkr*
        Port "dpdkr13"
            Interface "dpdkr13"
                type: dpdkr
        Port "dpdkr3"
            Interface "dpdkr3"
                type: dpdkr
        Port "dpdkr10"
            Interface "dpdkr10"
                type: dpdkr
        Port "dpdkr7"
            Interface "dpdkr7"
                type: dpdkr
        Port "dpdkr9"
            Interface "dpdkr9"
                type: dpdkr
        Port "dpdkr2"
            Interface "dpdkr2"
                type: dpdkr
        Port "dpdkr11"
            Interface "dpdkr11"
                type: dpdkr
*        Port "br0"*
*            Interface "br0"*
*                type: internal*
        Port "dpdkr5"
            Interface "dpdkr5"
                type: dpdkr
        Port "dpdkr6"
            Interface "dpdkr6"
                type: dpdkr
*        Port "dpdk0"*
*            Interface "dpdk0"*
*                type: dpdk*
*                options: {dpdk-devargs="0000:06:00.0"}*
*        Port "vxlan0"*
*            Interface "vxlan0"*
*                type: vxlan*
*                options: {remote_ip=flow}*

This is dump of flow rules.

# OF flow dump
# port 1 : DPDKR
# port 14 : VxLAN
# port 15 : ETH0
# port LOCAL : BR0
 cookie=0x0, duration=346.979s, table=0, n_packets=114, n_bytes=17328,
idle_age=0, priority=1,in_port=LOCAL actions=output:15
 cookie=0x1, duration=346.644s, table=0, n_packets=115, n_bytes=11730,
idle_timeout=600, idle_age=0, priority=1,in_port=1,dl_dst=00:00:00:00:00:00
actions=load:0xa010106->NXM_NX_TUN_IPV4_DST[],output:14

# EMC flow dump
recirc_id(0),in_port(2),eth(src=00:00:00:00:00:02,dst=00:00:00:00:00:00),eth_type(0xffff),
packets:114, bytes:11628, used:0.966s, actions:tnl_push(tnl_port(15),
header(size=50,type=4,eth(dst=3c:fd:fe:04:90:20,src=3c:fd:fe
:05:85:40,dl_type=0x0800),ipv4(src=10.1.1.5,dst=10.1.1.6,
proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=
0x0),vxlan(flags=0x8000000,vni=0x0)),out_port(1))
recirc_id(0),in_port(1),eth(src=3c:fd:fe:05:85:40,dst=3c:fd:
fe:04:90:20),eth_type(0x0800),ipv4(src=10.1.1.5/255.255.254.0,dst=
10.1.1.6/255.255.254.0,proto=17,frag=no),udp(src=33705/0x8000),
packets:113, bytes:17176, used:0.966s, actions:16

Please let me know if you have any insights.

Thanks in advance.
Junguk
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to