quantum NetworkDuplicated error ,when boot a vm with two port id which belongs to the same network .

Bug #1187244 reported by daniels
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Committed
Wishlist
rbenali

Bug Description

in /var/log/nova/nova-api.log

```
013-06-04 12:01:17.998 ERROR nova.api.openstack [req-ea58ab37-aea6-40a4-b85f-2ab19285101e 5d45600dae844064b514f1549fe0dab9 b082fcb819db4104bb6d3dc18bcc4f17] Caught error: Network 5332f0f7-3156-4961-aa67-0b8507265fa5 is duplicated.
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack Traceback (most recent call last):
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/api/openstack/__init__.py", line 81, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return req.get_response(self.application)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack application, catch_exc_info=False)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return resp(environ, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/keystoneclient/middleware/auth_token.py", line 450, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return self.app(env, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return resp(environ, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return resp(environ, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return resp(environ, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack response = self.app(environ, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return resp(environ, start_response)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 890, in __call__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack content_type, body, accept)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 942, in _process_stack
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 1022, in dispatch
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return method(req=request, **action_args)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/servers.py", line 898, in create
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack scheduler_hints=scheduler_hints)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/hooks.py", line 85, in inner
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack rv = f(*args, **kwargs)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 962, in create
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack scheduler_hints=scheduler_hints)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 676, in _create_instance
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack reservation_id, scheduler_hints)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 634, in _validate_and_provision_instance
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack QUOTAS.rollback(context, quota_reservations)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack self.gen.next()
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 522, in _validate_and_provision_instance
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack self._check_requested_networks(context, requested_networks)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 358, in _check_requested_networks
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack self.network_api.validate_networks(context, requested_networks)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 454, in validate_networks
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack raise exception.NetworkDuplicated(network_id=net_id)
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack NetworkDuplicated: Network 5332f0f7-3156-4961-aa67-0b8507265fa5 is duplicated.
2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack
2013-06-04 12:01:18.126 INFO nova.api.openstack [req-ea58ab37-aea6-40a4-b85f-2ab19285101e 5d45600dae844064b514f1549fe0dab9 b082fcb819db4104bb6d3dc18bcc4f17] http://172.16.136.111:8774/v2/b082fcb819db4104bb6d3dc18bcc4f17/os-volumes_boot returned with HTTP 500
2013-06-04 12:01:18.129 INFO nova.osapi_compute.wsgi.server [req-ea58ab37-aea6-40a4-b85f-2ab19285101e 5d45600dae844064b514f1549fe0dab9 b082fcb819db4104bb6d3dc18bcc4f17] 172.16.136.111 "POST /v2/b082fcb819db4104bb6d3dc18bcc4f17/os-volumes_boot HTTP/1.1" status: 500 len: 335 time: 0.4138958
```

how to reproduce this error

we need two subnets which belongs to one network
in my environment,
network id is 5332f0f7-3156-4961-aa67-0b8507265fa5
subnet1 id is e8a9be74-2f39-4d7e-9287-c5b85b573cca
subnet2 id is dca45033-e506-42e4-bf05-aaccd0591c55

1. create ports from subnet1 and subnet2

quantum port-create --fixed-ip subnet_id=e8a9be74-2f39-4d7e-9287-c5b85b573cca 5332f0f7-3156-4961-aa67-0b8507265fa5
port id is : dca1f741-a1fc-444c-b764-7aa74ed29d1f

quantum port-create --fixed-ip subnet_id=dca45033-e506-42e4-bf05-aaccd0591c55 5332f0f7-3156-4961-aa67-0b8507265fa5
port id is : 72acaba1-6e84-468b-b3f7-52eb89972eb7

2. boot with two port id

nova boot --flavor 1 --nic port-id=dca1f741-a1fc-444c-b764-7aa74ed29d1f --nic port-id=72acaba1-6e84-468b-b3f7-52eb89972eb7 --block_device_mapping vda=1cf2a0b0-8c7f-4de1-8dba-91bae1f1856c:::0 m1

ERROR: The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-ea58ab37-aea6-40a4-b85f-2ab19285101e)

it returns an error , and there is a NetworkDuplicated error in /var/log/nova/nova-api.log

i refered this bug https://bugs.launchpad.net/nova/+bug/1165088 , but it no helps .

Tags: network
daniels (danxcai)
tags: added: duplicate network quantum
Revision history for this message
daniels (danxcai) wrote :

nova api version "2013.1"

# dpkg -l | grep nova
nova-api 1:2013.1-0ubuntu2.1~cloud0

Revision history for this message
Aaron Rosen (arosen) wrote :

Yes the error is telling you this isn't allowed. What's you use case for having multiple interfaces in the same L2 domain like this?

tags: removed: duplicate quantum
Changed in nova:
status: New → Incomplete
Revision history for this message
daniels (danxcai) wrote :

we have discuss this issue in the mail list
https://bugs.launchpad.net/nova/+bug/1171636 .

at that time , we can only attach subnets which belongs to the same network . as a workaround , we create only one network for each tenant , tenenat then create subnets in this network , so that user can attach new subnets to an exist vm.

there is another reason ,
as we could attach new subnet to a vm , why cann't we boot with two subnets?

Revision history for this message
daniels (danxcai) wrote :

actually , we create a pacth for this. it works. i am still testing it.

as openstack can do it , why we disallow it?

Revision history for this message
daniels (danxcai) wrote :

aroson

can you take a look at this i patched this https://bugs.launchpad.net/nova/+bug/1171636

and modified some lines, and we can add multiple subnets within one network .

here is a complete reference of /usr/share/pyshared/nova/network/quantumv2/api.py

https://raw.github.com/danielscai/openstack_patch/master/network_duplicate/api.2013.0.py

Changed in nova:
status: Incomplete → New
Revision history for this message
Raid (raid-chan) wrote :

nova supports attach (interface-attach) same network to an instance either same subnet or different subnet. Why 'nova boot' doesn't support it? For a simple use case, tenant only create one network and isolate the traffic by subnet (different broadcast zone), it is quite make sense to have some instances that is needed to connect to multiple subnets for some reasons.

Revision history for this message
Aaron Rosen (arosen) wrote :

Why does it make sense to have an instance to have an interface in multiple subnets in the same network. I do not see a use case for this.

Changed in nova:
status: New → Incomplete
Revision history for this message
Raid (raid-chan) wrote :

Actually I mean have multiple interfaces in multiple subnets in the same network.

The use case is to reduce the load and complexity of network. Let's image a large scale public cloud environment ('gre tunnel' is good choice), each tenant can create multiple network (not subnet), so openvswitch will create a lot flows in the br-tun and Quantum will create a lot of namespace in each network node, it must bring a lot of workload to the server.

if each tenant only can create one network, tenant still can archive the segregation of network by creating mutiple subnets, because "quantum port security rules" and "subnet broadcast address".

Currently the only problem is we can't specify multiple subnets in the same network to an instance when we are using 'nova boot'.

Changed in nova:
status: Incomplete → New
Revision history for this message
Aaron Rosen (arosen) wrote :

Eh, still why would you attach multiple subnets to an instance to do this type of segregation? This use case doesn't make much sense to me.

Changed in nova:
status: New → Invalid
Revision history for this message
Salvatore Orlando (salvatore-orlando) wrote : Re: [Bug 1187244] Re: quantum NetworkDuplicated error , when boot a vm with two port id which belongs to the same network .
Download full text (9.3 KiB)

It looks like Raid intention was to have an equivalent of Nova's flat model
with L3 segregation via security groups (or EC2 network model if you want).

The use case is probably valid, but surely does not fall in the scope of
this bug.

On 27 June 2013 23:48, Aaron Rosen <email address hidden> wrote:

> Eh, still why would you attach multiple subnets to an instance to do
> this type of segregation? This use case doesn't make much sense to me.
>
> ** Changed in: nova
> Status: New => Invalid
>
> --
> You received this bug notification because you are subscribed to
> OpenStack Compute (nova).
> https://bugs.launchpad.net/bugs/1187244
>
> Title:
> quantum NetworkDuplicated error ,when boot a vm with two port id which
> belongs to the same network .
>
> Status in OpenStack Compute (Nova):
> Invalid
>
> Bug description:
> in /var/log/nova/nova-api.log
>
> ```
> 013-06-04 12:01:17.998 ERROR nova.api.openstack
> [req-ea58ab37-aea6-40a4-b85f-2ab19285101e 5d45600dae844064b514f1549fe0dab9
> b082fcb819db4104bb6d3dc18bcc4f17] Caught error: Network
> 5332f0f7-3156-4961-aa67-0b8507265fa5 is duplicated.
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack Traceback (most
> recent call last):
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/nova/api/openstack/__init__.py", line 81,
> in __call__
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return
> req.get_response(self.application)
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack application,
> catch_exc_info=False)
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/webob/request.py", line 1260, in
> call_application
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack app_iter =
> application(self.environ, start_response)
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return
> resp(environ, start_response)
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/keystoneclient/middleware/auth_token.py",
> line 450, in __call__
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return
> self.app(env, start_response)
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return
> resp(environ, start_response)
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return
> resp(environ, start_response)
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack File
> "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
> 2013-06-04 12:01:17.998 2741 TRACE nova.api.openstack return
> resp(environ, sta...

Read more...

Revision history for this message
Neehar Athalye (nathalye) wrote :

I find it rather preposterous to not consider/imagine a use case for having a VM on 2 different subnets. In my engineering org, we do this routinely to allow our machines on multiple subnets belonging to multiple depts/BUs.
It makes perfect sense to do this at L2 using different subnets.

Changed in nova:
status: Invalid → New
Revision history for this message
Neehar Athalye (nathalye) wrote :
Download full text (6.1 KiB)

I just tried this as part of OpenStack quantum and Nexus 1000V switch, and ran into same issue.

2013-10-16 11:20:19.358 ERROR nova.api.openstack [req-2908c987-4afe-4825-8f55-dad35ee472cd c8d4ca766b5348fa8dc57e0b0acbbc6a bd4ad63b82e04484b36eb045dfab9f48] Caught error: Network e8a23740-d6b9-4c2f-acf8-230965259dd5 is duplicated.
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack Traceback (most recent call last):
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/nova/api/openstack/__init__.py", line 81, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack return req.get_response(self.application)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack application, catch_exc_info=False)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack return resp(environ, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/keystoneclient/middleware/auth_token.py", line 461, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack return self.app(env, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack return resp(environ, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack return resp(environ, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack return resp(environ, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack response = self.app(environ, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack return resp(environ, start_response)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2013-10-16 11:20:19.358 18267 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2013-10-16 11:20:19.358...

Read more...

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

I would ask myself the following questions:

- Is it possible to have multiple logical segments (i.e. subnets) on the same physical segment (i.e. l2 broadcast domain)? Of course it is; is good or common network engineering practice? Probably not;

- Can this model be replicated in a cloud environment? Of course it can; would it make sense? Probably yes.

However, can this be done differently? I mean, if you created two logical networks A and B, with a single subnet S1 and S2 respectively wouldn't you achieve the same result? Is just the cost of creating the extra logical network that's stopping you? I think it's legitimate to lift this constraint, but then all sorts of issues may arise.

For example, if you now have Node A and Node B on the same logical network but sitting on different subnets they wouldn't be able to talk to each other if not via a router; this sounds like a complication that can be avoided in, at least in the logical space.

Changed in nova:
status: New → Opinion
importance: Undecided → Wishlist
Revision history for this message
Racha Ben Ali (racha-ben-ali) wrote :
Download full text (4.9 KiB)

Using AWS, I am able to successfully attach a second ENI (an Elastic Network Interface, i.e. a vNIC) to the same VM instance in the same subnet.
There are probably very few use cases where you could optionally want to have two or more vNICs in same L2 for same VM. The network admin is start running out of the limited number of 4K VLANs, so the Neutron NEtwork quota is setup to one Neutron Network per tenant. You need a VM in multiple subnets, you will be forced to attach multiple vNICs for that VM on same L2 (but different or even same Neutron Subnet). This is currently imporssible with latest Neutron client in Nova.
Other use case I guess, is that L2 loops are not a problem because you control what is provisioned inside netowork infra service VM (in contrast with user VMs bridging multiple vNIC in different L2 in same/multiple VMs). Or you;re using an external Openflow controller to distinguish between virtual networks on top of the same single physical network VLAN enabled for Openflow....

I added a patch below to enable this. I guess if we feel that it is not allowed in most cases, then we can only opt-in to enable it using a flag in the configuration file.

The patch to be applied to ./nova/nova/network/neutronv2/api.py is below.
It applies to booting VMs with multiple vNICs on same network with both --nic net-id <netid1> --nic net-id <netid1>, … (i.e. ports to be created on the same network) and --nic port-id <portid1> --nic port-id <portid2>, … (i.e. ports already created on the same network)

--- ./nova/network/neutronv2/api.py 2014-01-04 01:51:34.207006405 +0000
+++ ../nova_multi_nic_per_network_per_VM/nova/network/neutronv2/api.py 2014-01-05 23:46:35.451006405 +0000
@@ -219,6 +219,7 @@ class API(base.Base):
         ports = {}
         fixed_ips = {}
         net_ids = []
+ nets=[]
         if requested_networks:
             for network_id, fixed_ip, port_id in requested_networks:
                 if port_id:
@@ -236,15 +237,17 @@ class API(base.Base):
                             # discard rather than popping.
                             available_macs.discard(port['mac_address'])
                     network_id = port['network_id']
- ports[network_id] = port
+ if network_id in ports.keys():
+ ports[network_id].append(port)
+ else:
+ ports[network_id] = [ port ]
                 elif fixed_ip and network_id:
                     fixed_ips[network_id] = fixed_ip
                 if network_id:
                     net_ids.append(network_id)
-
- nets = self._get_available_networks(context, instance['project_id'],
- net_ids)
-
+ for net_id in net_ids:
+ nets += self._get_available_networks(context, instance['project_id'], net_id)
         if not nets:
             LOG.warn(_("No network configured!"), instance=instance)
             return network_model.NetworkInfo([])
@@ -302,17 +305,18 @@ class API(base.Base):
             port_req_body = {'port': {'device_id': instance['uuid'],
                                       'device_owner': zone}}
           ...

Read more...

Revision history for this message
Racha Ben Ali (racha-ben-ali) wrote :

Can anyone review the related bug fix applied to the latest upstream:
https://review.openstack.org/#/c/66777/

Changed in nova:
assignee: nobody → Stephen Gordon (sgordon)
status: Opinion → In Progress
Changed in nova:
assignee: Stephen Gordon (sgordon) → rbenali (benali)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/98488
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=322cc9336fe6f6fe9b3f0da33c6b26a3e5ea9b0c
Submitter: Jenkins
Branch: master

commit 322cc9336fe6f6fe9b3f0da33c6b26a3e5ea9b0c
Author: Racha Ben Ali <email address hidden>
Date: Wed Jan 15 00:42:31 2014 -0800

    Boot an instance with multiple vnics on same network

    If the same L2 network is requested multiple times for the same
    instance then creating ports on same network and attaching them
    to the same instance raises a DuplicateNetworks exception.
    Similarly, attaching multiple existent ports on same L2 network
    to the same instance raises a DuplicateNetworks exception. This
    is the default behavior that is defaulted by a newly introduced
    nova flag "allow_duplicate_networks" which is set to
    False by default.

    Not raising a DuplicateNetwork exception and allowing an instance
    to have multiple vnics on same network is useful for NfV service
    instances and in that case this newly introduced nova flag should
    be set to True.

    DocImpact: New neutron.allow_duplicate_networks configuration option
    Implements blueprint multiple-if-1-net
    Change-Id: Id4d633162c785c9b56b9c8426c0445770bc1352e
    Closes-Bug: #1187244

Changed in nova:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.