Discussion:
checksum/tso offload makes packets vanish on wm in bridge?
(too old to reply)
Thor Simon
2009-02-05 21:46:00 UTC
Permalink
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.
--
Thor Lancelot Simon
Coyote Point Systems, Inc. <***@coyotepoint.com>
Millerton, NY, USA

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
David Young
2009-02-05 22:11:13 UTC
Permalink
Post by Thor Simon
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.
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
***@ojctech.com Urbana, IL * (217) 278-3933

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...