VLAN standard : 802.1 q
QinQ standard : 802.1ad
How do you identify if the packet is VLAN tagged ?
By seeing TPID ( 2 byte ) which is 0x8100 for normal VLAN ( single tag) packets and 0x88a8 for double VLAN ( QinQ) packets.
Why some devices use 0x9100 as TPID for QinQ packets?
Well the initial standard that defined double tagging is defined in "802.1QInQ-2007" standard. In this standard the TPID is defined as 0x9100 , after this the current standard came which is 802.1ad , in this the TPID for double VLAN packets are defined as 0x88a8. So manufacturer who has released their products before this standard finalized are still using 0x9100 as TPID.
if you go through Juniper documentation
http://www.juniper.net/techpubs/en_US/junose13.2/topics/reference/command-summary/svlan-ethertype.html
They have added option to configure all the three types : 8100, 9100, 88a8 in their OS.
If you go through below documentation from Cisco , they talk about only 8100 or 9100 as TPID
http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/qinq.html.
Latest documentation tells about 0x88a8 TPID.
http://www.cisco.com/en/US/docs/ios/cether/configuration/guide/ce_cfm-ieee_802_1ad.pdf
So it all depends on vendor implementation. I have seen most of the devices have configurable option for TPID for QinQ mode.
Let me know what your device supports, is 0x9100 is out of market or still being used !!
Keep exploring , Keep Testing !!!
QinQ standard : 802.1ad
How do you identify if the packet is VLAN tagged ?
By seeing TPID ( 2 byte ) which is 0x8100 for normal VLAN ( single tag) packets and 0x88a8 for double VLAN ( QinQ) packets.
Why some devices use 0x9100 as TPID for QinQ packets?
Well the initial standard that defined double tagging is defined in "802.1QInQ-2007" standard. In this standard the TPID is defined as 0x9100 , after this the current standard came which is 802.1ad , in this the TPID for double VLAN packets are defined as 0x88a8. So manufacturer who has released their products before this standard finalized are still using 0x9100 as TPID.
if you go through Juniper documentation
http://www.juniper.net/techpubs/en_US/junose13.2/topics/reference/command-summary/svlan-ethertype.html
They have added option to configure all the three types : 8100, 9100, 88a8 in their OS.
If you go through below documentation from Cisco , they talk about only 8100 or 9100 as TPID
http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/qinq.html.
Latest documentation tells about 0x88a8 TPID.
http://www.cisco.com/en/US/docs/ios/cether/configuration/guide/ce_cfm-ieee_802_1ad.pdf
So it all depends on vendor implementation. I have seen most of the devices have configurable option for TPID for QinQ mode.
Let me know what your device supports, is 0x9100 is out of market or still being used !!
Keep exploring , Keep Testing !!!