Description of problem: Trying to create an instance with an SR-IOV port (L2 only) without having an associated subnet produces "Port requires a FixedIP in order to be used" error. Version-Release number of selected component (if applicable): OSP13z3 How reproducible: Every time Steps to Reproduce: 1. Configure SR-IOV: # SR-IOV config NeutronSriovNumVFs: - ens2f0:8 NeutronPhysicalDevMappings: - physnet_nw1_sriov_a:ens2f0 NovaPCIPassthrough: - devname: "ens2f0" physical_network: "physnet_nw1_sriov_a" 2. Create a network: # openstack network create NW1_a --external --provider-network-type vlan --provider-physical-network physnet_nw1_sriov_a --provider-segment 318 3. Create an SR-IOV port: # openstack port create --network NW1_a --vnic-type direct sriov_port_1a 4. Create an instance: # openstack server create --flavor rt.small --image CentOS-7-x86_64-GenericCloud --nic port-id=sriov_port_1a sriov_vm Actual results: Port 0a199a07-7faf-49bc-89a3-caf783024dda requires a FixedIP in order to be used. (HTTP 400) (Request-ID: req-4a6c12db-11ae-4ed8-8566-bcb8de68a776) Expected results: Successful instance creation with L2-only SR-IOV port attached Additional info: L2 port should not require a subnet. The steps followed are consistent with Red Hat documentation: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html-single/network_functions_virtualization_planning_and_configuration_guide/#sect-sriov-flavor-deploy-instance
Setting --no-fixed-ip on the port doesn't work either.
Re-assigned to Nova and added link to upstream bug.
If I'm not mistaken, this issue is not limited SR-IOV. Also with a "normal" port I get a similar (same?) issue if I try to create a VM on a network where a subnet is not assigned.
by design nova has required all ports to have ip adress before the vm is schdulerd until very recently. in fact supporting addressless ports was rejected severall times. for osp10/netown it is a hard requiremet that the neturon port must have an ip. the routed network spec for nova https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/neutron-routed-networks.html introduced support for ip_allocation=deffered. ip_allocation=none was expcitly not supported by that spec due to security concerns. last year https://bugs.launchpad.net/nova/+bug/1741575 was filed upstream to extend nova to support ip_allocation=None. i raised this at the dublin ptg and while nova supports deffer ip allocaton today no spec or bluepint that i am awere of has been proposed to allow ip_allocation=None. i will verify upstream master behavior but from my inital searching upstream and my previous experience on this topic i do not belive this shoudl work in OSP 13 and that this is a bug in our documentation not our code. i will bring this up on our bug triage call tomorrow but my inital feeling is that this is not a bug nova bug and should be treated a future feature with a update to our documentation to reflect that this is not supported. In paralle to that i will raise this on upstream irc.
upon review ip less interfaces while supported by neutrons api are not supported by nova in OSP 13 currently no release of openstack nova upstream allows the use of neutron ports with ip_allocation=none. this will be considerded as a possible Future Feature for OSP 16 based on discussion with upstream. Based on that i am converting this to a docs bug to update the NFV guide to detail how to create a subnet as part of creating a network. specifically section 6.3 subsection 4 and and section 8.7 subsection 1 of https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html-single/network_functions_virtualization_planning_and_configuration_guide/#sect-sriov-flavor-deploy-instance should be updated to contain the following openstack network create net1 --provider-physical-network tenant --provider-network-type vlan --provider-segment <VLAN-ID> openstack subnet create subnet1 --network net1 --subnet-range 192.0.2.0/24 --dhcp
We discussed this in our triage call today, adding the Triaged keyword.