This section describes the usage of the frame filter to implement VLAN priority based filtering.
In the previous figure, the MAC is shown connected to priority FIFOs. In this case, the frame filter 0 is set up to match the VLAN Type and the VLAN Priority field with a value of 7. In a standard VLAN Ethernet frame, the VLAN type value of 0x8100 is found in bytes [14:13], with the priority field being the upper three bits of byte 15. This requires the following register settings:
- Frame Filter Value bytes [15:12] set to 0xE0008100
- Frame Filter Mask Value bytes [15:12] set to 0xE0FFFF00
- All other Frame Filter Mask Value bytes are set to 0x0
In this case, the FIFO which is using rx_axis_filter_tuser[0]
only passes good VLAN frames which
have a priority field set to 7. The default FIFO, which is using rx_axis_filter_tuser[4]
(that is, the “else” bit of the signal), only accepts good
frames (either not VLAN frames or have a priority field with a value other than 7). This is
illustrated in the following figure.