Adds a flag to the ML2, openvswitch, and BigSwitch
plugins to inform nova that the OVS hybrid plugging
strategy should be used.
Closes-Bug: #
1112912
Change-Id: If004db60e084f4cea095ca9ecccb0537240d4183
#
# - port_filter : Boolean value indicating Neutron provides port filtering
# features such as security group and anti MAC/IP spoofing
+# - ovs_hybrid_plug: Boolean used to inform Nova that the hybrid plugging
+# strategy for OVS should be used
CAP_PORT_FILTER = 'port_filter'
+OVS_HYBRID_PLUG = 'ovs_hybrid_plug'
VIF_TYPE_UNBOUND = 'unbound'
VIF_TYPE_BINDING_FAILED = 'binding_failed'
port[portbindings.VIF_DETAILS] = {
# TODO(rkukura): Replace with new VIF security details
portbindings.CAP_PORT_FILTER:
- 'security-group' in self.supported_extension_aliases}
+ 'security-group' in self.supported_extension_aliases,
+ portbindings.OVS_HYBRID_PLUG: True
+ }
return port
def _check_hostvif_override(self, hostid):
super(OfagentMechanismDriver, self).__init__(
constants.AGENT_TYPE_OFA,
portbindings.VIF_TYPE_OVS,
- {portbindings.CAP_PORT_FILTER: True})
+ {portbindings.CAP_PORT_FILTER: True,
+ portbindings.OVS_HYBRID_PLUG: True})
def check_segment_for_agent(self, segment, agent):
mappings = agent['configurations'].get('bridge_mappings', {})
super(OpenvswitchMechanismDriver, self).__init__(
constants.AGENT_TYPE_OVS,
portbindings.VIF_TYPE_OVS,
- {portbindings.CAP_PORT_FILTER: True})
+ {portbindings.CAP_PORT_FILTER: True,
+ portbindings.OVS_HYBRID_PLUG: True})
def check_segment_for_agent(self, segment, agent):
mappings = agent['configurations'].get('bridge_mappings', {})
portbindings.VIF_DETAILS: {
# TODO(rkukura): Replace with new VIF security details
portbindings.CAP_PORT_FILTER:
- 'security-group' in self.supported_extension_aliases}}
+ 'security-group' in self.supported_extension_aliases,
+ portbindings.OVS_HYBRID_PLUG: True
+ }
+ }
return binding
def _extend_port_dict_binding_portinfo(self, port_res, portinfo):
portbindings.VIF_DETAILS: {
# TODO(rkukura): Replace with new VIF security details
portbindings.CAP_PORT_FILTER:
- 'security-group' in self.supported_extension_aliases}}
+ 'security-group' in self.supported_extension_aliases,
+ portbindings.OVS_HYBRID_PLUG: True}}
self._parse_network_vlan_ranges()
ovs_db_v2.sync_vlan_allocations(self.network_vlan_ranges)
self.tenant_network_type = cfg.CONF.OVS.tenant_network_type
portbindings.VIF_DETAILS: {
# TODO(rkukura): Replace with new VIF security details
portbindings.CAP_PORT_FILTER:
- 'security-group' in self.supported_extension_aliases}}
+ 'security-group' in self.supported_extension_aliases,
+ portbindings.OVS_HYBRID_PLUG: True
+ }
+ }
portbindings_base.register_port_dict_function()
self.tunnel_key = db_api_v2.TunnelKey(
cfg.CONF.OVS.tunnel_key_min, cfg.CONF.OVS.tunnel_key_max)