bursty_traffic_test - openconfig/featureprofiles GitHub Wiki

DP-1.11: Bursty traffic test

Summary

Verify that DUT does not drop bursty traffic.

QoS traffic test setup:

  • Topology:

    • 2 input interfaces and 1 output interface with the same port speed. The interface can be a physical interface or LACP bundle interface with the same aggregated speed.
      ATE port 1
          |
         DUT--------ATE port 3
          |
      ATE port 2
    
  • Traffic classes:

    • We will use 7 traffic classes NC1, AF4, AF3, AF2, AF1, BE0 and BE1.
  • Traffic types:

    • All the traffic tests apply to both IPv4 and IPv6 traffic.
  • Queue types:

    • NC1 will have strict priority queues
      • AF4/AF3/AF2/AF1/BE1/BE0 will use WRR queues.
    • NC1 will have strict priority queue.
      • AF4, AF3, AF2, AF1, BE1 and BE0 will use WRR queues.
  • Test results should be independent of the location of interfaces. For example, 2 input interfaces and output interface could be located on

    • Same ASIC-based forwarding engine
    • Different ASIC-based forwarding engine on same line card
    • Different ASIC-based forwarding engine on different line cards
  • Test results should be the same for port speeds 100G and 400G.

  • Counters should be also verified for each test case:

    • /qos/interfaces/interface/output/queues/queue/state/transmit-pkts
    • /qos/interfaces/interface/output/queues/queue/state/dropped-pkts
    • transmit-pkts should be equal to the number of Rx pkts on Ixia port
    • dropped-pkts should be equal to diff between the number of Tx and the number Rx pkts on Ixia ports
  • Latency:

    • Should be < 100000ns

Procedure

  • Connect DUT port-1 to ATE port-1, DUT port-2 to ATE port-2 and DUT port-3 to ATE port-3.

  • Configuration:

    • Configure strict priority queues for NC1 and AF4 with NC1 having higher priority.
    • Configure WRR for AF4, AF3, AF2, AF1, BE0 and BE1 with weight 48, 12, 8, 4, 1 and 1 respectively.
  • Verify that there is no traffic loss with bursty traffic

    • NC1 traffic from Input interface 1 and 2:
    Interface# Rate(%) Frame size Packet count Inter-pkt gap(bytes) inter burst gap(bytes) Output(%)
    1 45 512 1200 12 48000 100
    2 50 512 1200 12 96000 100
    • Repeat the above test case for other traffic classes::
      • AF4
      • AF3
      • AF2
      • AF1
      • BE1
      • BE0

OpenConfig Path and RPC Coverage

This yaml defines the OC paths intended to be covered by this test. OC paths used for test environment setup are not required to be listed here.

paths:
  ## Config paths
  ### Classifiers
  /qos/classifiers/classifier/config/name:
  /qos/classifiers/classifier/config/type:
  /qos/classifiers/classifier/terms/term/actions/config/target-group:
  /qos/classifiers/classifier/terms/term/conditions/ipv4/config/dscp-set:
  /qos/classifiers/classifier/terms/term/conditions/ipv6/config/dscp-set:
  /qos/classifiers/classifier/terms/term/config/id:

  ### Forwarding Groups
  /qos/forwarding-groups/forwarding-group/config/name:
  /qos/forwarding-groups/forwarding-group/config/output-queue:

  ### Queue
  /qos/queues/queue/config/name:

  ### Interfaces
  /qos/interfaces/interface/input/classifiers/classifier/config/name:
  /qos/interfaces/interface/output/queues/queue/config/name:
  /qos/interfaces/interface/output/scheduler-policy/config/name:

  ### Scheduler policy
  /qos/scheduler-policies/scheduler-policy/config/name:
  /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/priority:
  /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/sequence:
  /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/type:
  /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/id:
  /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/input-type:
  /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/queue:
  /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/weight:

  ## State paths
  /qos/interfaces/interface/output/queues/queue/state/transmit-pkts:
  /qos/interfaces/interface/output/queues/queue/state/transmit-octets:
  /qos/interfaces/interface/output/queues/queue/state/dropped-pkts:
  /qos/interfaces/interface/output/queues/queue/state/dropped-octets:

rpcs:
  gnmi:
    gNMI.Set:
    gNMI.Subscribe:
⚠️ **GitHub.com Fallback** ⚠️