cvs commit: src/sys/dev/msk if_msk.c

Tom Judge 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 
>> automatic
>>  > >  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?

Tom


More information about the cvs-src mailing list