Skip to content
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

Changes to add template support for copp.json. #5053

Merged
merged 3 commits into from
Jul 31, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
85 changes: 85 additions & 0 deletions dockers/docker-orchagent/copp.json.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
[
{
"COPP_TABLE:default": {
"queue": "0",
"meter_type":"packets",
"mode":"sr_tcm",
"cir":"600",
"cbs":"600",
"red_action":"drop"
},
"OP": "SET"
},
{
"COPP_TABLE:trap.group.bgp.lacp": {
"trap_ids": "bgp,bgpv6,lacp",
"trap_action":"trap",
"trap_priority":"4",
"queue": "4"
},
"OP": "SET"
},
{
"COPP_TABLE:trap.group.arp": {
"trap_ids": "arp_req,arp_resp,neigh_discovery",
"trap_action":"copy",
"trap_priority":"4",
"queue": "4",
"meter_type":"packets",
"mode":"sr_tcm",
"cir":"600",
"cbs":"600",
"red_action":"drop"
},
"OP": "SET"
},
{% if DEVICE_METADATA['localhost']['type'] == "ToRRouter" %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be better to check for the existence of type. If not present, the template might crash - Ref

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please ensure if the type is not defined, the trap is installed? Type is not a mandatory parameter and this might cause backward compatibility issues in cases where type field is not defined

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@prsunny @dgsudharsan Updated to add default else condition for backward compatibility
if DEVICE_METADATA and it sub-parameters are not define.

{
"COPP_TABLE:trap.group.lldp.dhcp.dhcpv6.udld": {
"trap_ids": "lldp,dhcp,dhcpv6,udld",
"trap_action":"trap",
"trap_priority":"4",
"queue": "4"
},
"OP": "SET"
},
{% else %}
{
"COPP_TABLE:trap.group.lldp.udld": {
"trap_ids": "lldp,udld",
"trap_action":"trap",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If type (if defined) is not ToRRouter have the trap-ids only for lldp & udlp and else case have ""trap_ids": "lldp,dhcp,dhcpv6,udld","

Copy link
Contributor Author

@abdosi abdosi Jul 30, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@venkatmahalingam yes this is the behavior

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@venkatmahalingam got your point. Updated accordingly.

"trap_priority":"4",
"queue": "4"
},
"OP": "SET"
},
{% endif %}
{
"COPP_TABLE:trap.group.ip2me": {
"trap_ids": "ip2me",
"trap_action":"trap",
"trap_priority":"1",
"queue": "1",
"meter_type":"packets",
"mode":"sr_tcm",
"cir":"6000",
"cbs":"6000",
"red_action":"drop"
},
"OP": "SET"
},
{
"COPP_TABLE:trap.group.nat": {
"trap_ids": "src_nat_miss,dest_nat_miss",
"trap_action":"trap",
"trap_priority":"1",
"queue": "1",
"meter_type":"packets",
"mode":"sr_tcm",
"cir":"600",
"cbs":"600",
"red_action":"drop"
},
"OP": "SET"
}
]
1 change: 1 addition & 0 deletions dockers/docker-orchagent/docker-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ mkdir -p /etc/swss/config.d/
sonic-cfggen -d -y /etc/sonic/sonic_version.yml -t /usr/share/sonic/templates/switch.json.j2 > /etc/swss/config.d/switch.json
sonic-cfggen -d -t /usr/share/sonic/templates/ipinip.json.j2 > /etc/swss/config.d/ipinip.json
sonic-cfggen -d -t /usr/share/sonic/templates/ports.json.j2 > /etc/swss/config.d/ports.json
sonic-cfggen -d -t /usr/share/sonic/templates/copp.json.j2 > /etc/swss/config.d/00-copp.config.json

# Executed HWSKU specific initialization tasks.
if [ -x /usr/share/sonic/hwsku/hwsku-init ]; then
Expand Down
2 changes: 1 addition & 1 deletion files/build_scripts/generate_asic_config_checksum.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
CHUNK_SIZE = 8192

CONFIG_FILES = {
os.path.abspath('./src/sonic-swss/swssconfig/sample/'): ['netbouncer.json', '00-copp.config.json']
os.path.abspath('./src/sonic-swss/swssconfig/sample/'): ['netbouncer.json']
}

OUTPUT_FILE = os.path.abspath('./asic_config_checksum')
Expand Down