This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

multicast filter for ethernet MAC packets

Hi,
Iam using NXP based LPC2468 microcontroller. Iam using Keil RTX.

Iam trying to set up different filters using multicast MAC addresses. The communication architecture requires that the microcontroller receives only selective multicast addresses.

I want to know:

1. How to do set up multicast MAC filtering?

2. How many such filters can i set for one microcontroller?

further details: The first four bytes of the destination MAC address in the ethernet packet are more or less fixed. My application requires that i should be able to set up four such filters in a single microcontroller.

  • The multicast hash filter is imperfect filter. Besides the set MC MAC address, also some other MC MAC addressess might pass the filter. This means you will have to implement the software filtering in addition.

    However the hash filter is mainly used to reduce the number of packets the CPU has to process.

    1. How to setup the MC MAC filtering is described in the LPC2468 user manual (Chapter 11: Ethernet, 18. CRC calculation)

    2.There is only one hash filter. You need to enable particular bits in a 64-bit hash table to enable receiving MC MAC addressess that need to pass the filter.

  • Hi,

    My ethernet MAC address is only 6 bytes whereas the Hash filter has 8 bytes.

    I have gone through the user manual but there is no guideline on how to arrive at setting selective bits in the HASH FILTERH and HASH FILTERL based on the MAC address.

    My requirement is that the first four bytes are constant. I need to set up the filter to selectively receive based on fifth and sixth byte of the destination address of the received ethernet frame.

    Pls help.

    with Thanks,
    vivek

  • If i intend to receive 0x00 0x01 to 0x01 0xFF for the fifth and
    sixth bytes, how do i set up the HASH register accordingly?

    For example:
    For the MAC destination range between 0x01 0x0c 0xcd 0x01 0x00 0x01 to 0x01 0x0c 0xcd 0x01 0x01 0xff, i would like to receive the packets. Otherwise i would reject the frames.

    There is one function in the user manual to calculate CRC.

    How do i proceed after that? How do i arrive at the hash index and how to set or clear the bit?

    How is the HASH CRC register used?

    Thanks in advance.
    -vivek