Verification Tool Configuration#

Use a YAML file to configure the test.

Example YAML
name: cluster-validation-suite
global:
duration: 60
parameters:
    image-pull-secret: ngc-secret
    image-name: nvcr.io/nvidia/holoscan-for-media/h4m-verification-tool-internals:0.1.0
monitoring:
    - name: SR-IOV
    module: sriov
    - name: PTP
    module: ptp
    - name: GPU
    module: gpu

tests:
- name: Platform Checks
    description:
    Capture and verify system details needed for optimal performance including
    PCIe topology, NIC firmware settings, and kernel arguments
    module: Platform
    enabled: true
    validation:
    nic_config:
        - REAL_TIME_CLOCK_ENABLE: True(1)
        - VF_VPD_ENABLE: True(1)
    sriov_config:
        - sriov: true
    acs_config:
        - acs: false
    kernel_args:
        - default_hugepagesz=2M
        - hugepagesz=2M
        - nosmt
        - nosoftlockup
        - idle=poll
        - cpufreq.default_governor=performance
    gpu_config:
        - pcie_link_width: 16x
    duration: 0
    monitoring: null
    parameters: null

- name: Rivermax Generic API
    description:
    Send data with Rivermax Generic API using kernel bypass to capture maximum
    throughput possible on the cluster
    module: generic_sendx_receive_test
    enabled: true

- name: Rivermax Generic API with GPU
    description:
    Send data with Rivermax Generic API using GPUDirect to capture maximum
    throughput possible on the cluster
    module: generic_sendx_receive_test
    enabled: true
    parameters:
    gpu: 1

- name: Rivermax Media 1080p60
  description:
  Send ST2110 1080p 60 fps video streams with Rivermax Media API
  module: media_sendx_rtp_receive_test
  enabled: true
  parameters:
  streams: 71

- name: Rivermax Media 1080p60 with GPU
    description:
    Send ST2110 1080p 60 fps video streams with Rivermax Media API using GPU
    Direct
    module: media_sendx_rtp_receive_test
    enabled: true
    parameters:
    streams: 71
    gpu: 1

- name: Rivermax Media 4K
    description: Send ST2110 4K 60 fps video streams using Rivermax Media API
    module: media_sendx_rtp_receive_test
    enabled: true
    parameters:
    streams: 17
    width: 3840
    height: 2160

- name: Rivermax Media 4K with GPU
    description:
    Send ST2110 4K 60 fps video streams with Rivermax Media API using GPU
    Direct
    module: media_sendx_rtp_receive_test
    enabled: true
    parameters:
    streams: 17
    width: 3840
    height: 2160
    gpu: 1

Global Parameters#

The global section contains settings that apply to all tests in the suite.

Setting

Description

Type

Possible Values

duration

The duration of the test in seconds.

Integer

Any positive integer, for example, 1, 3, or 5.

parameters

The parameters for the test. See Parameters section below.

Dict

Example:

image-pull-secret: ""
cpu: 4

monitoring

The monitoring for the test. See Monitoring section below.

List

Example:

- name: SR-IOV
  module: sriov

Parameters#

Setting

Description

Type

Default Value

Possible Values

image-pull-secret

The image pull secret for the test

String

ngc-secret

The name of the image pull secret to use for the test

image-name

The name of the image to use for the test

String

nvcr.io/nvidia/holoscan-for-media/h4m-verification-tool-internals:0.1.0

The name of the image to use for the test

hugepages-type

The type of hugepages to use for the test

String

hugepages-2Mi

  • hugepages-2Mi

  • hugepages-1Gi

hugepages

The amount of hugepages to use for the test

String

4Gi

The amount of hugepages to use for the test

memory

The amount of memory to use for the test

String

4Gi

The amount of memory to use for the test

cpu

The number of CPU cores to use for the test

Integer

4

Any positive integer, for example, 1, 2, 4.

gpu

The number of GPUs to use for the test

Integer

None

Any positive integer, for example, 1, 2, 4. If not specified, the test will use no GPUs.

network

The name of the network to use for the test

String

media-a-tx-net

scheduler-name

The name of the scheduler to use for the test

String

topo-aware-scheduler

rivermax-license-secret

The name of the Rivermax license secret to use for the test

String

rivermax-license

Monitoring#

Setting

Description

Type

Possible Values

name

The name of the monitoring module.

String

Monitoring module name

module

The module of the monitoring module.

String

  • sriov

  • ptp

  • gpu

Tests#

Platform Checks#

This test validates the system configuration including NIC settings, SR-IOV networking configuration, and kernel parameters.

Setting

Description

Type

Possible Values

name

The name of the test.

String

module

Name of the module.

String

  • Platform

enabled

Whether the test is enabled.

Boolean

true or false

description

Description of the test.

String

validation

Validation for the test.

Dict

  • nic_config

  • sriov_config

  • acs_config

  • kernel_args

  • gpu_config

duration

The duration of the test.

Integer

0

monitoring

Monitoring for the test.

List

null

parameters

Parameters for the test.

Dict

null

nic_config

nic_config:
  - REAL_TIME_CLOCK_ENABLE: True(1)
  - VF_VPD_ENABLE: True(1)

sriov_config

sriov_config:
  - sriov: true

acs_config

acs_config:
  - acs: false

kernel_args

kernel_args:
  - default_hugepagesz=2M
  - hugepagesz=2M
  - nosmt
  - nosoftlockup
  - idle=poll
  - cpufreq.default_governor=performance

gpu_config

gpu_config:
  - pcie_link_width: 16x

Rivermax Xstream Generic API#

Tests basic Rivermax Xstream functionality for sending and receiving generic streams.

- name: Rivermax Generic API
  description:
    Send data with Rivermax Generic API using kernel bypass to capture maximum
    throughput possible on the cluster
  module: generic_sendx_receive_test
  enabled: true
  parameters:
    sender:
      - flows: 1
    receiver:
      - data-size: 1500

parameters

Setting

Description

Type

Default Value

dst-ip

Destination IP address.

String

234.5.6.7

port

Destination port.

Integer

50000

sender

Sender parameters.

Dict

receiver

Receiver parameters.

Dict

sender

Setting

Description

Type

Default Value

flows

Number of flows.

Integer

1

streams

Number of total streams.

Integer

1

threads

Number of threads.

Integer

1

chunks

Number of memory chunks.

Integer

1

packets

Number of packets in chunk.

Integer

4096

payload-size

The packet’s payload size.

Integer

1460

rate-bps

Rate limit in bits per second per flow.

Integer

5000000

rate-burst

The maximum allowed burst size in number of chunks per flow.

Integer

100

no-of-app-cores

The number of application cores.

Integer

null

node-list

The list of nodes to use for the test.

List[int]

null

receiver

Setting

Description

Type

Default Value

data-size

User data (payload) size

Integer

1500

packets

Number of packets to allocate memory for.

Integer

65536

flow-id

Flow ID to use for the test.

Integer

1

wait-event

Wait for packets instead of busy loop

Boolean

true

no-of-app-cores

The number of application cores.

Integer

null

node-list

The list of nodes to use for the test.

List[int]

null

validation

Setting

Description

Type

Default Value

target-gbps

Target Gbps

Float

Calculated at runtime from NIC speed

tolerance-pct

Tolerance percentage

Integer

10

Rivermax Xstream Media API#

This test validates Rivermax functionality with GPUDirect support for sending and receiving generic streams.

parameters

- name: Rivermax Media 4K
  description: Send ST2110 4K 60 fps video streams using Rivermax Media API
  module: media_sendx_rtp_receive_test
  enabled: true
  parameters:
    streams: 17
    width: 3840
    height: 2160
    sender:
      - threads: 1
    receiver:
      - threads: 1

Setting

Description

Type

Default Value

dst-ip

Destination IP address.

String

234.5.6.7

port

Destination port.

Integer

50000

width

Width of the stream.

Integer

1920

height

Height of the stream.

Integer

1080

fps

FPS of the stream.

Integer

60

streams

Number of streams.

Integer

1

sender

Sender parameters.

Dict

receiver

Receiver parameters.

Dict

sender

Setting

Description

Type

Default Value

threads

Number of threads to use for sending.

Integer

3

sleep

Application doesn’t block on send

Boolean

false

no-of-app-cores

The number of application cores.

Integer

null

node-list

The list of nodes to use for the test.

List[int]

null

receiver

Setting

Description

Type

Default Value

threads

Number of threads to use for receiving.

Integer

1

streams

Number of streams to receive.

Integer

1

payload-size

Packet’s payload size

Integer

1200

app-hdr-size

Packet’s application header size

Integer

20

ext-seq-num

Parse extended sequence number from RTP payload

Boolean

true

no-of-app-cores

Number of application cores.

Integer

null

node-list

The list of nodes to use for the test.

List[int]

null

validation

Setting

Description

Type

Default Value

target-gbps

Target Gbps

Float

Calculated at runtime from the number of streams, width, height, and FPS

tolerance-pct

Tolerance percentage

Integer

10

dropped-packets-threshold

Max number of dropped packets per second for a partial passed test

Integer

30