netmap over virtio giving packets with extra 12 bytes

Avinash Sridharan avinash.sridharan at gmail.com
Mon Jan 5 05:54:48 UTC 2015


I am using netmap with the click modular router, running the click-modular
router in user space. A while back I was using this combination with the
e1000 device driver, with a slightly older netmap code-base.

Recently I updated my netmap code base and am trying to use the
click-modular router with netmap over a virtio-net device driver (over
KVM). With this combination, though I was able to receive packets I was
unable to interpret any packets coming from the FromDevice element.

To debug this issue (and to negate any changes I made to the click-modular
router), I ran the pkt-gen application with the "dump payload" option:

sudo ~/pkt-gen -i eth1 -f rx -X

This showed that packets are being received correctly from the
netmap-enabled interface, but there are an extra "12" bytes appended to the
packet.

381.088570 main_thread [1446] 1 pps (1 pkts in 1001088 usec)

ring 0x7f133bca6000 cur     1 [buf    516 flags 0x0000 len    72]

    0: 00 00 00 00 00 00 00 00 00 00 01 00 01 80 c2 00 ................ <<
extra 12 bytes

   16: 00 00 40 16 7e 5b 50 f0 00 26 42 42 03 00 00 00 .. at .~[P..&BB....

   32: 00 00 80 00 40 16 7e 5b 50 f0 00 00 00 00 80 00 .... at .~[P.......

   48: 40 16 7e 5b 50 f0 80 01 00 00 14 00 02 00 00 00 @.~[P...........

   64: 00 00 00 00 bc 9b f6 74


As we can see, the above is an STP BPDU, and there are 12 leading bytes in
the payload.


The extra leading bytes screw up the packet interpretation.


So is this is an artifact of the virtio-net driver or has something changed
in the netmap device driver?


Thanks,

Avinash


More information about the freebsd-net mailing list