Main Question: I'm wondering why the IEEE standard 802.1ad, which specifies the TPID of a S-VLAN as 0x88a8, for double tagged vlans exists, when it's also possible to just use two 802.1Q tags with the TPID 0x8100. What is the advantage of using 0x88a8?

And is there a difference between QinQ and VLAN stacking? It feels like every vendor means something different when they talk about it.

Background: We're a service provider who is currently implementing an access network for customers using GPON. We've configured our OLT to add for each PON-Port (each ONU) a different S-VLAN tag to the customers traffic. The customer must send it's traffic inside of a VLAN. Untagged traffic from the customer is dropped.

So we're sending double tagged traffic on the OLTs uplink port. The C-VLAN from the customer and the S-VLAN added by the OLT.

When we look at a Wireshark capture we see that the OLT adds the S-VLAN with a TPID of 0x8100. So both VLANs have the same TPID. Everything seems to work fine. Wireshark capture of double tagged traffic. Both tags having 0x8100 tpid

However when you look at different literature they always state to use 0x88a8 for the S-VLAN. Why it that? Why was the standard 0x88a8 developed when everything works fine when using double tagged traffic with TPID 0x8100. I didn't find any answer in the IEEE specification why it even exists?

Another point I stumbled across during the configuration was "QinQ" and "VLAN stacking". In some literature they're used as a synonym. They're talking about QinQ and in the next sentence about VLAN Stacking. And some vendor documentation (like HUAWEI) seems to differentiate between QinQ and VLAN stacking. Where's the difference? Or does it depend on the hardware? Is QinQ always 801.ad?

I'm very confused about the possibilities.

1 Answer 1


The point of QinQ using an additional EtherType value for its VLAN tag is that you have a clear distinction of inner C-VLAN tag (customer) or outer S-VLAN tag (service provider).

That way there's no ambiguity when a frame has got just a single tag. Without the distinction, if the inner tag was mistaken for the outer one you could have a major security breach (one customer being able to access another customer's LAN). Using different values, a provider can simply drop all frames coming from an edge port with an outer tag.

The cost of this extra security is low - just a single EtherType value.

Usually, "QinQ" means 802.1ad tagging and very often "VLAN stacking" is the exact same thing, but sadly some vendors use these terms for different methods.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.