On 25 October 2016 at 02:34, David Gwynne <[email protected]> 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... > the good news is that at least the prepended mbuf gets its ethernet > header correctly aligned. > > dlg
