Description of problem:
-----------------------
Interface names with capital letters cannot be configured to be used as SR-IOV interfaces
Version-Release number of selected component (if applicable): RHSOP13
How reproducible:
-----------------
Always reproducible
Steps to Reproduce:
--------------------
1.Get interfaces containing capital letters, in my case "Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+"
2.Configure those interfaces for SR-IOV:
NeutronPhysicalDevMappings:
- sriov:enP65536p3s0f0
NeutronSriovNumVFs:
- enP65536p3s0f0:32
NovaPCIPassthrough:
- devname: "enP65536p3s0f0"
physical_network: "sriov
3.try to deploy
Actual results:
----------------
Deployment fails with this error:
overcloud.AllNodesDeploySteps.ComputeHCIDeployment_Step1.2:
resource_type: OS::Heat::StructuredDeployment
physical_resource_id: f45149ec-158f-418a-8fcb-90a1d055733b
status: UPDATE_FAILED
status_reason: |
Error: resources[2]: Deployment to server failed: deploy_status_code : Deployment exited with non-zero status code: 2
deploy_stdout: |
...
" with Stdlib::Compat::Hash. There is further documentation for validate_legacy function in the README. at [\"/etc/puppet/modules/ssh/manifests/server.pp\", 12]:[\"/var/lib/tripleo-config/puppet_step_config.pp\", 42]",
"Warning: tag is a metaparam; this value will inherit to all contained resources in the tripleo::firewall::rule definition",
"Error: Parameter name failed on Sriov_vf_config[enP65536p3s0f0:32]: Invalid value \"enP65536p3s0f0:32\". Valid values match /^[a-z0-9\\-_]+:[0-9]+(:(switchdev|legacy))?$/. at /etc/puppet/modules/tripleo/manifests/host/sriov.pp:22"
]
}
to retry, use: --limit @/var/lib/heat-config/heat-config-ansible/d024d019-6bdc-4233-aa50-7d86b66868ef_playbook.retry
PLAY RECAP *********************************************************************
localhost : ok=23 changed=9 unreachable=0 failed=1
(truncated, view all with --long)
deploy_stderr: |
Expected results:
Deployment completes with these interfaces configured for SR-IOV
Additional info:
----------------
If you change to underscore letters the error does not happen but the SR-IOV configuration is not right:
[root@computehci-1 ~]# cat /sys/class/net/enP65536p3s0f0/device/sriov_numvfs
0
I looked for the file that is preventing to use capital letters:
(undercloud) [stack@director ~]$ grep -Ri "switchdev|legacy" /etc/puppet/modules/tripleo/
/etc/puppet/modules/tripleo/lib/puppet/type/sriov_vf_config.rb: newvalues(/^[a-z0-9\-_]+:[0-9]+(:(switchdev|legacy))?$/)
I changed the filter to:
newvalues(/^[a-zA-Z0-9\-_]+:[0-9]+(:(switchdev|legacy))?$/)
I tried to deploy again and the error disappeared and now the VFs appear in the interface configuration:
[root@computehci-1 ~]# cat /sys/class/net/enP65536p3s0f0/device/sriov_numvfs
32