Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jul 2012 16:19:27 -0400
From:      Ming Fu <ming.fu@netsweeper.com>
To:        freebsd-net@freebsd.org
Subject:   netmap bridge.c sample code assumes the same number of tx/rx queue.
Message-ID:  <500F034F.6040809@netsweeper.com>

next in thread | raw e-mail | index | archive | help
Hi Everybody,

I just want to share some work I was doing last few days trying to make 
use the bridge code of netmap.

My netmap device has 4 receive and 1 transmit queue. I found that a ping 
-s 5100 10.10.10.10 through the bridge will lost fragment of the ping 
when the transmit queue reaches its wrapping point (the last slot).

The problem was traced to the code in tools/tools/netmap/bridge.c. It 
assumes the same number of receive and transmit queues from the netmap 
device, which does not work for me.

The number of queues is stored in struct my_ring when the netmap device 
is opened, but only the number of receive queue is saved. Subsequent 
code uses the number of receive queues to check of bond of transmit queues.

When the transmit queue is less than the receive queue, the bridge 
program will start to loose packet when the queue wraps happens at the 
last transmit queue.


Regards,
Ming





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?500F034F.6040809>