tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: checksum/tso offload makes packets vanish on wm in bridge?



On Thu, Feb 05, 2009 at 04:46:00PM -0500, Thor Simon wrote:
> It appears that if I do this:
> 
> ifconfig wm0 10.0.0.2/24
> ifconfig bridge0 create
> ifconfig bridge0 add wm0
> 
> Everything works as expected: I can, for example, ping 10.0.0.1.
> 
> However, if I then do this:
> 
> ifconfig wm0 ip4csum tcp4csum udp4csum tso4
> 
> frames disappear without being output: tcpdump doesn't even show my
> icmp echo frames on wm0 at all, and I don't get echo replies.
> 
> With ip4csum, tcp4csum, udp4csum tso4 on but no bridge configured,
> all works as expected.
> 
> Has anyone else seen this?  Does anyone have any idea why it might be
> happening?  The host is running amd64 5.0_RC1 under Xen 3.3.

I cannot explain why your packets "vanish," but I have had problems
using the wm + bridge combination:  packets were transmitted with
the wrong checksum, IIRC.  I believe that the IP stack sets the
packet's m_pkthdr.csum_flags instead of calculating the IP checksum
before it calls wm's output routine, ether_output.  ether_output
calls bridge_output, which calls bridge_enqueue, which resets the
csum_flags to 0 before putting it on wm's transmit queue and calling
if_start.  Now there is a bad IP checksum in the packet, and wm
does not know to ask the h/w to compute the checksum.

Dave

-- 
David Young             OJC Technologies
dyoung%ojctech.com@localhost      Urbana, IL * (217) 278-3933


Home | Main Index | Thread Index | Old Index