[dpdk-dev] IPv4 Multicast: Application crashes in case of packet cloning but not in case of reference update

Ankit ankitbhr.cstaff at cse.iitd.ac.in
Mon Apr 2 12:42:45 CEST 2018


Hi All,

I am trying to write code for L2 layer multi-casting and referring  IPv4 
Multicast code for packet cloning. The application is working fine when 
the configuration is such, that "use_clone" is 0, means the application 
does multi-casting using rte_pktmbuf_refcnt_update() and doesn't clone 
the packet.

But whenever the application does the cloning it crashes after 
sometime(after exhausting the ring buffer size). The error which I get 
on the screen is:

      PANIC in __rte_mbuf_raw_free():
      line 1178    assert "rte_mbuf_refcnt_read(m) == 0" failed
     9: [/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f01f7a263dd]]
     8: [/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f01f7cf06ba]]
     7: [./build/ipv4_multicast(eal_thread_loop+0x1db) [0x4652eb]]
     6: [./build/ipv4_multicast() [0x42e54c]]
     5: [./build/ipv4_multicast() [0x42d324]]
     4: [./build/ipv4_multicast() [0x42c9fd]]
     3: [./build/ipv4_multicast(ixgbe_xmit_pkts+0x4bb) [0x54fd7b]]
     2: [./build/ipv4_multicast(__rte_panic+0xc9) [0x4277ab]]
     1: [./build/ipv4_multicast(rte_dump_stack+0x2b) [0x4696cb]]
     Aborted (core dumped)

I am not sure what am I missing here, as I have not changed anything in 
the application. Is there any other reference which can be used for 
multi-casting application code?


Thanks,

Ankit



More information about the dev mailing list