Re: broadcast packets not reaching sender on if_hwassist capable interfaces

2002-05-31 Thread mark tinguely


Summary: FreeBSD 4.3 Broadcast IP datagrams not looping on Broadcom GigE
card.

>  Also, why is the decision to loop the packet back made in ether_output 
>  rather than in ip_output? Off the top of my head I can't see any 
>  particular advantage, but perhaps there is. The disadvantage is that I 
>  will have to disable hardware assist for broadcast packets to make things 
>  work right.

the bge sets the interface output to be ether_output() which is
called from the ip_output() after all thse flags have been set..

Are these packets that fail part of a IP fragment? m_copy does not copy
the hwassist flags. we see the same problem with multicast packets.
Bill Fenner wrote a simular multicast patch before FreeBSD 4.5-RELEASE,
but even that fix has not been included into the tree yet either.
In ip_output, we should either we need to copy the hwassist flag in 
_copy or in the code that follows a m_copy, or force the checksum
calculations.

if your packets are not part of a fragment, then let me know.

--mark tinguely.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



broadcast packets not reaching sender on if_hwassist capable interfaces

2002-05-30 Thread Richard Sharpe

Hi,

I was chasing an interesting problem in our FreeBSD 4.3 codebase today.

Broadcast IP datagrams were not being received by programs on the same 
system the IP datagrams were sent from. They were making it out the wire.

The were being sent on a Broadcom GigE interface that has hardware 
checksumming. 

After a while we realized that what was happening was that the packets 
were being marked for hardware checksumming in ip_output 
(m->m_pkthdr.csum_flags), but the decision about looping a packet back to 
ourselves is made in ether_output, so the packet is never checksummed and 
is discarded in ip_input.

Has this been fixed in a subsequent release?

Also, why is the decision to loop the packet back made in ether_output 
rather than in ip_output? Off the top of my head I can't see any 
particular advantage, but perhaps there is. The disadvantage is that I 
will have to disable hardware assist for broadcast packets to make things 
work right.
 
Regards
-
Richard Sharpe, [EMAIL PROTECTED], [EMAIL PROTECTED], 
[EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message