On 25 October 2016 at 08:25, Mike Belopuhov <m...@belopuhov.com> wrote: > On 25 October 2016 at 02:34, David Gwynne <da...@gwynne.id.au> wrote: >>> I see. I will double check this tomorrow but your approach >>> looks solid. >> >> it's obviously an interaction between intel nics that do not align >> their ethernet headers correctly, and the M_PREPEND which i just >> changed (and you oked) in src/sys/net/if_ethersubr.c r1.240). >> >> basically the stack strips the 6 byte ethernet header before pushing >> the packet into the ip stack, and forwarding causes it to be output >> as an ethernet packet. the M_PREPEND of 8 bytes in ether_output >> causes an mbuf to be prefixed cos the frame has 6 bytes free, not >> 8. >> > > Ah right, it's the same cluster we're transmitting as we have Rx'ed... >
You need to get your mcl2k2 change in then. >> the good news is that at least the prepended mbuf gets its ethernet >> header correctly aligned. >> >> dlg