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 %}