dellemc.enterprise_sonic.sonic_copp module – Manage CoPP 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_copp.
New in dellemc.enterprise_sonic 2.1.0
Synopsis
- This module provides configuration management of CoPP for devices running SONiC
Parameters
Parameter | Comments |
|---|---|
config dictionary | Specifies CoPP configurations |
|
copp_groups list / elements=dictionary |
List of CoPP entries that comprise a CoPP group |
|
cbs string |
Committed bucket size in packets or bytes |
|
cir string |
Committed information rate in bps or pps (packets per second) |
|
copp_name string / required |
Name of CoPP classifier |
|
queue integer |
CoPP queue ID |
|
trap_action string |
CoPP trap action Choices:
|
|
trap_priority integer |
CoPP trap priority |
|
copp_traps list / elements=dictionary added in dellemc.enterprise_sonic 3.1.0 |
List of CoPP entries that comprise a CoPP trap |
|
name string / required |
Name of CoPP trap |
|
trap_group string |
Name of CoPP group |
|
trap_protocol_ids string |
Comma separated string of trap protocol IDs |
state string | 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 copp actions
# (No "copp actions" configuration present)
# sonic# show copp classifiers
# (No "copp classifiers" configuration present)
- name: Merge CoPP configuration
dellemc.enterprise_sonic.sonic_copp:
config:
copp_groups:
- copp_name: 'copp-1'
trap_priority: 1
trap_action: 'drop'
queue: 1
cir: '45'
cbs: '45'
- copp_name: 'copp-2'
trap_priority: 2
trap_action: 'forward'
queue: 2
cir: '90'
cbs: '90'
copp_traps:
- name: 'trap-1'
trap_protocol_ids: 'id1,id2,id3'
trap_group: 'copp-1'
state: merged
# After state:
# ------------
#
# sonic# show copp actions
# CoPP action group copp-1
# trap-action drop
# trap-priority 1
# trap-queue 1
# police cir 45 cbs 45
# CoPP action group copp-2
# trap-action forward
# trap-priority 2
# trap-queue 2
# police cir 90 cbs 90
# sonic# show copp classifiers
# Class-map trap-1 match-type copp
# protocol id1
# protocol id2
# protocol id3
# Using "replaced" state
#
# Before state:
# -------------
#
# sonic# show copp actions
# CoPP action group copp-1
# trap-action drop
# trap-priority 1
# trap-queue 1
# police cir 45 cbs 45
# CoPP action group copp-2
# trap-action forward
# trap-priority 2
# trap-queue 2
# police cir 55 cbs 55
# sonic# show copp classifiers
# Class-map trap-1 match-type copp
# protocol id1
# protocol id2
# protocol id3
- name: Replace CoPP configuration
dellemc.enterprise_sonic.sonic_copp:
config:
copp_groups:
- copp_name: 'copp-1'
trap_priority: 2
trap_action: 'forward'
queue: 2
- copp_name: 'copp-3'
trap_priority: 3
trap_action: 'drop'
queue: 3
cir: '1000'
cbs: '1000'
copp_traps:
- name: 'trap-1'
trap_protocol_ids: 'id1'
trap_group: 'copp-2'
state: replaced
# After state:
# ------------
#
# sonic# show copp actions
# CoPP action group copp-1
# trap-action forward
# trap-priority 2
# trap-queue 2
# CoPP action group copp-2
# trap-action forward
# trap-priority 2
# trap-queue 2
# police cir 55 cbs 55
# CoPP action group copp-3
# trap-action drop
# trap-priority 3
# trap-queue 3
# police cir 1000 cbs 1000
# sonic# show copp classifiers
# Class-map trap-1 match-type copp
# protocol id1
# Using "overridden" state
#
# Before state:
# -------------
#
# sonic# show copp actions
# CoPP action group copp-1
# trap-action forward
# trap-priority 2
# trap-queue 2
# CoPP action group copp-3
# trap-action drop
# trap-priority 3
# trap-queue 3
# police cir 1000 cbs 1000
# Class-map trap-1 match-type copp
# protocol id1
- name: Override CoPP configuration
dellemc.enterprise_sonic.sonic_copp:
config:
copp_groups:
- copp_name: 'copp-4'
trap_priority: 4
trap_action: 'forward'
queue: 4
cir: 200
cbs: 200
state: overridden
# After state:
# ------------
#
# sonic# show copp actions
# CoPP action group copp-4
# trap-action forward
# trap-priority 4
# trap-queue 4
# police cir 200 cbs 200
# Using "deleted" state
#
# Before state:
# -------------
#
# sonic# show copp actions
# CoPP action group copp-1
# trap-action drop
# trap-priority 1
# trap-queue 1
# police cir 45 cbs 45
# CoPP action group copp-2
# trap-action forward
# trap-priority 2
# trap-queue 2
# police cir 90 cbs 90
# Class-map trap-1 match-type copp
- name: Delete CoPP configuration
dellemc.enterprise_sonic.sonic_copp:
config:
copp_groups:
- copp_name: 'copp-1'
cir: '45'
cbs: '45'
- copp_name: 'copp-2'
copp_traps:
- name: 'trap-1'
state: deleted
# After state:
# ------------
#
# sonic# show copp actions
# CoPP action group copp-1
# trap-action drop
# trap-priority 1
# trap-queue 1
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Description |
|---|---|
after dictionary | The configuration resulting from module invocation. Returned: when changed |
after(generated) dictionary | The configuration that would be generated by non-check mode module invocation. Returned: when |
before dictionary | The configuration prior to the module invocation. Returned: always |
commands list / elements=string | The set of commands pushed to the remote device. Returned: always Sample: |
Collection links
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/dellemc/enterprise_sonic/sonic_copp_module.html