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>