in netmap_kern.h
struct netmap_adapter {
..
u_int num_rx_desc;
//u_int buff_size; // XXX deprecate, use NETMAP_BUF_SIZE
but in netmap.c
int
netmap_attach(struct netmap_adapter *na, int num_queues)
{
na->num_rx_rings = num_queues;
ixgbe_netmap.h
static void
ixgbe_netmap_attach(struct
i have a test use pkt-gen.c
# start pthread > 1
netmap as receiver work on NETMAP_HW_RING mode.
if i stop recv packet. system dmesg will show
interrupt storm detected on "irq281:"; throttling interrupt source
interrupt storm detected on "irq281:"; throttling interrupt source
interrupt storm de
in pkt-gen.c
tifreq.nr_ringid = (g.nthreads > 1) ? (i | NETMAP_HW_RING) : 0;
in netmap.c
if (priv->np_qlast != NETMAP_HW_RING) {
lim_tx = lim_rx = priv->np_qlast;
}
if nthreads 2.but have 8 num_tx_rings.(ixgbe default is 8)
looks like
thread #1 priv->np_qfirst = 0 priv->np_qlast = 1
thre
i want to update single ring use the ringid
like code:
struct netmap_ring *ring = NETMAP_TXRING(me->nifp, ringid);
i can't find a way to do this.
so i try to change the netmap core.
add code sys/net/netmap.h
struct node {
int ringid;
int update;
};
@pcap.c
int
pcap_inject(pcap_t *p, const void *buf, size_t size)
{
struct my_ring *me = p;
u_int si;
ND("cnt %d", cnt);
/* scan all rings */
for (si = me->begin; si < me->end; si++) {
struct netmap_ring *ring = NETMAP_TXRING(me->nifp, si);
"make -j4 buildworld " error
--
>>> World build started on Tue Apr 24 21:32:26 CST 2012
--
--
>>> Rebuilding the tempor
i think this "head.diff" may be is old!
in diff
+#ifdef DEV_NETMAP
+ if (slot) {
+ netmap_load_map(txr->txtag, txbuf->map,
+ NMB(slot), adapter->rx_mbuf_sz);
+ slot++;
+ }
+#endif /* DEV_NETMAP */
in netmap_kern.h
static inline void
netmap_load_map(bus_dma_tag_t tag, bus_dmamap_t map, void *buf