cvs commit: src/sys/dev/msk if_msk.c
tom at tomjudge.com
Mon Jun 18 13:38:29 UTC 2007
Andre Oppermann wrote:
> Pyun YongHyeon wrote:
>> On Mon, Jun 11, 2007 at 09:38:10AM +0200, Andre Oppermann wrote:
>> > Pyun YongHyeon wrote:
>> > >yongari 2007-06-11 01:55:09 UTC
>> > >
>> > > FreeBSD src repository
>> > >
>> > > Modified files:
>> > > sys/dev/msk if_msk.c > > Log:
>> > > Disable automatic IP ID increment. Due to a hardware bug the
>> > > IP ID increment in TSO case generated corrupted IP packets.
>> > > This change brings back TSO capability.
>> > > > > Revision Changes Path
>> > > 1.16 +0 -15 src/sys/dev/msk/if_msk.c
>> > > Please add check for the DF (Don't fragment) bit in the IP header.
>> > Otherwise we may run into trouble when fragmentation happens along
>> > the path. We almost always set DF on TCP connections. If it is not
>> > set please return EMSGSIZE which will cause TSO to be turned off.
>> Is there any way to return EMSGSIZE to upper layer?
>> if_start has return type void.
>> Or just dropping the packet if DF bit was not set is enough?
> Dropping the packet is not enough. I forgot the IF queue which
> separates the downpath from the encap function... Don't know
> how you can pass up the error. Robert wanted to change the drivers
> queuing model, that would make it possible. CC'ed.
Sorry for jumping in here, but could you not pass the message back up by
dropping the packet and sending a ICMP error back up the stack with the
Error code set for "Fragmentation needed and DF set" and set the MTU
hint to the current interface MTU? Or is this a stupid idea?
More information about the cvs-all