macvtap agent: wrong vif details when instance is launched on vlan and flat network
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Won't Fix
|
High
|
Unassigned |
Bug Description
It's bug in the macvtap mechanism driver.
If multiple network types are used with the macvtap driver, e.g. flat and vlan, the vif_details can contain an invalid vif_detail attribute 'vlan'. This leads to nova configuring the macvtap with a vlan, even though flat should be used!
The reason for this is, that the vif_details are supposed to be the same for all ports managed by a mechanism driver. Due to that they are stored as instance variables. However they are not with macvtap. In the vlan case, the vlan, which is stored in the vif_details, of course depends on the network. It might be a different for port A than for port B. The problem is, that the driver is always updating the global vif_dict, but instead of it should operate on a local copy. Now if first a vlan port is processed and after that a flat port, the vlan vif_detail is still stored in the mechanism drivers global vif_details. A flat port becomes a vlan port.
tags: | added: macvtap |
Fix proposed to branch: master /review. openstack. org/537407
Review: https:/