On 6 Jun 2003 09:26:00 +0800
"forge" <[EMAIL PROTECTED]> wrote:

> Hello, everyone
> 
> I have a hub and several computers connected to it, e.g.
> 
>     HUB
>      |----B
> A ---|
>      |
>      |----C
> 
> 
> Now, when A sends a packet to B, C will also receive the packet
> on datalink layer.
> But the packet is discarded before it reaches ip_input().
> I think it's discarded in datalink layer because the MAC address
> is not matched.
> 
> Now I tried to find the function discarding the unmatched packets,
> but I failed because I'm not familiar to the code in datalink layer.
> 

Usually, the ethernetcard takes care of that. This has a hardware filter
that is programmed with the mac from a config rom on the NIC. That is why
you can set your mac-address. If you subscribe to a ethernet multicast
address (rarely used) the crc of the ethernet multicast is matched in a
smart filter. A NIC can be set to promiscues mode to accept all packets, in
that case, the IP layer has to do all the filtering...

> I use FreeBSD 4.5 system and can anyone give me some advice?
> 
> Much thanks.
> Forge
> 


-- 
Met vriendelijke groeten,

Remco Post

SARA - Stichting Academisch Rekencentrum Amsterdam    http://www.sara.nl
High Performance Computing  Tel. +31 20 592 8008    Fax. +31 20 668 3167

"I really didn't foresee the Internet. But then, neither did the computer
industry. Not that that tells us very much of course - the computer industry
didn't even foresee that the century was going to end." -- Douglas Adams

Reply via email to