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
