A QinQ SAP has the following format:
qinq <port-id | lag-id>:qtag1.qtag2
Where:
qtag1 is the outer qtag value - [*, null, 0 to 4094]
qtag2 is the inner qtag value - [*, null, 0 to 4094]
Regular QinQ SAPs have qtag1 and qtag2 values between 1 and 4094. In addition, QinQ Ethernet and LAG ports support the following ‟default” SAPs that can be enabled by the new-qinq-untagged-sap command:
‛*.null’ is defined as a default sap for singly-tagged frames in a QinQ port. This SAP accepts single tags in the range 0 to 4095 as well as untagged traffic. This SAP never pushes any tags on egress.
‛*.*’ is defined as a default sap for doubly-tagged frames in a QinQ port. This SAP accepts untagged, singly tagged, and doubly tagged frames with tags in the range 0..4095. This SAP never pushes any tags on egress.
‛null.null’ is defined as a default SAP for untagged frames only in a QinQ port. This SAP accepts only untagged frames and never pushes any tags on egress. This SAP has higher priority than ‛*.null’ and, or ‛*.*’ when configured on the same QinQ port, therefore it captures untagged frames even if ‛*.null’ or ‛*.*’ are configured.
‛0.*’ can also be used as a default SAP and captures untagged frames, doubly-tagged frames with qtag1 0 (and any value on qtag2) and singly-tagged frames with qtag 0. SAP ‛0.*’ and ‛null.null’ cannot be configured on the same QinQ port.
In addition to the above-mentioned SAPs, qtag2 can also be '0' or '*' when qtag1 is an explicit value in the 1 to 4094 range, for instance: 1/1/1:10.0 or 1/1/1:10.*. Assuming qtag1 is the same value, qtag1.* and qtag1.0 are supported in the same QinQ port. The system never pushes any qtag2 on egress for 1/1/110.0 and 1/1/1:10.*, only qtag1 is pushed. The x.0 accepts only 0 as second tag or not tag (and nothing else), while x.* accepts anything as second tag or no tag.
A SAP lookup is performed when a new frame arrives to a QinQ port. This 'lookup' is based on the <outer-tag, inner-tag> values of the frame.
Table: SAP lookup precedence order for incoming frames shows the SAP lookup precedence order for incoming frames with <qtag1.qtag2> qtag values.
Incoming frame
qtag1.qtag2 |
System/port settings [new-qinq-untagged-sap=YES] | ||||||
---|---|---|---|---|---|---|---|
SAP lookup precedence order | |||||||
:X.Y | :X.0 | :X.* | :0.* | :null.null | :*.null | :*.* | |
x.y |
1st |
2nd |
3rd |
||||
x.0 |
1st |
2nd |
3rd |
||||
0.y |
1st |
2nd |
|||||
0.0 |
1st |
2nd |
|||||
x |
1st |
2nd |
3rd |
4th |
|||
0 |
1st |
2nd |
3rd |
||||
<untagged> |
1st |
2nd |
3rd |
4th |
The following considerations apply to the information described in Table: SAP lookup precedence order for incoming frames:
All SAP types (:X.Y, :X.0, :X.*, :0.* or :null.null, :*.null and :*.*) are supported in the same QinQ port (with the exception of :0.* and :null.null being incompatible) and, in the table, they are ordered from the most specific (left-hand side) to the least specific with the following VID matching ranges:
X or Y means <1 to 4094>
* means <0 to 4095> or untagged
null means 'no tag'
0 means VID 0 or untagged
On egress, the system pushes a tag with a VID value for X and Y, whereas no tag is pushed on egress for values 0, * or null. For example:
On SAP 1/1/1:10.20, the system pushes tags with VIDs 10 and 20 (outer and inner respectively) on egress.
On SAP 1/1/1:10.0 or 1/1/1:10.* the system pushes only one tag with VID 10 on egress.
On SAPs 1/1/1:0.*, 1/1/1:null.null, 1/1/1:*.null or 1/1/1:*.* the system never pushes any tags on egress.
The user can decide the SAP types that are configured in a specific port. Not all SAP types must be configured in a port.
Table: SAP lookup precedence order for incoming frames shows the lookup behavior for ingress frames and priority across SAPs in case more than one can match a specific ingress frame. The SAP lookup result for a specific frame does not depend on the operational status of the SAP. For instance:
In a port with SAPs 1/1/1:0.* and 1/1/1:*.* defined, the SAP lookup for a specific frame with VIDs (0, 300) yields SAP 1/1/1:0.* regardless of its operational status.
The frame only matches SAP 1/1/1:*.* when the 0.* SAP is removed from the configuration.
The following applies to VLAN tag handling:
The system does not strip-off any tags for frames entering the default SAPs (:0.*, :null.null, :*.null or :*.*).
No extra tags are added when the system transmits frames on the default SAPs (:0.*, :null.null, :*.null or :*.*).
The following examples illustrate the SAP classification QinQ ports. The examples assume that the new-qinq-untagged-sap command is enabled.
As shown in Figure: Example 1 SAP classification QinQ ports, assuming that the new-qinq-untagged-sap command is enabled, the following SAPs are defined on the same port:
1/1/1:3000.1001 - business customer - vpls-1
1/1/1:2000.1002 - business customer - vpls-2
1/1/1:20.0 - BNG traffic - vpls-3
1/1/1:20.* - business customer - epipe-4
1/1/1:0.* - business customer - epipe-5
1/1/1:*.null - wholesaling single tag - epipe-6
1/1/1:*.* - wholesaling double tag - epipe-7
Based on the SAPs configuration described above, the incoming traffic is classified in the following way - notation (outer-VID, inner-VID):
(3000, 1001) goes to vpls-1
(20) goes to BNG (vpls-3)
(20, 0) goes to BNG (vpls-3)
(20, 10) goes to epipe-4
untagged, (0), (0, 0), and (0, 10) go to epipe-5
(500) goes to wholesaling single tag (epipe-6)
(500, 300) and (500, 0) go to wholesaling double tag (epipe-7)
Figure: Example 2 SAP classification QinQ ports highlights how untagged, VID=0 tagged frames and 20.X frames are classified in the absence of the 0.* and 20.* SAPs.
As described in Figure: Example 2 SAP classification QinQ ports, assuming the new-qinq-untagged-sap command is enabled, the following SAPs are defined on the same port:
1/1/1:3000.1001 - business customer - vpls-1
1/1/1:2000.1002 - business customer - vpls-2
1/1/1:20.0 - BNG traffic - vpls-3
1/1/1:*.null - wholesaling single tag - epipe-6
1/1/1:*.* - wholesaling double tag - epipe-7
Incoming traffic - notation (outer-VID, inner-VID)
(3000, 1001) goes to vpls-1
(20) goes to BNG (vpls-3)
(20, 0) goes to BNG (vpls-3)
(20, 10) goes to wholesaling double tag (epipe-7)
untagged and (0) go to wholesaling single tag (epipe-6)
(500) goes to wholesaling single tag (epipe-6)
(500, 300) and (500, 0) go to wholesaling double tag (epipe-7)
(0,0), and (0,10) goes to wholesaling double tag (epipe-7)
The following constraints must be considered when configuring default QinQ SAPs (:0.*, :null.null, :*.null, :*.*):
Only supported in Ethernet ports or LAG.
Only supported on Epipe, PBB-Epipe, VPLS and I-VPLS services. They are not supported on VPRN, IES, R-VPLS or B-VPLS services.
Capture SAPs with encapsulation :*.* cannot coexist with a default :*.* SAP on the same port.
Inverse-capture SAPs (*.x) are mutually-exclusive with :*.null SAPs.
*.null SAPs are not supported for Open Flow matching and forwarding.
The following applies to Eth-CFM:
Primary VLAN is not supported.
Eth-CFM extractions occur within the service after the packet lookup has determined which service the inbound packet belongs to.
All four SAPs (null.null, *.null, *.* and 0.*) are treated equally by ETH-CFM. Only untagged CFM PDUs are extracted by a local MEP or MIP. Additional tags in the header may match the service context but are not extracted by ETH-CFM for processing.
ETH-CFM PDU transmission encapsulation is based on the SAP configuration. This means that the ETH-CFM PDUs are transmitted out all four of these SAPs untagged. Care must be taken to ensure that there is no downstream service that may intercept the ETH-CFM PDUs that are not intended for that service. See Table: SAP lookup precedence order for incoming frames for a description of the SAP lookup precedence order for incoming frames and to understand the potential consequences.
Default QinQ SAPs do not support the following features:
PW-SAPs
Eth-tunnel or eth-ring SAPs
VLAN-translation copy-outer
E-Tree root-leaf-tag SAPs
Subscriber-management features
BPDU-translation
Eth-tunnels
IGMP-snooping
MLD-snooping