Skip to content

Add CoPP model #287

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions models/enterprise_sonic/copp/deleted_example_01.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Using Deleted
#
# 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'
trap_action: 'DROP'
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
# police cir 45 cbs 45
51 changes: 51 additions & 0 deletions models/enterprise_sonic/copp/merged_example_01.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Using Merged
#
# 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_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
39 changes: 39 additions & 0 deletions models/enterprise_sonic/copp/overridden_example_01.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Using Overridden
#
# 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
63 changes: 63 additions & 0 deletions models/enterprise_sonic/copp/replaced_example_01.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Using Replaced
#
# 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_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
84 changes: 84 additions & 0 deletions models/enterprise_sonic/copp/sonic_copp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
GENERATOR_VERSION: '1.0'
NETWORK_OS: sonic
RESOURCE: copp
COPYRIGHT: Copyright 2024 Dell Inc. or its subsidiaries. All Rights Reserved.
DOCUMENTATION: |
module: sonic_copp
version_added: "2.1.0"
notes:
- Tested against Enterprise SONiC Distribution by Dell Technologies.
- Supports C(check_mode).
short_description: Manage CoPP configuration on SONiC
description:
- This module provides configuration management of CoPP for devices running SONiC
author: "Shade Talabi (@stalabi1)"
options:
config:
description:
- Specifies CoPP configurations
type: dict
suboptions:
copp_groups:
description:
- List of CoPP entries that comprise a CoPP group
type: list
elements: dict
suboptions:
copp_name:
description:
- Name of CoPP classifier
type: str
required: true
trap_priority:
description:
- CoPP trap priority
type: int
trap_action:
description:
- CoPP trap action
type: str
choices: ['copy', 'copy_cancel', 'deny', 'drop', 'forward', 'log', 'transit', 'trap']
queue:
description:
- CoPP queue ID
type: int
cir:
description:
- Committed information rate in bps or pps (packets per second)
type: str
cbs:
description:
- Committed bucket size in packets or bytes
type: str
copp_traps:
description:
- List of CoPP entries that comprise a CoPP trap
type: list
elements: dict
version_added: 3.1.0
suboptions:
name:
description:
- Name of CoPP trap
type: str
required: true
trap_ids:
description:
- Comma separated string of trap IDs
type: str
trap_group:
description:
- Name of CoPP group
type: str
state:
description:
- The state of the configuration after module completion
type: str
choices: ['merged', 'deleted', 'replaced', 'overridden']
default: merged
EXAMPLES:
- deleted_example_01.txt
- merged_example_01.txt
- overridden_example_01.txt
- replaced_example_01.txt