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

Reply via email to