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