dellemc.os10
dellemc.os10 copied to clipboard
Allow setting forward error correction on interfaces
Hi @sc68cal, Pls can you explain the issue with more details.
Hi @sc68cal, Pls can you explain the issue with more details.
Not op, but the issue is kind of self explanatory if you know the os10 switches.
FEC is an option you can set on a interface. it is often necessary to configure FEC to get link up between vendors.
example: (conf-if-eth1/1/1:1)# fec CL74-FC CL91-RS CL108-RS CL119-RS CL134-RS CL91-RS544 off
being able to set this is a requirement in many environments
Hi @ronnyaa, I have verified the FEC options for the interfaces.
The OS10 switch supporting these fec options based on the Speed.
`OS10(conf-if-eth1/1/103)# fec CL74-FC CL74 FEC CL91-RS CL91 FEC CL108-RS CL108 FEC CL119-RS CL119 FEC CL134-RS CL134 FEC CL91-RS544 CL91-RS544 FEC off Disable FEC
OS10(conf-if-eth1/1/103)#`
fec
Configures Forward Error Correction on 25G, 50G, and 100G interfaces. Syntax fec {CL74-FC | CL91-RS | CL108-RS | off} Parameters ● CL74-FC — Supports 25G and 50G ● CL91-RS — Supports 100G ● CL108-RS — Supports 25G and 50G ● off — Disables FEC`
Hi @ronnyaa, for verification created sample playbook and executed, its working fine. The configurations are applied properly on OS10 switch:
Pls find the details:
`cat Issue-92_fec.yaml
-
name: Configure FEC on interfaces hosts: fec_issue gather_facts: false connection: network_cli collections:
- dellemc.os10
tasks:
-
name: configure fec on eth 1/1/4 CL74-FC os10_config: lines: - interface ethernet 1/1/4 - fec CL74-FC - description creating_fec_25G_configs
-
name: configure fec on eth 1/1/99 CL91-RS os10_config: lines: - interface ethernet 1/1/99 - fec CL91-RS - description creating_fec_100G_configs
-
name: configure fec on eth 1/1/100 off os10_config: lines: - interface ethernet 1/1/100 - fec off - description creating_fec_100G_configs root@ubuntu22-vm-38-27:~/OS10-Collections#`
`root@ubuntu22-vm-38-27:~/OS10-Collections# ansible-playbook -i inventory_singledevice.yaml Issue-92_fec.yaml -vvv ansible-playbook [core 2.14.0] config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections executable location = /usr/local/bin/ansible-playbook python version = 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] (/usr/bin/python3) jinja version = 3.0.3 libyaml = True Using /etc/ansible/ansible.cfg as config file host_list declined parsing /root/OS10-Collections/inventory_singledevice.yaml as it did not pass its verify_file() method script declined parsing /root/OS10-Collections/inventory_singledevice.yaml as it did not pass its verify_file() method Parsed /root/OS10-Collections/inventory_singledevice.yaml inventory source with ini plugin redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 Skipping callback 'default', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback.
PLAYBOOK: Issue-92_fec.yaml ********************************************************************************************************************************* 1 plays in Issue-92_fec.yaml
PLAY [Configure FEC on interfaces] ************************************************************************************************************************** redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10
TASK [configure fec on eth 1/1/4 CL74-FC] ******************************************************************************************************************* task path: /root/OS10-Collections/Issue-92_fec.yaml:10 redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 changed: [fec_issue] => { "changed": true, "commands": [ "interface ethernet 1/1/4", "fec CL74-FC", "description creating_fec_25G_configs", "commit" ], "invocation": { "module_args": { "after": null, "backup": false, "backup_options": null, "before": null, "config": null, "lines": [ "interface ethernet 1/1/4", "fec CL74-FC", "description creating_fec_25G_configs" ], "match": "line", "parents": null, "provider": null, "replace": "line", "save": false, "src": null, "update": "merge" } }, "saved": false, "updates": [ "interface ethernet 1/1/4", "fec CL74-FC", "description creating_fec_25G_configs", "commit" ] } redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10
TASK [configure fec on eth 1/1/99 CL91-RS] ****************************************************************************************************************** task path: /root/OS10-Collections/Issue-92_fec.yaml:17 redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 changed: [fec_issue] => { "changed": true, "commands": [ "interface ethernet 1/1/99", "fec CL91-RS", "description creating_fec_100G_configs", "commit" ], "invocation": { "module_args": { "after": null, "backup": false, "backup_options": null, "before": null, "config": null, "lines": [ "interface ethernet 1/1/99", "fec CL91-RS", "description creating_fec_100G_configs" ], "match": "line", "parents": null, "provider": null, "replace": "line", "save": false, "src": null, "update": "merge" } }, "saved": false, "updates": [ "interface ethernet 1/1/99", "fec CL91-RS", "description creating_fec_100G_configs", "commit" ] } redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10
TASK [configure fec on eth 1/1/100 off] ********************************************************************************************************************* task path: /root/OS10-Collections/Issue-92_fec.yaml:24 redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10 changed: [fec_issue] => { "changed": true, "commands": [ "interface ethernet 1/1/100", "fec off", "description creating_fec_100G_configs", "commit" ], "invocation": { "module_args": { "after": null, "backup": false, "backup_options": null, "before": null, "config": null, "lines": [ "interface ethernet 1/1/100", "fec off", "description creating_fec_100G_configs" ], "match": "line", "parents": null, "provider": null, "replace": "line", "save": false, "src": null, "update": "merge" } }, "saved": false, "updates": [ "interface ethernet 1/1/100", "fec off", "description creating_fec_100G_configs", "commit" ] }
PLAY RECAP ************************************************************************************************************************************************** fec_issue : ok=3 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
root@ubuntu22-vm-38-27:~/OS10-Collections#`
Device side configuration:
`OS10# show running-configuration interface ethernet 1/1/4 ! interface ethernet1/1/4 description creating_fec_25G_configs no shutdown fec CL74-FC switchport access vlan 1 flowcontrol receive off OS10#
OS10# OS10# show running-configuration interface ethernet 1/1/99 ! interface ethernet1/1/99 description creating_fec_100G_configs no shutdown fec CL91-RS switchport access vlan 1 flowcontrol receive off OS10# OS10# OS10# show running-configuration interface ethernet 1/1/100 ! interface ethernet1/1/100 description creating_fec_100G_configs no shutdown fec off switchport access vlan 1 flowcontrol receive off OS10#`
The os10_interface
role does not support setting fec
- you are setting it via os10_config
which, yes you can do, but people configure interfaces via the os10_interface
role and it's a pain to have to configure one setting via the os10_config
when everything else is configured via the os10_interface
role