Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Jun 2016 16:22:33 +0300
From:      Andrew Vylegzhanin <avv314@gmail.com>
To:        freebsd-net@freebsd.org
Subject:   Is netmap jumbo frames broken in STABLE?
Message-ID:  <CA%2BBi_YhqCnt5pQ_hC5zWdBp24=Zn3Rcj29AwtMrguPhSoJZSdQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hello all,


I have an application that uses netmap for capture jumbo frames. The frames
are fixed size and have fixed rate (for example size 5166, rate 50000 pps).
The frames are pure Ethernet, without IP header.


Everything works fine in 10.0-RELEASE, 10.1-RELEASE.


Starting from 10.3 and actual 10-STABLE I've got wrong data from netmap
ring. It's looks like packet data broke and packet split on two parts 4092
and 1070 bytes,  where original size was 5166.

A code ring precessing is based on macros from netmap_user.h :


        n = nm_ring_space(ring);

        for (rx = 0; rx < limit; rx++) {

                struct netmap_slot *slot = &ring->slot[cur];

                char *p = NETMAP_BUF(ring, slot->buf_idx);

                process_payload(p, slot->len, datapx);

                cur = nm_ring_next(ring, cur);

        }

        ring->head = ring->cur = cur;


Here is netmap sysctl's:

dev.netmap.buf_num=81920

dev.netmap.ring_size=73728

dev.netmap.buf_size=5248


Hardware is Dell R720 (2x E5-2643 v2) with four Intel Ethernet 10G 2P X520
Adapter. I use only one hardware queue per interface.


BTW, may be a new version of Intel ixgbe driver (3.1.13-k) is a reason?


Does it make sense to try with 11-CURRENT?


Thank you in advance.


-- 

Andrew



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BBi_YhqCnt5pQ_hC5zWdBp24=Zn3Rcj29AwtMrguPhSoJZSdQ>