dellemc.enterprise_sonic.sonic_ars module – Manage adaptive routing and switching (ARS) configuration on SONiC
Note
This module is part of the dellemc.enterprise_sonic collection (version 3.2.0).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install dellemc.enterprise_sonic.
To use it in a playbook, specify: dellemc.enterprise_sonic.sonic_ars.
New in dellemc.enterprise_sonic 3.1.0
Synopsis
This module provides configuration management of ARS for devices running SONiC
Parameters
Parameter |
Comments |
|---|---|
ARS configuration |
|
List of ARS next-hop group objects configuration |
|
Idle time in microseconds Range 16-32767 |
|
Maximum number of flows that can be maintained by the ARS object Choices:
|
|
ARS path reassignment mode Choices:
|
|
Name of next-hop group object |
|
List of ARS port bindings configuration |
|
Name of port |
|
ARS port profile to bind to port Required for modifcation |
|
List of ARS port profiles configuration |
|
Enable/disable ARS for the port Choices:
|
|
Weight of future port load used in EWMA calculations Range 1-16 |
|
Weight as a percentage of the past port load Range 0-100 |
|
Port load scaling factor Choices:
|
|
Name of port profile |
|
List of ARS profiles configuration |
|
ARS algorithm used for quality computation
Choices:
|
|
Maximum current load threshold value for the quantization process Range 0-133169151 |
|
Minimum current load threshold value for the quantization process Range 0-133169151 |
|
Maximum future load threshold value for the quantization process Range 0-266338303 |
|
Minimum future load threshold value for the quantization process Range 0-266338303 |
|
Maximum past load threshold value for the quantization process Range 0-10000 |
|
Minimum past load threshold value for the quantization process Range 0-10000 |
|
Name of profile |
|
Set port load to current sampled value when sampled value is less than the average Choices:
|
|
EWMA exponent used in port loading computation Range 1-16 |
|
Enable/disable future port load, the average queued bytes measured on a port Choices:
|
|
Weight of future port load used in EWMA calculations Range 1-16 |
|
Enable/disable past port load, the average egress bytes measured on a port Choices:
|
|
Weight of past port load used in EWMA calculations Range 1-16 |
|
Random seed value Range 0-16777214 |
|
Sampling interval in microseconds Range 1-255 |
|
ARS switch binding configuration |
|
ARS profile to bind to switch |
|
The state of the configuration after module completion Choices:
|
Notes
Note
Tested against Enterprise SONiC Distribution by Dell Technologies.
Supports
check_mode.
Examples
# Using "merged" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ars
# (No ARS configuration present)
- name: Merge ARS configuration
dellemc.enterprise_sonic.sonic_ars:
config:
ars_objects:
- name: obj1
idle_time: 100
max_flows: 1024
mode: flowlet-quality
port_profiles:
- name: pp1
enable: true
load_future_weight: 9
load_past_weight: 20
load_scaling_factor: 0
profiles:
- name: p1
algorithm: EWMA
load_current_max_val: 10000
load_current_min_val: 100
load_future_max_val: 20000
load_future_min_val: 200
load_past_max_val: 500
load_past_min_val: 50
port_load_current: true
port_load_exponent: 7
port_load_future: true
port_load_future_weight: 9
port_load_past: true
port_load_past_weight: 11
random_seed: 800000
sampling_interval: 140
port_bindings:
- name: Ethernet20
profile: pp1
switch_binding:
profile: p1
state: merged
# After state:
# ------------
#
# sonic# show running-configuration ars
# ars profile p1
# sampling-interval 140
# random-seed 800000
# port-load-past-weight 11
# port-load-future-weight 9
# port-load-current
# port-load-exponent 7
# load-past-min-val 50
# load-past-max-val 500
# load-future-min-val 200
# load-future-max-val 20000
# load-current-min-val 100
# load-current-max-val 10000
# !
# ars port-profile pp1
# enable
# load-past-weight 20
# load-future-weight 9
# !
# ars object obj1
# idle-time 100
# max-flows 1024
# !
# interface Ethernet20
# mtu 9100
# speed 400000
# fec RS
# unreliable-los auto
# shutdown
# ars bind pp1
# !
# ars bind profile p1
# Using "replaced" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ars
# ars profile p1
# sampling-interval 140
# random-seed 800000
# port-load-past-weight 11
# port-load-future-weight 9
# port-load-current
# port-load-exponent 7
# load-past-min-val 50
# load-past-max-val 500
# load-future-min-val 200
# load-future-max-val 20000
# load-current-min-val 100
# load-current-max-val 10000
# !
# ars port-profile pp1
# enable
# load-past-weight 20
# load-future-weight 9
# !
# ars object obj1
# idle-time 100
# max-flows 1024
# !
# interface Ethernet20
# mtu 9100
# speed 400000
# fec RS
# unreliable-los auto
# shutdown
# ars bind pp1
# !
# ars bind profile p1
- name: Replace ARS configuration
dellemc.enterprise_sonic.sonic_ars:
config:
port_profiles:
- name: pp2
enable: true
load_future_weight: 8
load_past_weight: 15
port_bindings:
- name: Ethernet20
profile: pp2
state: replaced
# After state:
# ------------
#
# sonic# show running-configuration ars
# ars profile p1
# sampling-interval 140
# random-seed 800000
# port-load-past-weight 11
# port-load-future-weight 9
# port-load-current
# port-load-exponent 7
# load-past-min-val 50
# load-past-max-val 500
# load-future-min-val 200
# load-future-max-val 20000
# load-current-min-val 100
# load-current-max-val 10000
# !
# ars port-profile pp2
# enable
# load-past-weight 15
# load-future-weight 8
# !
# ars object obj1
# idle-time 100
# max-flows 1024
# !
# interface Ethernet20
# mtu 9100
# speed 400000
# fec RS
# unreliable-los auto
# shutdown
# ars bind pp2
# !
# ars bind profile p1
# Using "overridden" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ars
# ars profile p1
# sampling-interval 140
# random-seed 800000
# port-load-past-weight 11
# port-load-future-weight 9
# port-load-current
# port-load-exponent 7
# load-past-min-val 50
# load-past-max-val 500
# load-future-min-val 200
# load-future-max-val 20000
# load-current-min-val 100
# load-current-max-val 10000
# !
# ars port-profile pp2
# enable
# load-past-weight 15
# load-future-weight 8
# !
# ars object obj1
# idle-time 100
# max-flows 1024
# !
# interface Ethernet20
# mtu 9100
# speed 400000
# fec RS
# unreliable-los auto
# shutdown
# ars bind pp1
# !
# ars bind profile p1
- name: Override ARS configuration
dellemc.enterprise_sonic.sonic_ars:
config:
ars_objects:
- name: obj4
idle_time: 65
max_flows: 4096
mode: flowlet-quality
state: overridden
# After state:
# ------------
#
# sonic# show running-configuration ars
# ars object obj4
# idle-time 65
# max-flows 4096
# Using "deleted" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ars
# ars profile p1
# sampling-interval 140
# random-seed 800000
# port-load-past-weight 11
# port-load-future-weight 9
# port-load-current
# port-load-exponent 7
# load-past-min-val 50
# load-past-max-val 500
# load-future-min-val 200
# load-future-max-val 20000
# load-current-min-val 100
# load-current-max-val 10000
# !
# ars port-profile pp2
# enable
# load-past-weight 15
# load-future-weight 8
- name: Delete specified ARS configuration
dellemc.enterprise_sonic.sonic_ars:
config:
port_profiles:
- name: pp2
profiles:
- name: p1
load_current_max_val: 10000
load_future_max_val: 20000
load_past_max_val: 500
random_seed: 800000
sampling_interval: 140
state: deleted
# After state:
# ------------
#
# sonic# show running-configuration ars
# ars profile p1
# port-load-past-weight 11
# port-load-future-weight 9
# port-load-current
# port-load-exponent 7
# load-past-min-val 50
# load-future-min-val 200
# load-current-min-val 100
# Using "deleted" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ars
# ars profile p1
# sampling-interval 140
# random-seed 800000
# port-load-past-weight 11
# port-load-future-weight 9
# port-load-current
# port-load-exponent 7
# load-past-min-val 50
# load-past-max-val 500
# load-future-min-val 200
# load-future-max-val 20000
# load-current-min-val 100
# load-current-max-val 10000
# !
# ars port-profile pp1
# enable
# load-past-weight 20
# load-future-weight 9
# !
# ars object obj1
# idle-time 100
# max-flows 1024
# !
# interface Ethernet20
# mtu 9100
# speed 400000
# fec RS
# unreliable-los auto
# shutdown
# ars bind pp1
# !
# ars bind profile p1
- name: Delete all ARS configuration
dellemc.enterprise_sonic.sonic_ars:
config:
state: deleted
# After state:
# ------------
#
# sonic# show running-configuration ars
# (No ARS configuration present)
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
The configuration resulting from module invocation. Returned: when changed |
|
The generated configuration from module invocation. Returned: when |
|
The configuration prior to the module invocation. Returned: always |
|
The set of commands pushed to the remote device. Returned: always Sample: |