Discussion:
Is netmap jumbo frames broken in STABLE?
(too old to reply)
Andrew Vylegzhanin
2016-06-06 13:22:33 UTC
Permalink
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
Luigi Rizzo
2016-06-06 14:03:40 UTC
Permalink
Post by Andrew Vylegzhanin
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.
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;
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?
​Hi,
yes I suspect the problem may be in the new ixgbe driver,
probably it programs the hardware to limit buffer sizes to 4k
even when large MTUs are in use,
so the receiver will split
the incoming frame in two buffers, while netmap is expecting
only one.
I suggest to have a look at the ioctl handler (in the driver)
that handles the MTU setting and compare with the code
in the previous driver.

cheers
luigi
Post by Andrew Vylegzhanin
Does it make sense to try with 11-CURRENT?
Thank you in advance.
--
Andrew
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
-----------------------------------------+-------------------------------
Prof. Luigi RIZZO, ***@iet.unipi.it . Dip. di Ing. dell'Informazione
http://www.iet.unipi.it/~luigi/ . Universita` di Pisa
TEL +39-050-2217533 . via Diotisalvi 2
Mobile +39-338-6809875 . 56122 PISA (Italy)
-----------------------------------------+-------------------------------
Ryan Stone
2016-06-06 22:47:52 UTC
Permalink
The use of mbuf clusters larger than a single page really doesn't work.
The problem is that over time physical memory becomes fragmented and
eventually 9K of contiguous memory can't be allocated anymore. This is why
many drivers now limit themselves to page-sized clusters.
Post by Andrew Vylegzhanin
Post by Andrew Vylegzhanin
Hello all,
I have an application that uses netmap for capture jumbo frames. The
frames
Post by Andrew Vylegzhanin
are fixed size and have fixed rate (for example size 5166, rate 50000
pps).
Post by Andrew Vylegzhanin
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
Post by Andrew Vylegzhanin
and 1070 bytes, where original size was 5166.
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;
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
Post by Andrew Vylegzhanin
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?
​Hi,
yes I suspect the problem may be in the new ixgbe driver,
probably it programs the hardware to limit buffer sizes to 4k
even when large MTUs are in use,
so the receiver will split
the incoming frame in two buffers, while netmap is expecting
only one.
I suggest to have a look at the ioctl handler (in the driver)
that handles the MTU setting and compare with the code
in the previous driver.
cheers
luigi
Post by Andrew Vylegzhanin
Does it make sense to try with 11-CURRENT?
Thank you in advance.
--
Andrew
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
-----------------------------------------+-------------------------------
http://www.iet.unipi.it/~luigi/ . Universita` di Pisa
TEL +39-050-2217533 . via Diotisalvi 2
Mobile +39-338-6809875 . 56122 PISA (Italy)
-----------------------------------------+-------------------------------
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
Andrew Vylegzhanin
2016-06-07 12:22:25 UTC
Permalink
Just for support Luigi assumption.

I've tested on 11.0-ALPHA1 (r301204).
Same situation with frame size 5166 and works _well_ with frame size 4032.

--
Andrew
Post by Ryan Stone
The use of mbuf clusters larger than a single page really doesn't work.
The problem is that over time physical memory becomes fragmented and
eventually 9K of contiguous memory can't be allocated anymore. This is why
many drivers now limit themselves to page-sized clusters.
Post by Andrew Vylegzhanin
Post by Andrew Vylegzhanin
Hello all,
I have an application that uses netmap for capture jumbo frames. The
frames
Post by Andrew Vylegzhanin
are fixed size and have fixed rate (for example size 5166, rate 50000
pps).
Post by Andrew Vylegzhanin
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
Post by Andrew Vylegzhanin
and 1070 bytes, where original size was 5166.
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;
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
Post by Andrew Vylegzhanin
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?
​Hi,
yes I suspect the problem may be in the new ixgbe driver,
probably it programs the hardware to limit buffer sizes to 4k
even when large MTUs are in use,
so the receiver will split
the incoming frame in two buffers, while netmap is expecting
only one.
I suggest to have a look at the ioctl handler (in the driver)
that handles the MTU setting and compare with the code
in the previous driver.
cheers
luigi
Post by Andrew Vylegzhanin
Does it make sense to try with 11-CURRENT?
Thank you in advance.
--
Andrew
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
-----------------------------------------+-------------------------------
http://www.iet.unipi.it/~luigi/ . Universita` di Pisa
TEL +39-050-2217533 . via Diotisalvi 2
Mobile +39-338-6809875 . 56122 PISA (Italy)
-----------------------------------------+-------------------------------
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
Andrey V. Elsukov
2016-06-07 12:43:41 UTC
Permalink
Post by Andrew Vylegzhanin
Just for support Luigi assumption.
I've tested on 11.0-ALPHA1 (r301204).
Same situation with frame size 5166 and works _well_ with frame size 4032.
This was changed in
https://svnweb.freebsd.org/base?view=revision&revision=283883

In the ixgbe_init_locked() initialization of adapter->rx_mbuf_sz was
limited to MJUMPAGESIZE. But I'm agree with Ryan, with this
configuration it works more reliable.
--
WBR, Andrey V. Elsukov
Luigi Rizzo
2016-06-07 12:50:54 UTC
Permalink
Post by Andrey V. Elsukov
Post by Andrew Vylegzhanin
Just for support Luigi assumption.
I've tested on 11.0-ALPHA1 (r301204).
Same situation with frame size 5166 and works _well_ with frame size
4032.
This was changed in
https://svnweb.freebsd.org/base?view=revision&revision=283883
In the ixgbe_init_locked() initialization of adapter->rx_mbuf_sz was
limited to MJUMPAGESIZE. But I'm agree with Ryan, with this
configuration it works more reliable.
​Nothing prevents modifying the configuration while the card
is in netmap mode, and reverting to the previous one
in regular mode. netmap allocates its own buffers and
if it fails the NIC just reverts back to regular mode.

This said, we can make netmap work with multiple buffers
also on NICs;
it is already supported in VALE. Just makes
the user code a bit less convenient.

cheers
luigi
t***@ulg.ac.be
2016-06-08 11:28:28 UTC
Permalink
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
Andrew Vylegzhanin
2016-06-17 01:40:26 UTC
Permalink
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
https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3
Post by t***@ulg.ac.be
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
Post by t***@ulg.ac.be
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.
Post by t***@ulg.ac.be
Tom
Andrew Vylegzhanin
2018-11-22 10:22:21 UTC
Permalink
Hi,

Come back to subject after two years.
I would like to clarify situation with jumbo frames in ixgbe driver.

I've looked to
https://github.com/luigirizzo/netmap/blob/master/LINUX/ixgbe_netmap_linux.h
and see a lot of changes compared 11/12-STABLE version ixgbe_netmap.h.
Is it possible to back port it?

In general, is there a chance to get worked jumbo frames on ixgbe?

--
Andrew
Post by t***@ulg.ac.be
Support for fragmented packets with ixgbe was recently added on the linux
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
Vincenzo Maffione
2018-11-22 10:42:06 UTC
Permalink
Hi,
Yes, absolutely, I'm currently working on aligning netmap on FreeBSD
(head, stable/12 and stable/11) to
the same status it has on Linux (more features, more bugfixes, continuous
integration infrastructure ... ).
In particular, on Linux jumbo frames are already supported on ixgbe, e1000,
igb, e1000e, etc.

I have some netmap patches are already in the queue (see here
https://reviews.freebsd.org/differential/query/Ol8MNtAi2AIs/#R),
so I can address the ixgbe-jumbo-frames item as soon as the queue drains.
If you want to give a try in the meanwhile, and/or test ixgbe on FreeBSD it
would be great.

Cheers,
Vincenzo

Il giorno gio 22 nov 2018 alle ore 11:23 Andrew Vylegzhanin <
Post by Andrew Vylegzhanin
Hi,
Come back to subject after two years.
I would like to clarify situation with jumbo frames in ixgbe driver.
I've looked to
https://github.com/luigirizzo/netmap/blob/master/LINUX/ixgbe_netmap_linux.h
and see a lot of changes compared 11/12-STABLE version ixgbe_netmap.h.
Is it possible to back port it?
In general, is there a chance to get worked jumbo frames on ixgbe?
--
Andrew
Post by t***@ulg.ac.be
Support for fragmented packets with ixgbe was recently added on the linux
https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3
Post by t***@ulg.ac.be
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
Post by t***@ulg.ac.be
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
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
Vincenzo
Andrew Vylegzhanin
2018-11-22 12:37:00 UTC
Permalink
Post by Vincenzo Maffione
Hi,
Yes, absolutely, I'm currently working on aligning netmap on FreeBSD
(head, stable/12 and stable/11) to
Post by Vincenzo Maffione
the same status it has on Linux (more features, more bugfixes, continuous
integration infrastructure ... ).

Great!
Post by Vincenzo Maffione
In particular, on Linux jumbo frames are already supported on ixgbe,
e1000, igb, e1000e, etc.

BTW, what situation with ixl driver and chelsio ?
Post by Vincenzo Maffione
I have some netmap patches are already in the queue (see here
https://reviews.freebsd.org/differential/query/Ol8MNtAi2AIs/#R),
Post by Vincenzo Maffione
so I can address the ixgbe-jumbo-frames item as soon as the queue drains.
If you want to give a try in the meanwhile, and/or test ixgbe on FreeBSD
it would be great.
I will look forward to ixgbe-jumbo-frames.
Of course, I'm ready to test on both stable's.
Post by Vincenzo Maffione
Cheers,
Vincenzo
WBR,
--
Andrew
Post by Vincenzo Maffione
Il giorno gio 22 nov 2018 alle ore 11:23 Andrew Vylegzhanin <
Post by Andrew Vylegzhanin
Hi,
Come back to subject after two years.
I would like to clarify situation with jumbo frames in ixgbe driver.
I've looked to
https://github.com/luigirizzo/netmap/blob/master/LINUX/ixgbe_netmap_linux.h
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
and see a lot of changes compared 11/12-STABLE version ixgbe_netmap.h.
Is it possible to back port it?
In general, is there a chance to get worked jumbo frames on ixgbe?
--
Andrew
Post by t***@ulg.ac.be
Support for fragmented packets with ixgbe was recently added on the linux
https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
Vincenzo
Vincenzo Maffione
2018-11-23 09:16:28 UTC
Permalink
Post by Vincenzo Maffione
Post by Vincenzo Maffione
Hi,
Yes, absolutely, I'm currently working on aligning netmap on FreeBSD
(head, stable/12 and stable/11) to
Post by Vincenzo Maffione
the same status it has on Linux (more features, more bugfixes,
continuous integration infrastructure ... ).
Great!
Post by Vincenzo Maffione
In particular, on Linux jumbo frames are already supported on ixgbe,
e1000, igb, e1000e, etc.
BTW, what situation with ixl driver and chelsio ?
The situation for ixl is the same as ixgbe. I plan to update both. I don't
know about chelsio; you should ask the cxgbe maintainers.
Post by Vincenzo Maffione
Post by Vincenzo Maffione
I have some netmap patches are already in the queue (see here
https://reviews.freebsd.org/differential/query/Ol8MNtAi2AIs/#R),
Post by Vincenzo Maffione
so I can address the ixgbe-jumbo-frames item as soon as the queue drains.
If you want to give a try in the meanwhile, and/or test ixgbe on FreeBSD
it would be great.
I will look forward to ixgbe-jumbo-frames.
Of course, I'm ready to test on both stable's.
Ok thanks.

Vincenzo
Post by Vincenzo Maffione
Post by Vincenzo Maffione
Cheers,
Vincenzo
WBR,
--
Andrew
Post by Vincenzo Maffione
Il giorno gio 22 nov 2018 alle ore 11:23 Andrew Vylegzhanin <
Post by Andrew Vylegzhanin
Hi,
Come back to subject after two years.
I would like to clarify situation with jumbo frames in ixgbe driver.
I've looked to
https://github.com/luigirizzo/netmap/blob/master/LINUX/ixgbe_netmap_linux.h
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
and see a lot of changes compared 11/12-STABLE version ixgbe_netmap.h.
Is it possible to back port it?
In general, is there a chance to get worked jumbo frames on ixgbe?
--
Andrew
Post by t***@ulg.ac.be
Support for fragmented packets with ixgbe was recently added on the
linux
https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
the packet will follow in the next buf.
Tom
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
Vincenzo
Vincenzo Maffione
2018-12-02 10:30:40 UTC
Permalink
Hi,
I prepared a patch (against FreeBSD-HEAD) to to support jumbo frames in
ixgbe.
https://reviews.freebsd.org/D18402
Would you be able to test it?

Thanks,
Vincenzo

Il giorno gio 22 nov 2018 alle ore 13:37 Andrew Vylegzhanin <
Post by Vincenzo Maffione
Post by Vincenzo Maffione
Hi,
Yes, absolutely, I'm currently working on aligning netmap on FreeBSD
(head, stable/12 and stable/11) to
Post by Vincenzo Maffione
the same status it has on Linux (more features, more bugfixes,
continuous integration infrastructure ... ).
Great!
Post by Vincenzo Maffione
In particular, on Linux jumbo frames are already supported on ixgbe,
e1000, igb, e1000e, etc.
BTW, what situation with ixl driver and chelsio ?
Post by Vincenzo Maffione
I have some netmap patches are already in the queue (see here
https://reviews.freebsd.org/differential/query/Ol8MNtAi2AIs/#R),
Post by Vincenzo Maffione
so I can address the ixgbe-jumbo-frames item as soon as the queue drains.
If you want to give a try in the meanwhile, and/or test ixgbe on FreeBSD
it would be great.
I will look forward to ixgbe-jumbo-frames.
Of course, I'm ready to test on both stable's.
Post by Vincenzo Maffione
Cheers,
Vincenzo
WBR,
--
Andrew
Post by Vincenzo Maffione
Il giorno gio 22 nov 2018 alle ore 11:23 Andrew Vylegzhanin <
Post by Andrew Vylegzhanin
Hi,
Come back to subject after two years.
I would like to clarify situation with jumbo frames in ixgbe driver.
I've looked to
https://github.com/luigirizzo/netmap/blob/master/LINUX/ixgbe_netmap_linux.h
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
and see a lot of changes compared 11/12-STABLE version ixgbe_netmap.h.
Is it possible to back port it?
In general, is there a chance to get worked jumbo frames on ixgbe?
--
Andrew
Post by t***@ulg.ac.be
Support for fragmented packets with ixgbe was recently added on the
linux
https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
the packet will follow in the next buf.
Tom
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
Vincenzo
--
Vincenzo
Andrew Vylegzhanin
2018-12-05 19:45:31 UTC
Permalink
Hi,
of course I want to test.
But it takes time up to 1-2 weeks, since I need setup HEAD environment in
lab and modify my code for NS_MOREFRAG.

When we can wait for MFC to stable/12 (or stable/11)

--
Andrew
Post by Vincenzo Maffione
Hi,
I prepared a patch (against FreeBSD-HEAD) to to support jumbo frames in
ixgbe.
https://reviews.freebsd.org/D18402
Would you be able to test it?
Thanks,
Vincenzo
Il giorno gio 22 nov 2018 alle ore 13:37 Andrew Vylegzhanin <
Post by Vincenzo Maffione
Post by Vincenzo Maffione
Hi,
Yes, absolutely, I'm currently working on aligning netmap on FreeBSD
(head, stable/12 and stable/11) to
Post by Vincenzo Maffione
the same status it has on Linux (more features, more bugfixes,
continuous integration infrastructure ... ).
Great!
Post by Vincenzo Maffione
In particular, on Linux jumbo frames are already supported on ixgbe,
e1000, igb, e1000e, etc.
BTW, what situation with ixl driver and chelsio ?
Post by Vincenzo Maffione
I have some netmap patches are already in the queue (see here
https://reviews.freebsd.org/differential/query/Ol8MNtAi2AIs/#R),
Post by Vincenzo Maffione
so I can address the ixgbe-jumbo-frames item as soon as the queue
drains.
Post by Vincenzo Maffione
If you want to give a try in the meanwhile, and/or test ixgbe on
FreeBSD it would be great.
I will look forward to ixgbe-jumbo-frames.
Of course, I'm ready to test on both stable's.
Post by Vincenzo Maffione
Cheers,
Vincenzo
WBR,
--
Andrew
Post by Vincenzo Maffione
Il giorno gio 22 nov 2018 alle ore 11:23 Andrew Vylegzhanin <
Post by Andrew Vylegzhanin
Hi,
Come back to subject after two years.
I would like to clarify situation with jumbo frames in ixgbe driver.
I've looked to
https://github.com/luigirizzo/netmap/blob/master/LINUX/ixgbe_netmap_linux.h
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
and see a lot of changes compared 11/12-STABLE version ixgbe_netmap.h.
Is it possible to back port it?
In general, is there a chance to get worked jumbo frames on ixgbe?
--
Andrew
Post by t***@ulg.ac.be
Support for fragmented packets with ixgbe was recently added on the
linux
https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
the packet will follow in the next buf.
Tom
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
--
Vincenzo
--
Vincenzo
Vincenzo Maffione
2018-12-06 08:20:07 UTC
Permalink
Hi,
Actually I just realized that this patch is suitable for stable/11,
whereas on stable/12 ixgbe is served by iflib, and therefore
we need a different patch.

I'll keep you updated then.

Cheers,
Vincenzo
Post by Andrew Vylegzhanin
Hi,
of course I want to test.
But it takes time up to 1-2 weeks, since I need setup HEAD environment in
lab and modify my code for NS_MOREFRAG.
When we can wait for MFC to stable/12 (or stable/11)
--
Andrew
Post by Vincenzo Maffione
Hi,
I prepared a patch (against FreeBSD-HEAD) to to support jumbo frames in
ixgbe.
https://reviews.freebsd.org/D18402
Would you be able to test it?
Thanks,
Vincenzo
Il giorno gio 22 nov 2018 alle ore 13:37 Andrew Vylegzhanin <
Post by Vincenzo Maffione
Post by Vincenzo Maffione
Hi,
Yes, absolutely, I'm currently working on aligning netmap on FreeBSD
(head, stable/12 and stable/11) to
Post by Vincenzo Maffione
the same status it has on Linux (more features, more bugfixes,
continuous integration infrastructure ... ).
Great!
Post by Vincenzo Maffione
In particular, on Linux jumbo frames are already supported on ixgbe,
e1000, igb, e1000e, etc.
BTW, what situation with ixl driver and chelsio ?
Post by Vincenzo Maffione
I have some netmap patches are already in the queue (see here
https://reviews.freebsd.org/differential/query/Ol8MNtAi2AIs/#R),
Post by Vincenzo Maffione
so I can address the ixgbe-jumbo-frames item as soon as the queue
drains.
Post by Vincenzo Maffione
If you want to give a try in the meanwhile, and/or test ixgbe on
FreeBSD it would be great.
I will look forward to ixgbe-jumbo-frames.
Of course, I'm ready to test on both stable's.
Post by Vincenzo Maffione
Cheers,
Vincenzo
WBR,
--
Andrew
Post by Vincenzo Maffione
Il giorno gio 22 nov 2018 alle ore 11:23 Andrew Vylegzhanin <
Post by Andrew Vylegzhanin
Hi,
Come back to subject after two years.
I would like to clarify situation with jumbo frames in ixgbe driver.
I've looked to
https://github.com/luigirizzo/netmap/blob/master/LINUX/ixgbe_netmap_linux.h
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
and see a lot of changes compared 11/12-STABLE version ixgbe_netmap.h.
Is it possible to back port it?
In general, is there a chance to get worked jumbo frames on ixgbe?
--
Andrew
Post by t***@ulg.ac.be
Support for fragmented packets with ixgbe was recently added on the
linux
https://github.com/luigirizzo/netmap/commit/fc1e77560a8a8ea93cc3594de5fae94334debcd3
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
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
Post by Vincenzo Maffione
Post by Andrew Vylegzhanin
Post by t***@ulg.ac.be
the packet will follow in the next buf.
Tom
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-net
"
Post by Vincenzo Maffione
--
Vincenzo
--
Vincenzo
--
Vincenzo
Loading...