sflow_base_test - openconfig/featureprofiles GitHub Wiki

SFLOW-1: sFlow Configuration and Sampling

Summary

Verify configuration of sflow and sFlow sample data.

Procedure

  • SFLOW-1.1 Configure sFlow on DUT on a non-default VRF

    • Configure DUT and ATE with 2 ports
    • Configure DUT to send sflow samples to ATE port 2
    • Set sample source address, sample size 256Bytes, one sample per 1M packets and DSCP=32
  • SFLOW-1.2 Send traffic via OTG and verify sFlow packet on OTG

    • Configure ATE to generate ipv4 and ipv6 traffic and capture sFlow packets

      • Traffic Profile
        Traffic Item PPS Packet Size L3 L4
        sflow3 100000 64 IP TCP
        mflow3 100000 512 IP TCP
        lflow3 100000 1500 IP TCP
    • Verify captured packets are formatted like an sFlow packet

      • Verify sample size is 256B
      • Verify 1 sample sent to collector address per 1M packets generated by ATE
      • Verify sample packet is set with DSCP=32
  • SFLOW-1.3 TODO #2346: Additional sflow packet verifications

    • Using the same packets captured in SFLOW-1.2 verify
      • Sampled interface field shows DUT Port 1
      • Ingress and Egress interfaces are correct
      • "Extended-router" container exists and contains are accurate for plain IP and IP-in-IP flows
        • Next hop
        • Next hop source mask
        • Next hop destination mask

OpenConfig Path and RPC Coverage

paths:
  ## Config Parameter coverage
  /sampling/sflow/config/agent-id-ipv4:
  /sampling/sflow/config/agent-id-ipv6:
  /sampling/sflow/config/dscp:
  /sampling/sflow/config/egress-sampling-rate:
  /sampling/sflow/config/enabled:
  /sampling/sflow/config/ingress-sampling-rate:
  /sampling/sflow/config/polling-interval:
  /sampling/sflow/config/sample-size:
  /sampling/sflow/interfaces/interface/config/name:
  /sampling/sflow/interfaces/interface/config/enabled:
  /sampling/sflow/interfaces/interface/config/egress-sampling-rate:
  /sampling/sflow/interfaces/interface/config/ingress-sampling-rate:
  /sampling/sflow/interfaces/interface/config/polling-interval:

  /sampling/sflow/collectors/collector/config/address:
  /sampling/sflow/collectors/collector/config/network-instance:
  /sampling/sflow/collectors/collector/config/port:
  /sampling/sflow/collectors/collector/config/source-address:

  ## Telemetry Parameter coverage
  /sampling/sflow/state/agent-id-ipv4:
  /sampling/sflow/state/agent-id-ipv6:
  /sampling/sflow/state/dscp:
  /sampling/sflow/state/egress-sampling-rate:
  /sampling/sflow/state/enabled:
  /sampling/sflow/state/ingress-sampling-rate:
  /sampling/sflow/state/polling-interval:
  /sampling/sflow/state/sample-size:
  /sampling/sflow/interfaces/interface/state/name:
  /sampling/sflow/interfaces/interface/state/enabled:
  /sampling/sflow/interfaces/interface/state/egress-sampling-rate:
  /sampling/sflow/interfaces/interface/state/ingress-sampling-rate:
  /sampling/sflow/interfaces/interface/state/polling-interval:

  /sampling/sflow/collectors/collector/address:
  /sampling/sflow/collectors/collector/state/address:
  /sampling/sflow/collectors/collector/state/network-instance:
  /sampling/sflow/collectors/collector/state/port:
  /sampling/sflow/collectors/collector/state/source-address:
  /sampling/sflow/collectors/collector/port:

rpcs:
  gnmi:
    gNMI.Set:
    gNMI.Subscribe:

Minimum DUT platform requirement

FFF

⚠️ **GitHub.com Fallback** ⚠️