Date: Fri, 17 Jun 2016 04:40:26 +0300 From: Andrew Vylegzhanin <avv314@gmail.com> To: freebsd-net@freebsd.org Cc: Luigi Rizzo <rizzo@iet.unipi.it>, "Andrey V. Elsukov" <bu7cher@yandex.ru>, Ryan Stone <rysto32@gmail.com>, tom.barbette@ulg.ac.be Subject: Re: Is netmap jumbo frames broken in STABLE? Message-ID: <CA%2BBi_YgvO%2Bptw6aN8-iPbMsb%2B3yMMZsdEdBDkLewSa=nQRLPFw@mail.gmail.com> In-Reply-To: <1502708678.10983095.1465385308094.JavaMail.zimbra@ulg.ac.be> References: <CA%2BBi_YhqCnt5pQ_hC5zWdBp24=Zn3Rcj29AwtMrguPhSoJZSdQ@mail.gmail.com> <CA%2BhQ2%2BjcT_E4osrTB00%2Bf0gwSCoG_Zy%2BVdU8LXndqsjnmxPQ3Q@mail.gmail.com> <CAFMmRNy=PEFOxM4tGM7TQqpMnhTba17ACiaOcfuG8fkDET0RZw@mail.gmail.com> <CA%2BBi_YiqcOTw7T_dDzjis8yFu7oGd8G-av2BEaStXFiU7ovUCw@mail.gmail.com> <5756C17D.1090409@yandex.ru> <CA%2BhQ2%2Bjtd9FGuaJfJ6N1yt2%2BjSkez8Bj1usjpO%2BBCt-3Yvx2ww@mail.gmail.com> <1502708678.10983095.1465385308094.JavaMail.zimbra@ulg.ac.be>
next in thread | previous in thread | raw e-mail | index | archive | help
About week ago I've patched if_ix.c, just returned back code fragment of max_frame_size determination from 2.8.3 version of ixgbe driver: /* ** Determine the correct mbuf pool ** for doing jumbo frames */ if (adapter->max_frame_size <= 2048) adapter->rx_mbuf_sz = MCLBYTES; else if (adapter->max_frame_size <= 4096) adapter->rx_mbuf_sz = MJUMPAGESIZE; else if (adapter->max_frame_size <= 9216) adapter->rx_mbuf_sz = MJUM9BYTES; else adapter->rx_mbuf_sz = MJUM16BYTES; After week of heavy testing everything is ok. This solution is acceptable for me for now, because I use eight interfaces in netmap mode only. In future I want to make support something like dev.ix.N.jumbo_mbuf_enable variable, since one of ix interfaces will be used for generic kernel stack with jumbo frame support. Doing with fragmented packet in netmap ring is also possible way, but need more user cpu cycles for processing, I guess. In any case I can test it when this patch will be merged for netmap. -- Andrew 2016-06-08 14:28 GMT+03:00 <tom.barbette@ulg.ac.be>: > > Support for fragmented packets with ixgbe was recently added on the linux version of Netmap : > > https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3 > > I think the change for freebsd would be quite the same looking at https://github.com/freebsd/freebsd/blob/master/sys/dev/netmap/ixgbe_netmap.h#L396 > > After that, your userspace application simply have to check for the NS_MOREFRAG flag in the receive ring, and if it's set he knows the end of the packet will follow in the next buf. > > Tom
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BBi_YgvO%2Bptw6aN8-iPbMsb%2B3yMMZsdEdBDkLewSa=nQRLPFw>