Showing results for 
Search instead for 
Did you mean: 

QinQ on 3750 and QoS


I have a non-ES port configured for 802.1Q Tunneling (VLAN 100).

More than one VLAN are coming into that port.

VLAN X carries traffic with CoS value = 5, VLAN Y carries traffic with CoS value = 4, etc.

The tunnel port is configured so that CoS values are trusted.

Does anybody know if the CoS values are preserved when the traffic gets into the 802.1Q Tunnel?

Thxs in advance


yes they certainly are. Make sure that the trunk ports also trust cos.


I have the same issue and have configured my trunk and subscriber ports to trust the cos values.

But I do not see any cos mapping from inner to outer vlans

Can you give a working example?

By default with no QoS enabled on 3750, all marking whether CoS or DSCP remain unchanged. In case

you want to enable QoS and want to preserve customer's CoS markings, make sure all your trunk ports

have mls qos trust cos command.

Surya ARBY

Hello all.

I will hijack this thread because I have an issue which gives me headaches, and I'm a newbie regarding QoS

I have an optical fiber between 2 3750 (gigabit) and I want to run QinQ over it (IOS version is 12.2.52).

I will have a VLAN for a customer A (let's say Vlan 10) and another for a customer B (Vlan 20)

I want to limit the bandwidth for customer A to 20 Mb and 100Mb for customer B on the interswitch link; I wanted to use cos-based ingress marking in the access port dedicated to each customer (to mark the traffic internally with .1p in the outer 802.1q header), and then apply queueing and/or policing on the egress interface.

For example set a cos to 1 for the vlan 10 and 3 for vlan 20; map cos 1 to queue 2 and cos 3 to queue 3 (this is default mapping according to the documentation); and then give 2% to queue 2 and 10% to queue 3.

It seems there are a lot of ways to configure that and I'm totally confused on the right way to use. It's only layer 2 QoS and I don't want to remark anything in the tunneled traffic.

I skip this part as I don't want to change the default association

mls qos srr-queue output cos-map queue queue-id threshold threshold-id cos1...cos8

On the egress interface I expect to use something close to this :

Switch(config)# interface gigabitethernet1/1/1

Switch(config-if)# srr-queue bandwidth shape 0 0 0 0

Switch(config-if)# srr-queue bandwidth share 39 2 10 39

Switch(config-if)# priority-queue out

One question on this : if I have no traffic in queues 1 and 4; will the 2 other queues able to get all the remaining bandwidth ? I expect yes as it's queuing and not policing / shaping.

Now on my ingress interfaces how does it work ?

As I want to control bandwidth allocation on a per vlan basis; do I have to enable "mls qos vlan-based" on my ingress interfaces ?

Do I have to trust the incoming traffic on each ingress ports (I guess yes to not override any incoming QoS marking, even if I don't want to use it) ? And finally how can I map/mark the vlan defined on the access port (vlan which is in fact a tunnel ID) to a cos value ?

Do I have to use the "override" keyword or not ? Does it seems to be correct ? I don't want to copy the incoming cos field to the outer header but I want the tunnel to be the most transparent and I don't want to change the 802.1q payload. The doc says that by default the switch copies the inner 802.1p field to the outer header, can I disable this behaviour ?

interface GigabitEthernet1/0/12

description **** QinQ tunnel customer A  ****

switchport access vlan 10

switchport mode dot1q-tunnel

l2protocol-tunnel cdp

l2protocol-tunnel stp

l2protocol-tunnel vtp

mls qos trust cos

mls qos cos 1 override