This article explains why Differentiated Services Code Point (DSCP) classifiers may not apply to an interface when Mixed Virtual Chassis configuration is enabled on EX4300 Series switches.
When a VC is configured to use Mixed mode, DSCP classifiers are seen to use default classifiers instead of custom classifiers even though they are configured, thus resulting in loss of prioritization:
VC Mixed Mode
{master:0} root@EX4300VC> show virtual-chassis Virtual Chassis ID: d55b.2006.afa0 Virtual Chassis Mode: Mixed Mstr Mixed Route Neighbor List Member ID Status Serial No Model prio Role Mode Mode ID Interface 0 (FPC 0) Prsnt PD3710000570 ex4300-48p 128 Master* Y VC 1 vcp-255/2/1 1 (FPC 1) Prsnt PD3710000470 ex4300-48p 128 Backup Y VC 0 vcp-255/2/0 {master:0}[edit] root@EX4300VC# run show class-of-service interface ge-0/0/1 Physical interface: ge-0/0/1, Index: 646 Maximum usable queues: 12, Queues in use: 7 Scheduler map: custom-voip-sched-maps, Index: 36622 Congestion-notification: Disabled Logical interface: ge-0/0/1.0, Index: 558 Object Name Type Index Classifier ieee8021p-untrust untrust 16
Normal VC Mode
{master:0} root@EX4300VC> show virtual-chassis Virtual Chassis ID: d55b.2006.afa0 Virtual Chassis Mode: Enabled Mstr Mixed Route Neighbor List Member ID Status Serial No Model prio Role Mode Mode ID Interface 0 (FPC 0) Prsnt PD3710000570 ex4300-48p 128 Master* N VC 1 vcp-255/2/1 1 (FPC 1) Prsnt PD3710000470 ex4300-48p 128 Backup N VC 0 vcp-255/2/0 {master:0} root@EX4300VC> show class-of-service interface ge-0/0/1 Physical interface: ge-0/0/1, Index: 702 Maximum usable queues: 12, Queues in use: 11 Scheduler map: custom-voip-sched-maps, Index: 36622 Congestion-notification: Disabled Logical interface: ge-0/0/1.0, Index: 648 Object Name Type Index Classifier custom-dscp-classifier dscp 22586
Configuration
set class-of-service classifiers dscp custom-dscp-classifier import default set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-voice-fc loss-priority low code-points 101110 set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-control-fc loss-priority low code-points 110000 set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-control-fc loss-priority low code-points 011000 set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-control-fc loss-priority low code-points 011010 set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-control-fc loss-priority low code-points 111000 set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-video-fc loss-priority low code-points 100010 set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-video-fc loss-priority low code-points 010010 set class-of-service classifiers dscp custom-dscp-classifier forwarding-class custom-backup-fc loss-priority low code-points 001010 set class-of-service forwarding-classes class custom-best-effort queue-num 0 set class-of-service forwarding-classes class custom-backup-fc queue-num 2 set class-of-service forwarding-classes class custom-video-fc queue-num 4 set class-of-service forwarding-classes class custom-voice-fc queue-num 5 set class-of-service forwarding-classes class custom-control-fc queue-num 7 set class-of-service interfaces ge-* scheduler-map custom-voip-sched-maps set class-of-service interfaces ge-* unit 0 classifiers dscp custom-dscp-classifier set class-of-service scheduler-maps custom-voip-sched-maps forwarding-class custom-voice-fc scheduler custom-voice-scheduler set class-of-service scheduler-maps custom-voip-sched-maps forwarding-class custom-control-fc scheduler custom-control-scheduler set class-of-service scheduler-maps custom-voip-sched-maps forwarding-class custom-video-fc scheduler custom-video-scheduler set class-of-service scheduler-maps custom-voip-sched-maps forwarding-class custom-backup-fc scheduler custom-backup-scheduler set class-of-service scheduler-maps custom-voip-sched-maps forwarding-class custom-best-effort scheduler custom-data-scheduler set class-of-service schedulers custom-voice-scheduler buffer-size percent 15
When the VC is configured to use Mixed Mode in EX4300 Series switches, the switch works only as a linecard, resulting in the entire setup using the hardware specifications of the lowest switch even though a high-end switch exists in the same setup. On the other hand, QFX51xx-EX4600-EX4300-48mp Series switches work as the primary VC. Due to this, the CoS configuration changes from enterprise to data center configuration and QFX does not use enterprise CoS configuration.
The default CoS configuration in all QFX platforms (QFX51xx-4600-4300-48mp) is different from what is used in enterprise EX platforms (EX4300). Because of the difference in CoS architecture, EX4300 omits the custom configuration and uses the default CoS configuration.
See Example: Configuring CoS Hierarchical Port Scheduling (ETS) for more details about CoS in QFX51xx-EX4600-EX4300-48MP platforms.
For CoS configuration example for EX4300 platforms, see Example: Configuring Class of Service for the Midsize Enterprise Campus .
This is expected behavior because EX4300-48P is not intended to work as a VC Primary, but only as a linecard in a Mixed VC environment. QFX51xx-EX4600-EX4300-48MP, on the other hand, will function only as a primary.
The solution to resolve this issue would be to revert to VC Normal mode, which will restore the setup wherein EX4300 uses legacy CoS configuration and QFX uses the data center (ETS) configuration.
2021-03-24: Updated the article terminology to align with Juniper's Inclusion & Diversity initiatives