On all Junos Evolved platforms, when forwarding-class is attached to a logical interface and the forwarding class queue number is modified, the logical interface config reflects this updated queue number. However. the traffic is forwarded via the previous queue.
<-- Initially forwarding-class is assigned to 3
<-- Traffic is sent over queue 3.
<-- Now modify the queue assignment to 0
<-- Expected to verify the traffic over queue 0
<-- In reality traffic is sent over queue 3 .. still..
<-- If you remove the class-of-service-->interfaces-->unit --> forwarding-class and re-apply the config, queue assignment is changing and forwarding the traffic over the expected queue..
<-- Initially the following config is applied on the interfaces
user@router# show class-of-service
forwarding-classes {
class test-external queue-num 3;
}
interfaces {
et-0/0/0 {
unit 0 {
forwarding-class test-external;
rewrite-rules {
dscp test-dscp-zero;
dscp-ipv6 test-dscp-zero-v6;
et-0/0/1 {
dscp test-dscp-zero {
forwarding-class test-external {
loss-priority high code-point 000000;
loss-priority low code-point 000000;
loss-priority medium-high code-point 000000;
dscp-ipv6 test-dscp-zero-v6 {
[edit]
user@router#
<-- Traffic is being sent at 100 pps in both directions for both the interfaces
<-- Traffic is being sent over queue 3 as expected
for et-0/0/1
Egress queues: 8 supported, 4 in use
Queue counters: Queued packets Transmitted packets Dropped packets
0 0 0 0
1 0 0 0
2 0 0 0
3 6719 6719 0
Queue number: Mapped forwarding classes
0 best-effort
1 expedited-forwarding
2 assured-forwarding
3 test-external
<-- Now modified the queue number to 0
user@router# set class-of-service forwarding-classes class test-external queue-num 0
user@router# commit
commit complete
user@router# show class-of-service | display set
set class-of-service forwarding-classes class test-external queue-num 0
set class-of-service interfaces et-0/0/0 unit 0 forwarding-class test-external
set class-of-service interfaces et-0/0/0 unit 0 rewrite-rules dscp test-dscp-zero
set class-of-service interfaces et-0/0/0 unit 0 rewrite-rules dscp-ipv6 test-dscp-zero-v6
set class-of-service interfaces et-0/0/1 unit 0 forwarding-class test-external
set class-of-service interfaces et-0/0/1 unit 0 rewrite-rules dscp test-dscp-zero
set class-of-service interfaces et-0/0/1 unit 0 rewrite-rules dscp-ipv6 test-dscp-zero-v6
set class-of-service rewrite-rules dscp test-dscp-zero forwarding-class test-external loss-priority high code-point 000000
set class-of-service rewrite-rules dscp test-dscp-zero forwarding-class test-external loss-priority low code-point 000000
set class-of-service rewrite-rules dscp test-dscp-zero forwarding-class test-external loss-priority medium-high code-point 000000
set class-of-service rewrite-rules dscp-ipv6 test-dscp-zero-v6 forwarding-class test-external loss-priority high code-point 000000
set class-of-service rewrite-rules dscp-ipv6 test-dscp-zero-v6 forwarding-class test-external loss-priority low code-point 000000
set class-of-service rewrite-rules dscp-ipv6 test-dscp-zero-v6 forwarding-class test-external loss-priority medium-high code-point 000000
<-- Now still the traffic is being sent over queue 3
3 13524 13524 <<<<< traffic is still with queue 3 0
0 test-external <<<<<<<<< queue assignment changed
3 network-control
.
3 14922 14922 0
0 test-external
<-- On intf et-0/0/0
3 11286 11286 0
3 24091 24091 0
user@router> show class-of-service interface et-0/0/0
Physical interface: et-0/0/0, Index: 1397
Maximum usable queues: 8, Queues in use: 4
Exclude aggregate overhead bytes: disabled
Logical interface aggregate statistics: disabled
Scheduler map: default
Congestion-notification: Disabled
Logical interface: et-0/0/0.0, Index: 1075
Object Name Type Index
Classifier-Input test-external fixed 0
Rewrite test-dscp-zero dscp 0
user@router> show class-of-service interface et-0/0/1
Physical interface: et-0/0/1, Index: 1396
Logical interface: et-0/0/1.0, Index: 1076
Traffic can still be forwarded on the previous queue
<-- This is SW issue and addressed from 24.4R2-S3 onwards.
<-- Please reach out to JTAC/CFTS, when you encounter this issue.
Workaround:
<-- After deleting and re-applying the config fixes the issue
user@router# delete class-of-service interfaces et-0/0/0 unit 0 forwarding-class
user@router# set class-of-service interfaces et-0/0/0 unit 0 forwarding-class test-external
user@router# #####
user@router# #
user@router# delete class-of-service interfaces et-0/0/1 unit 0 forwarding-class
user@router# set class-of-service interfaces et-0/0/1 unit 0 forwarding-class test-external
<-- et-0/0/0
0 4832 4832 0
3 216935 216935 0
0 6633 6633 0
on et-0/0/1
0 197388 197388 0
3 26817 26817 0
0 218189 218189 0
3 26825 26825 0