diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md
index 8d1d4274bc4..2be10e40e91 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md
@@ -498,6 +498,7 @@ interface Port-Channel100.101
interface Port-Channel100.102
description IFL for TENANT02
no logging event link-status
+ logging event storm-control discards
mtu 1500
encapsulation dot1q vlan 102
vrf C2
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md
index f865621a5cb..079736603df 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md
@@ -440,6 +440,7 @@ interface Vlan1002
interface Vlan2001
description SVI Description
vrf Tenant_B
+ logging event link-status
ip address virtual 10.2.1.1/24
comment
Comment created from eos_cli under vlan_interfaces.Vlan2001
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg
index 7ec7422df17..ae339a7d0ab 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg
@@ -160,6 +160,7 @@ interface Port-Channel100.101
interface Port-Channel100.102
description IFL for TENANT02
no logging event link-status
+ logging event storm-control discards
mtu 1500
encapsulation dot1q vlan 102
vrf C2
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg
index 974dca79fa8..2aafe26dc80 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg
@@ -256,6 +256,7 @@ interface Vlan1002
interface Vlan2001
description SVI Description
vrf Tenant_B
+ logging event link-status
ip address virtual 10.2.1.1/24
comment
Comment created from eos_cli under vlan_interfaces.Vlan2001
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/port-channel-interfaces.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/port-channel-interfaces.yml
index f1bfb610c81..977ce862543 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/port-channel-interfaces.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/port-channel-interfaces.yml
@@ -106,6 +106,7 @@ port_channel_interfaces:
logging:
event:
link_status: false
+ storm_control_discards: true
description: IFL for TENANT02
mtu: 1500
ip_address: 10.1.2.3/31
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/vlan-interfaces.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/vlan-interfaces.yml
index d54ac3b47f1..f51600a04e8 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/vlan-interfaces.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/vlan-interfaces.yml
@@ -5,6 +5,9 @@ vlan_interfaces:
description: SVI Description
vrf: Tenant_B
ip_address_virtual: 10.2.1.1/24
+ logging:
+ event:
+ link_status: true
eos_cli: |
comment
Comment created from eos_cli under vlan_interfaces.Vlan2001
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md
index ecae56eb9e0..2c7cfb3ae9f 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md
@@ -228,7 +228,7 @@
| [ link_status](## "ethernet_interfaces.[].logging.event.link_status") | Boolean | | | | |
| [ congestion_drops](## "ethernet_interfaces.[].logging.event.congestion_drops") | Boolean | | | | |
| [ spanning_tree](## "ethernet_interfaces.[].logging.event.spanning_tree") | Boolean | | | | |
- | [ storm_control_discards](## "ethernet_interfaces.[].logging.event.storm_control_discards") | Boolean | | | | |
+ | [ storm_control_discards](## "ethernet_interfaces.[].logging.event.storm_control_discards") | Boolean | | | | Discards due to storm-control.
|
| [ lldp](## "ethernet_interfaces.[].lldp") | Dictionary | | | | |
| [ transmit](## "ethernet_interfaces.[].lldp.transmit") | Boolean | | | | |
| [ receive](## "ethernet_interfaces.[].lldp.receive") | Boolean | | | | |
@@ -780,6 +780,8 @@
link_status:
congestion_drops:
spanning_tree:
+
+ # Discards due to storm-control.
storm_control_discards:
lldp:
transmit:
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
index 97b2b80192d..79e70411811 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
@@ -13,6 +13,7 @@
| [ logging](## "port_channel_interfaces.[].logging") | Dictionary | | | | |
| [ event](## "port_channel_interfaces.[].logging.event") | Dictionary | | | | |
| [ link_status](## "port_channel_interfaces.[].logging.event.link_status") | Boolean | | | | |
+ | [ storm_control_discards](## "port_channel_interfaces.[].logging.event.storm_control_discards") | Boolean | | | | Discards due to storm-control.
|
| [ shutdown](## "port_channel_interfaces.[].shutdown") | Boolean | | | | |
| [ l2_mtu](## "port_channel_interfaces.[].l2_mtu") | Integer | | | Min: 68
Max: 65535 | "l2_mtu" should only be defined for platforms supporting the "l2 mtu" CLI
|
| [ l2_mru](## "port_channel_interfaces.[].l2_mru") | Integer | | | Min: 68
Max: 65535 | "l2_mru" should only be defined for platforms supporting the "l2 mru" CLI
|
@@ -235,6 +236,9 @@
logging:
event:
link_status:
+
+ # Discards due to storm-control.
+ storm_control_discards:
shutdown:
# "l2_mtu" should only be defined for platforms supporting the "l2 mtu" CLI
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/vlan-interfaces.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/vlan-interfaces.md
index a4442f9ad79..78c261b78d8 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/vlan-interfaces.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/vlan-interfaces.md
@@ -10,6 +10,9 @@
| [vlan_interfaces](## "vlan_interfaces") | List, items: Dictionary | | | | |
| [ - name](## "vlan_interfaces.[].name") | String | Required, Unique | | | VLAN interface name like "Vlan123" |
| [ description](## "vlan_interfaces.[].description") | String | | | | |
+ | [ logging](## "vlan_interfaces.[].logging") | Dictionary | | | | |
+ | [ event](## "vlan_interfaces.[].logging.event") | Dictionary | | | | |
+ | [ link_status](## "vlan_interfaces.[].logging.event.link_status") | Boolean | | | | |
| [ shutdown](## "vlan_interfaces.[].shutdown") | Boolean | | | | |
| [ vrf](## "vlan_interfaces.[].vrf") | String | | | | VRF name |
| [ arp_aging_timeout](## "vlan_interfaces.[].arp_aging_timeout") | Integer | | | Min: 1
Max: 65535 | In seconds |
@@ -190,6 +193,9 @@
# VLAN interface name like "Vlan123"
- name:
description:
+ logging:
+ event:
+ link_status:
shutdown:
# VRF name
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json
index f791aea527b..100d5ffc63b 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json
@@ -3930,6 +3930,7 @@
},
"storm_control_discards": {
"type": "boolean",
+ "description": "Discards due to storm-control.\n",
"title": "Storm Control Discards"
}
},
@@ -11912,6 +11913,11 @@
"link_status": {
"type": "boolean",
"title": "Link Status"
+ },
+ "storm_control_discards": {
+ "type": "boolean",
+ "description": "Discards due to storm-control.\n",
+ "title": "Storm Control Discards"
}
},
"additionalProperties": false,
@@ -24936,6 +24942,30 @@
"type": "string",
"title": "Description"
},
+ "logging": {
+ "type": "object",
+ "properties": {
+ "event": {
+ "type": "object",
+ "properties": {
+ "link_status": {
+ "type": "boolean",
+ "title": "Link Status"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Event"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Logging"
+ },
"shutdown": {
"type": "boolean",
"title": "Shutdown"
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.pickle b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.pickle
new file mode 100644
index 00000000000..deeb55bcea4
Binary files /dev/null and b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.pickle differ
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml
index 7b6c2b4de2a..629980b00e3 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml
@@ -2462,6 +2462,9 @@ keys:
type: bool
storm_control_discards:
type: bool
+ description: 'Discards due to storm-control.
+
+ '
lldp:
type: dict
keys:
@@ -7069,6 +7072,11 @@ keys:
keys:
link_status:
type: bool
+ storm_control_discards:
+ type: bool
+ description: 'Discards due to storm-control.
+
+ '
shutdown:
type: bool
l2_mtu:
@@ -14533,6 +14541,14 @@ keys:
description: VLAN interface name like "Vlan123"
description:
type: str
+ logging:
+ type: dict
+ keys:
+ event:
+ type: dict
+ keys:
+ link_status:
+ type: bool
shutdown:
type: bool
vrf:
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/ethernet_interfaces.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/ethernet_interfaces.schema.yml
index fd204b761f0..b94da00e614 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/ethernet_interfaces.schema.yml
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/ethernet_interfaces.schema.yml
@@ -688,6 +688,8 @@ keys:
type: bool
storm_control_discards:
type: bool
+ description: |
+ Discards due to storm-control.
lldp:
type: dict
keys:
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/port_channel_interfaces.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/port_channel_interfaces.schema.yml
index 1a436eb2f3e..e890c9768f5 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/port_channel_interfaces.schema.yml
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/port_channel_interfaces.schema.yml
@@ -26,6 +26,10 @@ keys:
keys:
link_status:
type: bool
+ storm_control_discards:
+ type: bool
+ description: |
+ Discards due to storm-control.
shutdown:
type: bool
l2_mtu:
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/vlan_interfaces.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/vlan_interfaces.schema.yml
index b46b6571c5c..813ebed627b 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/vlan_interfaces.schema.yml
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/vlan_interfaces.schema.yml
@@ -19,6 +19,14 @@ keys:
description: VLAN interface name like "Vlan123"
description:
type: str
+ logging:
+ type: dict
+ keys:
+ event:
+ type: dict
+ keys:
+ link_status:
+ type: bool
shutdown:
type: bool
vrf:
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/port-channel-interfaces.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/port-channel-interfaces.j2
index 0256ce4b693..a55adde5983 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/port-channel-interfaces.j2
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/port-channel-interfaces.j2
@@ -15,6 +15,11 @@ interface {{ port_channel_interface.name }}
{% elif port_channel_interface.logging.event.link_status is arista.avd.defined(false) %}
no logging event link-status
{% endif %}
+{% if port_channel_interface.logging.event.storm_control_discards is arista.avd.defined(true) %}
+ logging event storm-control discards
+{% elif port_channel_interface.logging.event.storm_control_discards is arista.avd.defined(false) %}
+ no logging event storm-control discards
+{% endif %}
{% if port_channel_interface.shutdown is arista.avd.defined(true) %}
shutdown
{% elif port_channel_interface.shutdown is arista.avd.defined(false) %}
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/vlan-interfaces.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/vlan-interfaces.j2
index c212884ae4a..f4131dfe7a0 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/vlan-interfaces.j2
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/vlan-interfaces.j2
@@ -24,6 +24,11 @@ interface {{ vlan_interface.name }}
{% if vlan_interface.vrf is arista.avd.defined %}
vrf {{ vlan_interface.vrf }}
{% endif %}
+{% if vlan_interface.logging.event.link_status is arista.avd.defined(true) %}
+ logging event link-status
+{% elif vlan_interface.logging.event.link_status is arista.avd.defined(false) %}
+ no logging event link-status
+{% endif %}
{% if vlan_interface.arp_aging_timeout is arista.avd.defined %}
arp aging timeout {{ vlan_interface.arp_aging_timeout }}
{% endif %}
diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
index cbc0b722e38..0b663e9f9bd 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
+++ b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
@@ -7394,6 +7394,7 @@
},
"storm_control_discards": {
"type": "boolean",
+ "description": "Discards due to storm-control.\n",
"title": "Storm Control Discards"
}
},
@@ -9677,6 +9678,11 @@
"link_status": {
"type": "boolean",
"title": "Link Status"
+ },
+ "storm_control_discards": {
+ "type": "boolean",
+ "description": "Discards due to storm-control.\n",
+ "title": "Storm Control Discards"
}
},
"additionalProperties": false,
@@ -12667,6 +12673,7 @@
},
"storm_control_discards": {
"type": "boolean",
+ "description": "Discards due to storm-control.\n",
"title": "Storm Control Discards"
}
},
@@ -15765,6 +15772,11 @@
"link_status": {
"type": "boolean",
"title": "Link Status"
+ },
+ "storm_control_discards": {
+ "type": "boolean",
+ "description": "Discards due to storm-control.\n",
+ "title": "Storm Control Discards"
}
},
"additionalProperties": false,
@@ -18755,6 +18767,7 @@
},
"storm_control_discards": {
"type": "boolean",
+ "description": "Discards due to storm-control.\n",
"title": "Storm Control Discards"
}
},
@@ -21212,6 +21225,30 @@
"type": "string",
"title": "Description"
},
+ "logging": {
+ "type": "object",
+ "properties": {
+ "event": {
+ "type": "object",
+ "properties": {
+ "link_status": {
+ "type": "boolean",
+ "title": "Link Status"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Event"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Logging"
+ },
"shutdown": {
"type": "boolean",
"title": "Shutdown"
@@ -22888,6 +22925,30 @@
"type": "string",
"title": "Description"
},
+ "logging": {
+ "type": "object",
+ "properties": {
+ "event": {
+ "type": "object",
+ "properties": {
+ "link_status": {
+ "type": "boolean",
+ "title": "Link Status"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Event"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Logging"
+ },
"shutdown": {
"type": "boolean",
"title": "Shutdown"
diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.schema.pickle b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.schema.pickle
new file mode 100644
index 00000000000..2c07714aab3
Binary files /dev/null and b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.schema.pickle differ