Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: Ethernet Database (IxEthDB) API
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
166 Document Number: 252539, Revision: 007
For example, Port 1 is configured with a PVID set to 12 and VLAN membership group of {1, 2, 10,
12, 20 to 40, 100, 102, 3000 to 3010}. If VLAN membership filtering is enabled and acceptable
frame type filtering is configured appropriately for the port, the following scenarios are possible:
If tagging is not enabled, untagged frames will be left untagged and passed through,.
If tagging is enabled, untagged frames will be tagged with a VLAN ID set from the port PVID
(12) and passed through. Since the frame is tagged with the port VLAN ID, it will always be
accepted by the same port’s membership table.
Tagged frames will be checked against the port membership table, therefore:
frames with VLAN IDs of 2, 10, 25, 100 or 3009 will be accepted,
frames with VLAN IDs of 0 (priority-tagged frame), 4, 15, 200 or 4072 will be discarded.
The IxEthDB API allows the user to add and remove individual VLAN ID entries as well as entire
VLAN ranges into each port’s VLAN membership table. Also, membership checks can be enabled
or disabled at run time.
Port membership filtering is disabled by default.
Note that a port will always have a non-empty membership table. By default the PVID, which is 0
at initialization time, is declared in the membership table. The PVID cannot be removed from the
membership table at any time.
10.3.4.6 Port and VLAN-Based Egress Tagging and Tag Removal
IxEthDB supports configuration of Egress frame tagging and tag removal, depending on the NPE
image capabilities. Unlike Ingress tagging and tag removal, the egress tagging process adds a per-
VLAN tagging configuration option. The port membership and egress tagging settings for each
VLAN are stored in a structure called the Transmit Tagging Information (TTI) table.
Tagging and tag removal can also be individually overridden for each frame, using the following
IX_OSAL_MBUF header flags:
ixp_ne_vlan_tci – tag control information. Frames are tagged using this tag, irrespective
whether they already have a VLAN tag or not.
ixp_ne_flags.tag_over – transmit VLAN override tag. A value of 0 indicates that the default
tagging behavior for the port/VID should be used. A value of 1 indicates an override. The
ixp_ne_flags.tag_mode flag can be set by the client application to override the Egress
tagging behavior, and the ixp_ne_vlan_tci field can be populated with the proper TCI
information for that frame.
ixp_ne_flags.tag_mode – VLAN tag behavior control. A value of 0 indicates that the frame
will be transmitted untagged. A value of 1 indicates that the frame will be tagged. This flag can
be set by the client application to override the default Egress tagging behavior.
ixp_ne_flags.vlan_en - This flag must be enabled if any tagging or untagging will take place.
Use this field to override the special conditions listed below.
The
ixp_ne_vlan_tci field is automatically populated on ingress with the 802.1Q tag present in the
frame (if any), or with the ingress port VLAN ID tag (for untagged frames). This happens even if
the frame is untagged during ingress, giving the client application a chance to inspect the original
VLAN tag. If this field is not changed by the client code, the frame will be re-tagged on
transmission with the same tag.
Tagging frames on egress is determined in the following manner: