diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/transceiver_qsfp_default_mode_4x10_false.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/transceiver_qsfp_default_mode_4x10_false.md new file mode 100644 index 00000000000..0f0d40f4182 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/transceiver_qsfp_default_mode_4x10_false.md @@ -0,0 +1,34 @@ +# transceiver_qsfp_default_mode_4x10_false + +## Table of Contents + +- [Management](#management) + - [Management Interfaces](#management-interfaces) + +## Management + +### Management Interfaces + +#### Management Interfaces Summary + +##### IPv4 + +| Management Interface | Description | Type | VRF | IP Address | Gateway | +| -------------------- | ----------- | ---- | --- | ---------- | ------- | +| Management1 | oob_management | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | + +##### IPv6 + +| Management Interface | Description | Type | VRF | IPv6 Address | IPv6 Gateway | +| -------------------- | ----------- | ---- | --- | ------------ | ------------ | +| Management1 | oob_management | oob | MGMT | - | - | + +#### Management Interfaces Device Configuration + +```eos +! +interface Management1 + description oob_management + vrf MGMT + ip address 10.73.255.122/24 +``` diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/transceiver_qsfp_default_mode_4x10_false.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/transceiver_qsfp_default_mode_4x10_false.cfg new file mode 100644 index 00000000000..e0889699b7f --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/transceiver_qsfp_default_mode_4x10_false.cfg @@ -0,0 +1,13 @@ +!RANCID-CONTENT-TYPE: arista +! +hostname transceiver_qsfp_default_mode_4x10_false +! +no enable password +no aaa root +! +interface Management1 + description oob_management + vrf MGMT + ip address 10.73.255.122/24 +! +end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/transceiver_qsfp_default_mode_4x10_false.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/transceiver_qsfp_default_mode_4x10_false.yml new file mode 100644 index 00000000000..5ff2863cc24 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/transceiver_qsfp_default_mode_4x10_false.yml @@ -0,0 +1 @@ +transceiver_qsfp_default_mode_4x10: false diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini index c58bd13820e..3c4587bc07b 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini @@ -166,6 +166,7 @@ terminattr-prem terminattr-prem-no-ingestkey terminattr-prem-disableaaa traffic-policies +transceiver_qsfp_default_mode_4x10_false tunnel-interfaces unsupported-transceiver vlan-interfaces diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md index 0ab73fbc655..388527b922d 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md @@ -363,6 +363,12 @@ roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md roles/eos_cli_config_gen/docs/tables/switchport-default.md --8<-- +### Transceiver QSFP default mode 4x10 + +--8<-- +transceiver-qsfp-default-mode-4x10.md +--8<-- + ### Tunnel interfaces --8<-- diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/transceiver-qsfp-default-mode-4x10.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/transceiver-qsfp-default-mode-4x10.md new file mode 100644 index 00000000000..b073735630a --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/transceiver-qsfp-default-mode-4x10.md @@ -0,0 +1,17 @@ + +=== "Table" + + | Variable | Type | Required | Default | Value Restrictions | Description | + | -------- | ---- | -------- | ------- | ------------------ | ----------- | + | [transceiver_qsfp_default_mode_4x10](## "transceiver_qsfp_default_mode_4x10") | Boolean | | `True` | | On all front panel ports which support this feature, the following global configuration command changes the QSFP mode from 40G to 4x10G (default). When set to false the command reverts the default QSFP mode back to 40G. | + +=== "YAML" + + ```yaml + # On all front panel ports which support this feature, the following global configuration command changes the QSFP mode from 40G to 4x10G (default). When set to false the command reverts the default QSFP mode back to 40G. + transceiver_qsfp_default_mode_4x10: + ``` 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 69bc6478094..5fda411bc47 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 @@ -24231,6 +24231,12 @@ }, "title": "Traffic Policies" }, + "transceiver_qsfp_default_mode_4x10": { + "type": "boolean", + "default": true, + "description": "On all front panel ports which support this feature, the following global configuration command changes the QSFP mode from 40G to 4x10G (default). When set to false the command reverts the default QSFP mode back to 40G.", + "title": "Transceiver Qsfp Default Mode 4X10" + }, "tunnel_interfaces": { "type": "array", "items": { 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 4d2b1ce1ded..1185a27c29a 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 @@ -14056,6 +14056,12 @@ keys: log: type: bool description: Only supported when action is set to drop + transceiver_qsfp_default_mode_4x10: + type: bool + default: true + description: On all front panel ports which support this feature, the following + global configuration command changes the QSFP mode from 40G to 4x10G (default). + When set to false the command reverts the default QSFP mode back to 40G. tunnel_interfaces: type: list primary_key: name diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/transceiver_qsfp_default_mode_channelized.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/transceiver_qsfp_default_mode_channelized.schema.yml new file mode 100644 index 00000000000..fc0fb051c87 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/transceiver_qsfp_default_mode_channelized.schema.yml @@ -0,0 +1,13 @@ +# Copyright (c) 2023-2024 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +# yaml-language-server: $schema=../../../../plugins/plugin_utils/schema/avd_meta_schema.json +# Line above is used by RedHat's YAML Schema vscode extension +# Use Ctrl + Space to get suggestions for every field. Autocomplete will pop up after typing 2 letters. +type: dict +keys: + transceiver_qsfp_default_mode_4x10: + type: bool + default: true + description: | + On all front panel ports which support this feature, the following global configuration command changes the QSFP mode from 40G to 4x10G (default). When set to false the command reverts the default QSFP mode back to 40G. diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/transceiver-qsfp-default-mode.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/transceiver-qsfp-default-mode.j2 index 9d5782e17a8..ed7b354fd4a 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/transceiver-qsfp-default-mode.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/transceiver-qsfp-default-mode.j2 @@ -5,7 +5,7 @@ #} {# eos - transceiver qsfp default mode #} {# cannot be disabled in current EOS releases #} -{% if not generate_default_config is arista.avd.defined(false) %} +{% if transceiver_qsfp_default_mode_4x10 | arista.avd.default(generate_default_config, true) %} ! transceiver qsfp default-mode 4x10G {% endif %}