← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1844124] [NEW] Not possible to change fixed-ips if port is on routed provider network

 

Public bug reported:

For ports on normal networks (non-Routed Provider Networks) it is
possible to change the fixed-ip of a port. When a port is on a Routed
Provider Network the same operation return an error: "Invalid input for
operation: IP allocation requires subnets for network." Since this is an
unbound port, and the change does not move the port ip allocation to a
subnet associated with a different segment this operation should
succeed.


$ grep flat_networks /etc/neutron/plugins/ml2/ml2_conf.ini
flat_networks = public,mynetwork

$ openstack network create \
  --provider-network-type flat \
  --provider-physical-network mynetwork \
  mynetwork

$ openstack subnet create \
  --network mynetwork \
  --network-segment $(openstack network segment list --network mynetwork -f value -c ID) \
  --subnet-range 192.168.254.0/24 \
  --allocation-pool start=192.168.254.10,end=192.168.254.100 \
  mysubnet

$ openstack network show mynetwork -f value -c id && openstack subnet show mysubnet -f value -c id
57e622a0-3003-4d9f-b01e-c12613935265
df2cbb56-12b9-4156-8a23-36023b110b75


$ curl -s -X POST \
   -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
   http://192.168.122.222:9696/v2.0/ports \
   -d '{"port": {"name": "test-port", "network_id": "57e622a0-3003-4d9f-b01e-c12613935265", "fixed_ips": [{"subnet_id": "df2cbb56-12b9-4156-8a23-36023b110b75"}]}}' \
  | python -m json.tool
{
    "port": {
        "admin_state_up": true,
        "allowed_address_pairs": [],
        "binding:host_id": "",
        "binding:profile": {},
        "binding:vif_details": {},
        "binding:vif_type": "unbound",
        "binding:vnic_type": "normal",
        "created_at": "2019-09-16T11:56:06Z",
        "description": "",
        "device_id": "",
        "device_owner": "",
        "dns_assignment": [
            {
                "fqdn": "host-192-168-254-44.openstackgate.local.",
                "hostname": "host-192-168-254-44",
                "ip_address": "192.168.254.44"
            }
        ],
        "dns_domain": "",
        "dns_name": "",
        "extra_dhcp_opts": [],
        "fixed_ips": [
            {
                "ip_address": "192.168.254.44",
                "subnet_id": "df2cbb56-12b9-4156-8a23-36023b110b75"
            }
        ],
        "id": "84ef332d-8c48-422a-b400-0655702b1a0e",
        "ip_allocation": "immediate",
        "mac_address": "fa:16:3e:43:7c:fe",
        "name": "test-port",
        "network_id": "57e622a0-3003-4d9f-b01e-c12613935265",
        "port_security_enabled": true,
        "project_id": "4abf7cb77b574734adf086dfa828cd84",
        "propagate_uplink_status": false,
        "qos_policy_id": null,
        "resource_request": null,
        "revision_number": 1,
        "security_groups": [
            "708b5fa0-244c-46ee-9b35-30ba45a71ccf"
        ],
        "status": "DOWN",
        "tags": [],
        "tenant_id": "4abf7cb77b574734adf086dfa828cd84",
        "updated_at": "2019-09-16T11:56:06Z"
    }
}


$ curl -s -X PUT \
   -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
   http://192.168.122.222:9696/v2.0/ports/84ef332d-8c48-422a-b400-0655702b1a0e \
   -d '{"port": {"fixed_ips": [{"ip_address": "192.168.254.100"}]}}' \
   | python -m json.tool
{
    "NeutronError": {
        "detail": "",
        "message": "Invalid input for operation: IP allocation requires subnets for network.",
        "type": "InvalidInput"
    }
}

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1844124

Title:
  Not possible to change fixed-ips if port is on routed provider network

Status in neutron:
  New

Bug description:
  For ports on normal networks (non-Routed Provider Networks) it is
  possible to change the fixed-ip of a port. When a port is on a Routed
  Provider Network the same operation return an error: "Invalid input
  for operation: IP allocation requires subnets for network." Since this
  is an unbound port, and the change does not move the port ip
  allocation to a subnet associated with a different segment this
  operation should succeed.

  
  $ grep flat_networks /etc/neutron/plugins/ml2/ml2_conf.ini
  flat_networks = public,mynetwork

  $ openstack network create \
    --provider-network-type flat \
    --provider-physical-network mynetwork \
    mynetwork

  $ openstack subnet create \
    --network mynetwork \
    --network-segment $(openstack network segment list --network mynetwork -f value -c ID) \
    --subnet-range 192.168.254.0/24 \
    --allocation-pool start=192.168.254.10,end=192.168.254.100 \
    mysubnet

  $ openstack network show mynetwork -f value -c id && openstack subnet show mysubnet -f value -c id
  57e622a0-3003-4d9f-b01e-c12613935265
  df2cbb56-12b9-4156-8a23-36023b110b75

  
  $ curl -s -X POST \
     -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
     http://192.168.122.222:9696/v2.0/ports \
     -d '{"port": {"name": "test-port", "network_id": "57e622a0-3003-4d9f-b01e-c12613935265", "fixed_ips": [{"subnet_id": "df2cbb56-12b9-4156-8a23-36023b110b75"}]}}' \
    | python -m json.tool
  {
      "port": {
          "admin_state_up": true,
          "allowed_address_pairs": [],
          "binding:host_id": "",
          "binding:profile": {},
          "binding:vif_details": {},
          "binding:vif_type": "unbound",
          "binding:vnic_type": "normal",
          "created_at": "2019-09-16T11:56:06Z",
          "description": "",
          "device_id": "",
          "device_owner": "",
          "dns_assignment": [
              {
                  "fqdn": "host-192-168-254-44.openstackgate.local.",
                  "hostname": "host-192-168-254-44",
                  "ip_address": "192.168.254.44"
              }
          ],
          "dns_domain": "",
          "dns_name": "",
          "extra_dhcp_opts": [],
          "fixed_ips": [
              {
                  "ip_address": "192.168.254.44",
                  "subnet_id": "df2cbb56-12b9-4156-8a23-36023b110b75"
              }
          ],
          "id": "84ef332d-8c48-422a-b400-0655702b1a0e",
          "ip_allocation": "immediate",
          "mac_address": "fa:16:3e:43:7c:fe",
          "name": "test-port",
          "network_id": "57e622a0-3003-4d9f-b01e-c12613935265",
          "port_security_enabled": true,
          "project_id": "4abf7cb77b574734adf086dfa828cd84",
          "propagate_uplink_status": false,
          "qos_policy_id": null,
          "resource_request": null,
          "revision_number": 1,
          "security_groups": [
              "708b5fa0-244c-46ee-9b35-30ba45a71ccf"
          ],
          "status": "DOWN",
          "tags": [],
          "tenant_id": "4abf7cb77b574734adf086dfa828cd84",
          "updated_at": "2019-09-16T11:56:06Z"
      }
  }

  
  $ curl -s -X PUT \
     -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
     http://192.168.122.222:9696/v2.0/ports/84ef332d-8c48-422a-b400-0655702b1a0e \
     -d '{"port": {"fixed_ips": [{"ip_address": "192.168.254.100"}]}}' \
     | python -m json.tool
  {
      "NeutronError": {
          "detail": "",
          "message": "Invalid input for operation: IP allocation requires subnets for network.",
          "type": "InvalidInput"
      }
  }

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1844124/+subscriptions


Follow ups