Use ovs constants from neutron-lib

Ovs constants were moved from neutron to neutron_lib some time ago.
This patch switches to use them from neutron-lib already.

That decision was agreed during the Neutron team meeting. See [1] for
details.

[1] https://meetings.opendev.org/meetings/networking/2021/networking.2021-11-09-14.00.log.html#l-83

Requires: https://review.opendev.org/c/openstack/neutron-lib/+/834908

Change-Id: I2fd1954bec6a52856195190441d77ac8b7d97055
This commit is contained in:
Slawek Kaplonski 2021-12-17 17:45:14 +01:00 committed by yatinkarel
parent 0e40dfe862
commit a22d6d6a95
50 changed files with 250 additions and 269 deletions

View File

@ -22,6 +22,7 @@ import uuid
from neutron_lib import constants as p_const from neutron_lib import constants as p_const
from neutron_lib import exceptions from neutron_lib import exceptions
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib.services.qos import constants as qos_constants from neutron_lib.services.qos import constants as qos_constants
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
@ -40,8 +41,6 @@ from neutron.agent.ovsdb import impl_idl
from neutron.common import _constants as common_constants from neutron.common import _constants as common_constants
from neutron.common import utils as common_utils from neutron.common import utils as common_utils
from neutron.conf.agent import ovs_conf from neutron.conf.agent import ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants
from neutron.plugins.ml2.drivers.openvswitch.agent.common \ from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import exceptions as ovs_exc import exceptions as ovs_exc
@ -156,7 +155,7 @@ class BaseOVS(object):
raise raise
def add_bridge(self, bridge_name, def add_bridge(self, bridge_name,
datapath_type=constants.OVS_DATAPATH_SYSTEM): datapath_type=ovs_constants.OVS_DATAPATH_SYSTEM):
br = OVSBridge(bridge_name, datapath_type=datapath_type) br = OVSBridge(bridge_name, datapath_type=datapath_type)
br.create() br.create()
return br return br
@ -225,12 +224,12 @@ class BaseOVS(object):
# Map from version string to on-the-wire protocol version encoding: # Map from version string to on-the-wire protocol version encoding:
OF_PROTOCOL_TO_VERSION = { OF_PROTOCOL_TO_VERSION = {
constants.OPENFLOW10: 1, ovs_constants.OPENFLOW10: 1,
constants.OPENFLOW11: 2, ovs_constants.OPENFLOW11: 2,
constants.OPENFLOW12: 3, ovs_constants.OPENFLOW12: 3,
constants.OPENFLOW13: 4, ovs_constants.OPENFLOW13: 4,
constants.OPENFLOW14: 5, ovs_constants.OPENFLOW14: 5,
constants.OPENFLOW15: 6, ovs_constants.OPENFLOW15: 6,
} }
@ -244,18 +243,21 @@ def version_from_protocol(protocol):
class OVSBridge(BaseOVS): class OVSBridge(BaseOVS):
def __init__(self, br_name, datapath_type=constants.OVS_DATAPATH_SYSTEM): def __init__(self, br_name,
datapath_type=ovs_constants.OVS_DATAPATH_SYSTEM):
super(OVSBridge, self).__init__() super(OVSBridge, self).__init__()
self.br_name = br_name self.br_name = br_name
self.datapath_type = datapath_type self.datapath_type = datapath_type
self._default_cookie = generate_random_cookie() self._default_cookie = generate_random_cookie()
self._highest_protocol_needed = constants.OPENFLOW10 self._highest_protocol_needed = ovs_constants.OPENFLOW10
self._min_bw_qos_id = uuidutils.generate_uuid() self._min_bw_qos_id = uuidutils.generate_uuid()
# TODO(jlibosva): Revert initial_protocols once launchpad bug 1852221 # TODO(jlibosva): Revert initial_protocols once launchpad bug 1852221
# is fixed and new openvswitch containing the fix is # is fixed and new openvswitch containing the fix is
# released. # released.
self.initial_protocols = { self.initial_protocols = {
constants.OPENFLOW10, constants.OPENFLOW13, constants.OPENFLOW14} ovs_constants.OPENFLOW10,
ovs_constants.OPENFLOW13,
ovs_constants.OPENFLOW14}
self.initial_protocols.add(self._highest_protocol_needed) self.initial_protocols.add(self._highest_protocol_needed)
self._flows_per_port = cfg.CONF.OVS.openflow_processed_per_port self._flows_per_port = cfg.CONF.OVS.openflow_processed_per_port
@ -395,7 +397,7 @@ class OVSBridge(BaseOVS):
# may trigger issues on ovs-vswitchd related to the # may trigger issues on ovs-vswitchd related to the
# datapath flow revalidator thread, see lp#1767422 # datapath flow revalidator thread, see lp#1767422
txn.add(self.ovsdb.db_set( txn.add(self.ovsdb.db_set(
'Port', port_name, ('tag', constants.DEAD_VLAN_TAG))) 'Port', port_name, ('tag', ovs_constants.DEAD_VLAN_TAG)))
# Just setting 'tag' to 4095 is not enough to prevent any traffic # Just setting 'tag' to 4095 is not enough to prevent any traffic
# to/from new port because "access" ports do not have 802.1Q header # to/from new port because "access" ports do not have 802.1Q header
# and hence are not matched by default 4095-dropping rule. # and hence are not matched by default 4095-dropping rule.
@ -409,7 +411,7 @@ class OVSBridge(BaseOVS):
txn.add(self.ovsdb.db_set( txn.add(self.ovsdb.db_set(
'Port', port_name, ('vlan_mode', 'trunk'))) 'Port', port_name, ('vlan_mode', 'trunk')))
txn.add(self.ovsdb.db_set( txn.add(self.ovsdb.db_set(
'Port', port_name, ('trunks', constants.DEAD_VLAN_TAG))) 'Port', port_name, ('trunks', ovs_constants.DEAD_VLAN_TAG)))
def delete_port(self, port_name): def delete_port(self, port_name):
self.ovsdb.del_port(port_name, self.br_name).execute() self.ovsdb.del_port(port_name, self.br_name).execute()
@ -851,12 +853,12 @@ class OVSBridge(BaseOVS):
# we can try to use same reg4 for both OF rules, this one and the one # we can try to use same reg4 for both OF rules, this one and the one
# which sets pkt_mark for minimum bandwidth and play with bitmask # which sets pkt_mark for minimum bandwidth and play with bitmask
self.add_flow( self.add_flow(
table=constants.LOCAL_SWITCHING, table=ovs_constants.LOCAL_SWITCHING,
reg3=0, reg3=0,
priority=200, priority=200,
actions=("set_queue:%s,load:1->NXM_NX_REG3[0]," actions=("set_queue:%s,load:1->NXM_NX_REG3[0],"
"resubmit(,%s)" % (QOS_DEFAULT_QUEUE, "resubmit(,%s)" % (QOS_DEFAULT_QUEUE,
constants.LOCAL_SWITCHING))) ovs_constants.LOCAL_SWITCHING)))
def _update_ingress_bw_limit_for_port( def _update_ingress_bw_limit_for_port(
self, port_name, max_kbps, max_burst_kbps): self, port_name, max_kbps, max_burst_kbps):
@ -896,7 +898,7 @@ class OVSBridge(BaseOVS):
def update_ingress_bw_limit_for_port(self, port_name, max_kbps, def update_ingress_bw_limit_for_port(self, port_name, max_kbps,
max_burst_kbps): max_burst_kbps):
port_type = self._get_port_val(port_name, "type") port_type = self._get_port_val(port_name, "type")
if port_type in constants.OVS_DPDK_PORT_TYPES: if port_type in ovs_constants.OVS_DPDK_PORT_TYPES:
self._update_ingress_bw_limit_for_dpdk_port( self._update_ingress_bw_limit_for_dpdk_port(
port_name, max_kbps, max_burst_kbps) port_name, max_kbps, max_burst_kbps)
else: else:
@ -990,12 +992,13 @@ class OVSBridge(BaseOVS):
# load 1 to reg4), then goto table 0 again. The packet will be handled # load 1 to reg4), then goto table 0 again. The packet will be handled
# as usual when the second visit to table 0. # as usual when the second visit to table 0.
self.add_flow( self.add_flow(
table=constants.LOCAL_SWITCHING, table=ovs_constants.LOCAL_SWITCHING,
in_port=queue_num, in_port=queue_num,
reg4=0, reg4=0,
priority=200, priority=200,
actions=("set_field:%s->pkt_mark,load:1->NXM_NX_REG4[0]," actions=("set_field:%s->pkt_mark,load:1->NXM_NX_REG4[0],"
"resubmit(,%s)" % (queue_num, constants.LOCAL_SWITCHING))) "resubmit(,%s)" % (queue_num,
ovs_constants.LOCAL_SWITCHING)))
def set_queue_for_minimum_bandwidth(self, queue_num): def set_queue_for_minimum_bandwidth(self, queue_num):
# reg4 is used to memoize if queue was set or not. If it is first visit # reg4 is used to memoize if queue was set or not. If it is first visit
@ -1015,7 +1018,7 @@ class OVSBridge(BaseOVS):
def _unset_pkt_mark_for_minimum_bandwidth(self, queue_num): def _unset_pkt_mark_for_minimum_bandwidth(self, queue_num):
self.delete_flows( self.delete_flows(
table=constants.LOCAL_SWITCHING, table=ovs_constants.LOCAL_SWITCHING,
in_port=queue_num, in_port=queue_num,
reg4=0) reg4=0)

View File

@ -16,13 +16,13 @@
import contextlib import contextlib
import eventlet import eventlet
from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
from neutron.agent.common import async_process from neutron.agent.common import async_process
from neutron.agent.common import base_polling from neutron.agent.common import base_polling
from neutron.agent.common import ovsdb_monitor from neutron.agent.common import ovsdb_monitor
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
@contextlib.contextmanager @contextlib.contextmanager
def get_polling_manager(minimize_polling=False, def get_polling_manager(minimize_polling=False,
ovsdb_monitor_respawn_interval=( ovsdb_monitor_respawn_interval=(
constants.DEFAULT_OVSDBMON_RESPAWN), ovs_const.DEFAULT_OVSDBMON_RESPAWN),
bridge_names=None, ovs=None): bridge_names=None, ovs=None):
if minimize_polling: if minimize_polling:
pm = InterfacePollingMinimizer( pm = InterfacePollingMinimizer(
@ -51,7 +51,7 @@ class InterfacePollingMinimizer(base_polling.BasePollingManager):
def __init__( def __init__(
self, self,
ovsdb_monitor_respawn_interval=constants.DEFAULT_OVSDBMON_RESPAWN, ovsdb_monitor_respawn_interval=ovs_const.DEFAULT_OVSDBMON_RESPAWN,
bridge_names=None, ovs=None): bridge_names=None, ovs=None):
super(InterfacePollingMinimizer, self).__init__() super(InterfacePollingMinimizer, self).__init__()

View File

@ -17,6 +17,7 @@ import sys
from neutron_lib.agent import l2_extension from neutron_lib.agent import l2_extension
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
@ -27,8 +28,6 @@ from neutron.agent.linux import bridge_lib
from neutron.conf.agent import l2_ext_fdb_population from neutron.conf.agent import l2_ext_fdb_population
from neutron.plugins.ml2.drivers.linuxbridge.agent.common import ( from neutron.plugins.ml2.drivers.linuxbridge.agent.common import (
constants as linux_bridge_constants) constants as linux_bridge_constants)
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as ovs_constants)
l2_ext_fdb_population.register_fdb_population_opts() l2_ext_fdb_population.register_fdb_population_opts()

View File

@ -21,6 +21,7 @@ from neutron_lib.agent import l2_extension
from neutron_lib.callbacks import events as lib_events from neutron_lib.callbacks import events as lib_events
from neutron_lib.callbacks import registry as lib_registry from neutron_lib.callbacks import registry as lib_registry
from neutron_lib import context as lib_ctx from neutron_lib import context as lib_ctx
from neutron_lib.plugins.ml2 import ovs_constants
from os_ken.lib.packet import ether_types from os_ken.lib.packet import ether_types
from os_ken.lib.packet import in_proto as ip_proto from os_ken.lib.packet import in_proto as ip_proto
from oslo_config import cfg from oslo_config import cfg
@ -32,8 +33,6 @@ from neutron.api.rpc.callbacks import resources
from neutron.api.rpc.handlers import resources_rpc from neutron.api.rpc.handlers import resources_rpc
from neutron.plugins.ml2.drivers.openvswitch.agent import ( from neutron.plugins.ml2.drivers.openvswitch.agent import (
ovs_neutron_agent as ovs_agent) ovs_neutron_agent as ovs_agent)
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as ovs_constants)
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)

View File

@ -20,6 +20,7 @@ import netaddr
from neutron_lib.agent.linux import interface from neutron_lib.agent.linux import interface
from neutron_lib import constants from neutron_lib import constants
from neutron_lib import exceptions from neutron_lib import exceptions
from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import excutils from oslo_utils import excutils
from pyroute2.netlink import exceptions \ from pyroute2.netlink import exceptions \
@ -29,8 +30,6 @@ from neutron.agent.common import ovs_lib
from neutron.agent.linux import ip_lib from neutron.agent.linux import ip_lib
from neutron.common import utils from neutron.common import utils
from neutron.conf.plugins.ml2.drivers import ovs_conf from neutron.conf.plugins.ml2.drivers import ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as ovs_const
from neutron.privileged.agent.linux import ethtool from neutron.privileged.agent.linux import ethtool
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)

View File

@ -25,6 +25,7 @@ from neutron_lib.callbacks import events as callbacks_events
from neutron_lib.callbacks import registry as callbacks_registry from neutron_lib.callbacks import registry as callbacks_registry
from neutron_lib.callbacks import resources as callbacks_resources from neutron_lib.callbacks import resources as callbacks_resources
from neutron_lib import constants as lib_const from neutron_lib import constants as lib_const
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from neutron_lib.plugins import utils as p_utils from neutron_lib.plugins import utils as p_utils
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
from oslo_config import cfg from oslo_config import cfg
@ -39,8 +40,6 @@ from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts
from neutron.agent.linux.openvswitch_firewall import exceptions from neutron.agent.linux.openvswitch_firewall import exceptions
from neutron.agent.linux.openvswitch_firewall import iptables from neutron.agent.linux.openvswitch_firewall import iptables
from neutron.agent.linux.openvswitch_firewall import rules from neutron.agent.linux.openvswitch_firewall import rules
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \
as ovs_consts
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
CONJ_ID_REGEX = re.compile(r"conj_id=(\d+),") CONJ_ID_REGEX = re.compile(r"conj_id=(\d+),")

View File

@ -17,12 +17,11 @@ import collections
import netaddr import netaddr
from neutron_lib import constants as n_consts from neutron_lib import constants as n_consts
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from neutron._i18n import _ from neutron._i18n import _
from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts
from neutron.common import utils from neutron.common import utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \
as ovs_consts
CT_STATES = [ CT_STATES = [
ovsfw_consts.OF_STATE_ESTABLISHED_NOT_REPLY, ovsfw_consts.OF_STATE_ESTABLISHED_NOT_REPLY,

View File

@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_config import cfg from oslo_config import cfg
from ovsdbapp.backend.ovs_idl import command from ovsdbapp.backend.ovs_idl import command
from ovsdbapp.backend.ovs_idl import connection from ovsdbapp.backend.ovs_idl import connection
@ -22,7 +23,6 @@ from ovsdbapp.schema.open_vswitch import impl_idl
from neutron.agent.ovsdb.native import connection as n_connection from neutron.agent.ovsdb.native import connection as n_connection
from neutron.common import utils from neutron.common import utils
from neutron.conf.agent import ovs_conf from neutron.conf.agent import ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
ovs_conf.register_ovs_agent_opts() ovs_conf.register_ovs_agent_opts()
@ -62,7 +62,7 @@ class OvsCleanup(command.BaseCommand):
# Deletable defined as "looks like vif port and not set to skip delete" # Deletable defined as "looks like vif port and not set to skip delete"
if self.all_ports: if self.all_ports:
return True return True
if constants.SKIP_CLEANUP in port.external_ids: if ovs_constants.SKIP_CLEANUP in port.external_ids:
return False return False
if not all(field in port.external_ids if not all(field in port.external_ids
for field in ('iface-id', 'attached-mac')): for field in ('iface-id', 'attached-mac')):

View File

@ -15,6 +15,7 @@
import sys import sys
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib.plugins import utils as p_utils from neutron_lib.plugins import utils as p_utils
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
from oslo_config import cfg from oslo_config import cfg
@ -24,16 +25,15 @@ from neutron.agent.common import ovs_lib
from neutron.common import config as common_config from neutron.common import config as common_config
from neutron.conf.agent import common as agent_config from neutron.conf.agent import common as agent_config
from neutron.conf.plugins.ml2.drivers import ovs_conf from neutron.conf.plugins.ml2.drivers import ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
def get_patch_port_names(bridge_name): def get_patch_port_names(bridge_name):
int_if_name = p_utils.get_interface_name( int_if_name = p_utils.get_interface_name(
bridge_name, prefix=constants.PEER_INTEGRATION_PREFIX) bridge_name, prefix=ovs_constants.PEER_INTEGRATION_PREFIX)
phys_if_name = p_utils.get_interface_name( phys_if_name = p_utils.get_interface_name(
bridge_name, prefix=constants.PEER_PHYSICAL_PREFIX) bridge_name, prefix=ovs_constants.PEER_PHYSICAL_PREFIX)
return int_if_name, phys_if_name return int_if_name, phys_if_name
@ -74,7 +74,8 @@ class PatchPortCleaner(object):
""" """
LOG.debug("Get configured flows for integration bridge %s", LOG.debug("Get configured flows for integration bridge %s",
self.int_br.br_name) self.int_br.br_name)
return bool(self.int_br.dump_flows_for(table=constants.CANARY_TABLE)) return bool(
self.int_br.dump_flows_for(table=ovs_constants.CANARY_TABLE))
def main(): def main():

View File

@ -21,6 +21,7 @@ import tempfile
import netaddr import netaddr
from neutron_lib import constants as n_consts from neutron_lib import constants as n_consts
from neutron_lib import exceptions from neutron_lib import exceptions
from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
@ -36,8 +37,6 @@ from neutron.agent.linux import keepalived
from neutron.agent.linux import utils as agent_utils from neutron.agent.linux import utils as agent_utils
from neutron.common import utils as common_utils from neutron.common import utils as common_utils
from neutron.conf.agent.l3 import config as l3_config from neutron.conf.agent.l3 import config as l3_config
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as ovs_const
from neutron.privileged.agent.linux import dhcp as priv_dhcp from neutron.privileged.agent.linux import dhcp as priv_dhcp
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)

View File

@ -13,12 +13,11 @@
# under the License. # under the License.
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_config import cfg from oslo_config import cfg
from neutron._i18n import _ from neutron._i18n import _
from neutron.conf.agent import common from neutron.conf.agent import common
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants
DEFAULT_BRIDGE_MAPPINGS = [] DEFAULT_BRIDGE_MAPPINGS = []
@ -149,13 +148,14 @@ ovs_opts = [
"See also: " "See also: "
"https://docs.openstack.org/api-ref/placement/" "https://docs.openstack.org/api-ref/placement/"
"#update-resource-provider-inventories")), "#update-resource-provider-inventories")),
cfg.StrOpt('datapath_type', default=constants.OVS_DATAPATH_SYSTEM, cfg.StrOpt('datapath_type', default=ovs_constants.OVS_DATAPATH_SYSTEM,
choices=[constants.OVS_DATAPATH_SYSTEM, choices=[ovs_constants.OVS_DATAPATH_SYSTEM,
constants.OVS_DATAPATH_NETDEV], ovs_constants.OVS_DATAPATH_NETDEV],
help=_("OVS datapath to use. 'system' is the default value and " help=_("OVS datapath to use. 'system' is the default value and "
"corresponds to the kernel datapath. To enable the " "corresponds to the kernel datapath. To enable the "
"userspace datapath set this value to 'netdev'.")), "userspace datapath set this value to 'netdev'.")),
cfg.StrOpt('vhostuser_socket_dir', default=constants.VHOST_USER_SOCKET_DIR, cfg.StrOpt('vhostuser_socket_dir',
default=ovs_constants.VHOST_USER_SOCKET_DIR,
help=_("OVS vhost-user socket directory.")), help=_("OVS vhost-user socket directory.")),
cfg.IPOpt('of_listen_address', default='127.0.0.1', cfg.IPOpt('of_listen_address', default='127.0.0.1',
help=_("Address to listen on for OpenFlow connections.")), help=_("Address to listen on for OpenFlow connections.")),
@ -188,7 +188,7 @@ agent_opts = [
help=_("Minimize polling by monitoring ovsdb for interface " help=_("Minimize polling by monitoring ovsdb for interface "
"changes.")), "changes.")),
cfg.IntOpt('ovsdb_monitor_respawn_interval', cfg.IntOpt('ovsdb_monitor_respawn_interval',
default=constants.DEFAULT_OVSDBMON_RESPAWN, default=ovs_constants.DEFAULT_OVSDBMON_RESPAWN,
help=_("The number of seconds to wait before respawning the " help=_("The number of seconds to wait before respawning the "
"ovsdb monitor after losing communication with it.")), "ovsdb monitor after losing communication with it.")),
cfg.ListOpt('tunnel_types', default=DEFAULT_TUNNEL_TYPES, cfg.ListOpt('tunnel_types', default=DEFAULT_TUNNEL_TYPES,

View File

@ -14,13 +14,12 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron_lib.plugins.ml2 import ovs_constants as constants
from os_ken.lib.packet import arp from os_ken.lib.packet import arp
from os_ken.lib.packet import ether_types from os_ken.lib.packet import ether_types
from os_ken.lib.packet import icmpv6 from os_ken.lib.packet import icmpv6
from os_ken.lib.packet import in_proto from os_ken.lib.packet import in_proto
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
class OVSDVRInterfaceMixin(object): class OVSDVRInterfaceMixin(object):

View File

@ -23,12 +23,12 @@
import netaddr import netaddr
from neutron_lib import constants as lib_consts from neutron_lib import constants as lib_consts
from neutron_lib.plugins.ml2 import ovs_constants as constants
from os_ken.lib.packet import ether_types from os_ken.lib.packet import ether_types
from os_ken.lib.packet import icmpv6 from os_ken.lib.packet import icmpv6
from os_ken.lib.packet import in_proto from os_ken.lib.packet import in_proto
from oslo_log import log as logging from oslo_log import log as logging
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \
import br_dvr_process import br_dvr_process
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \

View File

@ -14,7 +14,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants from neutron_lib.plugins.ml2 import ovs_constants as constants
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \
import br_dvr_process import br_dvr_process
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \

View File

@ -15,9 +15,9 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron_lib.plugins.ml2 import ovs_constants as constants
from os_ken.lib.packet import ether_types from os_ken.lib.packet import ether_types
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \
import br_dvr_process import br_dvr_process
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \

View File

@ -14,6 +14,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from os_ken.lib.packet import arp from os_ken.lib.packet import arp
from os_ken.lib.packet import ether_types from os_ken.lib.packet import ether_types
from oslo_log import log as logging from oslo_log import log as logging
@ -22,8 +23,6 @@ from oslo_utils import excutils
from neutron._i18n import _ from neutron._i18n import _
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.common import ipv6_utils from neutron.common import ipv6_utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \
as ovs_consts
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow \
import br_cookie import br_cookie
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \

View File

@ -18,6 +18,7 @@ import sys
import netaddr import netaddr
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
import oslo_messaging import oslo_messaging
@ -27,7 +28,6 @@ from osprofiler import profiler
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.agent.linux.openvswitch_firewall import firewall as ovs_firewall from neutron.agent.linux.openvswitch_firewall import firewall as ovs_firewall
from neutron.common import utils as n_utils from neutron.common import utils as n_utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -35,7 +35,7 @@ LOG = logging.getLogger(__name__)
# A class to represent a DVR-hosted subnet including vif_ports resident on # A class to represent a DVR-hosted subnet including vif_ports resident on
# that subnet # that subnet
class LocalDVRSubnetMapping(object): class LocalDVRSubnetMapping(object):
def __init__(self, subnet, csnat_ofport=constants.OFPORT_INVALID): def __init__(self, subnet, csnat_ofport=ovs_constants.OFPORT_INVALID):
# set of compute ports on this dvr subnet # set of compute ports on this dvr subnet
self.compute_ports = {} self.compute_ports = {}
# set of dvr router interfaces on this subnet # set of dvr router interfaces on this subnet
@ -143,8 +143,8 @@ class OVSDVRNeutronAgent(object):
def __init__(self, context, plugin_rpc, integ_br, tun_br, def __init__(self, context, plugin_rpc, integ_br, tun_br,
bridge_mappings, phys_brs, int_ofports, phys_ofports, bridge_mappings, phys_brs, int_ofports, phys_ofports,
patch_int_ofport=constants.OFPORT_INVALID, patch_int_ofport=ovs_constants.OFPORT_INVALID,
patch_tun_ofport=constants.OFPORT_INVALID, patch_tun_ofport=ovs_constants.OFPORT_INVALID,
host=None, enable_tunneling=False, host=None, enable_tunneling=False,
enable_distributed_routing=False): enable_distributed_routing=False):
self.context = context self.context = context
@ -247,13 +247,14 @@ class OVSDVRNeutronAgent(object):
self.int_br.setup_canary_table() self.int_br.setup_canary_table()
# Insert 'drop' action as the default for Table DVR_TO_SRC_MAC # Insert 'drop' action as the default for Table DVR_TO_SRC_MAC
self.int_br.install_drop(table_id=constants.DVR_TO_SRC_MAC, priority=1) self.int_br.install_drop(
table_id=ovs_constants.DVR_TO_SRC_MAC, priority=1)
self.int_br.install_drop(table_id=constants.DVR_TO_SRC_MAC_PHYSICAL, self.int_br.install_drop(
priority=1) table_id=ovs_constants.DVR_TO_SRC_MAC_PHYSICAL, priority=1)
for physical_network in self.bridge_mappings: for physical_network in self.bridge_mappings:
self.int_br.install_drop(table_id=constants.LOCAL_SWITCHING, self.int_br.install_drop(table_id=ovs_constants.LOCAL_SWITCHING,
priority=2, priority=2,
in_port=self.int_ofports[ in_port=self.int_ofports[
physical_network]) physical_network])
@ -263,16 +264,16 @@ class OVSDVRNeutronAgent(object):
if not self.enable_tunneling: if not self.enable_tunneling:
return return
self.tun_br.install_goto(dest_table_id=constants.DVR_PROCESS, self.tun_br.install_goto(dest_table_id=ovs_constants.DVR_PROCESS,
priority=1, priority=1,
in_port=self.patch_int_ofport) in_port=self.patch_int_ofport)
# table-miss should be sent to learning table # table-miss should be sent to learning table
self.tun_br.install_goto(table_id=constants.DVR_NOT_LEARN, self.tun_br.install_goto(table_id=ovs_constants.DVR_NOT_LEARN,
dest_table_id=constants.LEARN_FROM_TUN) dest_table_id=ovs_constants.LEARN_FROM_TUN)
self.tun_br.install_goto(table_id=constants.DVR_PROCESS, self.tun_br.install_goto(table_id=ovs_constants.DVR_PROCESS,
dest_table_id=constants.PATCH_LV_TO_TUN) dest_table_id=ovs_constants.PATCH_LV_TO_TUN)
def setup_dvr_flows_on_phys_br(self, bridge_mappings=None): def setup_dvr_flows_on_phys_br(self, bridge_mappings=None):
'''Setup up initial dvr flows into br-phys''' '''Setup up initial dvr flows into br-phys'''
@ -281,20 +282,20 @@ class OVSDVRNeutronAgent(object):
self.phys_brs[physical_network].install_goto( self.phys_brs[physical_network].install_goto(
in_port=self.phys_ofports[physical_network], in_port=self.phys_ofports[physical_network],
priority=2, priority=2,
dest_table_id=constants.DVR_PROCESS_PHYSICAL) dest_table_id=ovs_constants.DVR_PROCESS_PHYSICAL)
self.phys_brs[physical_network].install_goto( self.phys_brs[physical_network].install_goto(
priority=1, priority=1,
dest_table_id=constants.DVR_NOT_LEARN_PHYSICAL) dest_table_id=ovs_constants.DVR_NOT_LEARN_PHYSICAL)
self.phys_brs[physical_network].install_goto( self.phys_brs[physical_network].install_goto(
table_id=constants.DVR_PROCESS_PHYSICAL, table_id=ovs_constants.DVR_PROCESS_PHYSICAL,
priority=0, priority=0,
dest_table_id=constants.LOCAL_VLAN_TRANSLATION) dest_table_id=ovs_constants.LOCAL_VLAN_TRANSLATION)
self.phys_brs[physical_network].install_drop( self.phys_brs[physical_network].install_drop(
table_id=constants.LOCAL_VLAN_TRANSLATION, table_id=ovs_constants.LOCAL_VLAN_TRANSLATION,
in_port=self.phys_ofports[physical_network], in_port=self.phys_ofports[physical_network],
priority=2) priority=2)
self.phys_brs[physical_network].install_normal( self.phys_brs[physical_network].install_normal(
table_id=constants.DVR_NOT_LEARN_PHYSICAL, table_id=ovs_constants.DVR_NOT_LEARN_PHYSICAL,
priority=1) priority=1)
def _add_dvr_mac_for_phys_br(self, physical_network, mac): def _add_dvr_mac_for_phys_br(self, physical_network, mac):
@ -427,7 +428,7 @@ class OVSDVRNeutronAgent(object):
ldm.set_dvr_owned(True) ldm.set_dvr_owned(True)
vlan_to_use = lvm.vlan vlan_to_use = lvm.vlan
if lvm.network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if lvm.network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
vlan_to_use = lvm.segmentation_id vlan_to_use = lvm.segmentation_id
subnet_info = ldm.get_subnet_info() subnet_info = ldm.get_subnet_info()
@ -488,11 +489,11 @@ class OVSDVRNeutronAgent(object):
dvr_mac=self.dvr_mac_address, dvr_mac=self.dvr_mac_address,
rtr_port=port.ofport) rtr_port=port.ofport)
if lvm.network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if lvm.network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
# TODO(vivek) remove the IPv6 related flows once SNAT is not # TODO(vivek) remove the IPv6 related flows once SNAT is not
# used for IPv6 DVR. # used for IPv6 DVR.
br = self.phys_brs[lvm.physical_network] br = self.phys_brs[lvm.physical_network]
if lvm.network_type in constants.TUNNEL_NETWORK_TYPES: if lvm.network_type in ovs_constants.TUNNEL_NETWORK_TYPES:
br = self.tun_br br = self.tun_br
# TODO(vivek) remove the IPv6 related flows once SNAT is not # TODO(vivek) remove the IPv6 related flows once SNAT is not
# used for IPv6 DVR. # used for IPv6 DVR.
@ -558,7 +559,7 @@ class OVSDVRNeutronAgent(object):
ovsport.add_subnet(subnet_uuid) ovsport.add_subnet(subnet_uuid)
self.local_ports[port.vif_id] = ovsport self.local_ports[port.vif_id] = ovsport
vlan_to_use = lvm.vlan vlan_to_use = lvm.vlan
if lvm.network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if lvm.network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
vlan_to_use = lvm.segmentation_id vlan_to_use = lvm.segmentation_id
# create a rule for this vm port # create a rule for this vm port
self.int_br.install_dvr_to_src_mac( self.int_br.install_dvr_to_src_mac(
@ -618,7 +619,7 @@ class OVSDVRNeutronAgent(object):
ovsport.add_subnet(subnet_uuid) ovsport.add_subnet(subnet_uuid)
self.local_ports[port.vif_id] = ovsport self.local_ports[port.vif_id] = ovsport
vlan_to_use = lvm.vlan vlan_to_use = lvm.vlan
if lvm.network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if lvm.network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
vlan_to_use = lvm.segmentation_id vlan_to_use = lvm.segmentation_id
self.int_br.install_dvr_to_src_mac( self.int_br.install_dvr_to_src_mac(
network_type=lvm.network_type, network_type=lvm.network_type,
@ -633,8 +634,8 @@ class OVSDVRNeutronAgent(object):
return return
if (local_vlan_map.network_type not in if (local_vlan_map.network_type not in
(constants.TUNNEL_NETWORK_TYPES + (ovs_constants.TUNNEL_NETWORK_TYPES +
constants.DVR_PHYSICAL_NETWORK_TYPES)): ovs_constants.DVR_PHYSICAL_NETWORK_TYPES)):
LOG.debug("DVR: Port %s is with network_type %s not supported" LOG.debug("DVR: Port %s is with network_type %s not supported"
" for dvr plumbing", port.vif_id, " for dvr plumbing", port.vif_id,
local_vlan_map.network_type) local_vlan_map.network_type)
@ -676,7 +677,7 @@ class OVSDVRNeutronAgent(object):
network_type = lvm.network_type network_type = lvm.network_type
physical_network = lvm.physical_network physical_network = lvm.physical_network
vlan_to_use = lvm.vlan vlan_to_use = lvm.vlan
if network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
vlan_to_use = lvm.segmentation_id vlan_to_use = lvm.segmentation_id
# ensure we process for all the subnets laid on this removed port # ensure we process for all the subnets laid on this removed port
for sub_uuid in subnet_set: for sub_uuid in subnet_set:
@ -716,16 +717,16 @@ class OVSDVRNeutronAgent(object):
gateway_mac=port.vif_mac, gateway_mac=port.vif_mac,
dvr_mac=self.dvr_mac_address, dvr_mac=self.dvr_mac_address,
rtr_port=port.ofport) rtr_port=port.ofport)
if (ldm.get_csnat_ofport() == constants.OFPORT_INVALID and if (ldm.get_csnat_ofport() == ovs_constants.OFPORT_INVALID and
len(ldm.get_dvr_ofports()) <= 1): len(ldm.get_dvr_ofports()) <= 1):
# if there is no csnat port for this subnet and if this is # if there is no csnat port for this subnet and if this is
# the last dvr port in the subnet, remove this subnet from # the last dvr port in the subnet, remove this subnet from
# local_dvr_map, as no dvr (or) csnat ports available on this # local_dvr_map, as no dvr (or) csnat ports available on this
# agent anymore # agent anymore
self.local_dvr_map.pop(sub_uuid, None) self.local_dvr_map.pop(sub_uuid, None)
if network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
br = self.phys_brs[physical_network] br = self.phys_brs[physical_network]
if network_type in constants.TUNNEL_NETWORK_TYPES: if network_type in ovs_constants.TUNNEL_NETWORK_TYPES:
br = self.tun_br br = self.tun_br
if ip_version == 4: if ip_version == 4:
if subnet_info['gateway_ip']: if subnet_info['gateway_ip']:
@ -750,9 +751,9 @@ class OVSDVRNeutronAgent(object):
target_mac_address=subnet_info['gateway_mac'], target_mac_address=subnet_info['gateway_mac'],
orig_mac_address=self.dvr_mac_address) orig_mac_address=self.dvr_mac_address)
if lvm.network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if lvm.network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
br = self.phys_brs[physical_network] br = self.phys_brs[physical_network]
if lvm.network_type in constants.TUNNEL_NETWORK_TYPES: if lvm.network_type in ovs_constants.TUNNEL_NETWORK_TYPES:
br = self.tun_br br = self.tun_br
br.delete_dvr_process(vlan_tag=lvm.vlan, vif_mac=port.vif_mac) br.delete_dvr_process(vlan_tag=lvm.vlan, vif_mac=port.vif_mac)
@ -772,7 +773,7 @@ class OVSDVRNeutronAgent(object):
ldm = self.local_dvr_map[sub_uuid] ldm = self.local_dvr_map[sub_uuid]
ldm.remove_compute_ofport(port.vif_id) ldm.remove_compute_ofport(port.vif_id)
vlan_to_use = lvm.vlan vlan_to_use = lvm.vlan
if lvm.network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if lvm.network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
vlan_to_use = lvm.segmentation_id vlan_to_use = lvm.segmentation_id
# first remove this vm port rule # first remove this vm port rule
self.int_br.delete_dvr_to_src_mac( self.int_br.delete_dvr_to_src_mac(
@ -791,9 +792,9 @@ class OVSDVRNeutronAgent(object):
if sub_uuid not in self.local_dvr_map: if sub_uuid not in self.local_dvr_map:
return return
ldm = self.local_dvr_map[sub_uuid] ldm = self.local_dvr_map[sub_uuid]
ldm.set_csnat_ofport(constants.OFPORT_INVALID) ldm.set_csnat_ofport(ovs_constants.OFPORT_INVALID)
vlan_to_use = lvm.vlan vlan_to_use = lvm.vlan
if lvm.network_type in constants.DVR_PHYSICAL_NETWORK_TYPES: if lvm.network_type in ovs_constants.DVR_PHYSICAL_NETWORK_TYPES:
vlan_to_use = lvm.segmentation_id vlan_to_use = lvm.segmentation_id
# then remove csnat port rule # then remove csnat port rule
self.int_br.delete_dvr_to_src_mac( self.int_br.delete_dvr_to_src_mac(

View File

@ -32,6 +32,7 @@ from neutron_lib.callbacks import resources as callback_resources
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib import context from neutron_lib import context
from neutron_lib.placement import utils as place_utils from neutron_lib.placement import utils as place_utils
from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
from neutron_lib.plugins import utils as plugin_utils from neutron_lib.plugins import utils as plugin_utils
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
import os_vif import os_vif
@ -64,8 +65,6 @@ from neutron.conf.agent import common as agent_config
from neutron.conf import service as service_conf from neutron.conf import service as service_conf
from neutron.plugins.ml2.drivers.agent import capabilities from neutron.plugins.ml2.drivers.agent import capabilities
from neutron.plugins.ml2.drivers.l2pop.rpc_manager import l2population_rpc from neutron.plugins.ml2.drivers.l2pop.rpc_manager import l2population_rpc
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants
from neutron.plugins.ml2.drivers.openvswitch.agent \ from neutron.plugins.ml2.drivers.openvswitch.agent \
import ovs_agent_extension_api as ovs_ext_api import ovs_agent_extension_api as ovs_ext_api
from neutron.plugins.ml2.drivers.openvswitch.agent \ from neutron.plugins.ml2.drivers.openvswitch.agent \
@ -144,7 +143,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
# 1.5 Added binding_activate and binding_deactivate # 1.5 Added binding_activate and binding_deactivate
# 1.7 Add support for smartnic ports # 1.7 Add support for smartnic ports
target = oslo_messaging.Target(version='1.7') target = oslo_messaging.Target(version='1.7')
max_device_retries = constants.MAX_DEVICE_RETRIES max_device_retries = ovs_const.MAX_DEVICE_RETRIES
def __init__(self, bridge_classes, ext_manager, conf=None): def __init__(self, bridge_classes, ext_manager, conf=None):
'''Constructor. '''Constructor.
@ -259,7 +258,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
self.minimize_polling = agent_conf.minimize_polling self.minimize_polling = agent_conf.minimize_polling
self.ovsdb_monitor_respawn_interval = ( self.ovsdb_monitor_respawn_interval = (
agent_conf.ovsdb_monitor_respawn_interval or agent_conf.ovsdb_monitor_respawn_interval or
constants.DEFAULT_OVSDBMON_RESPAWN) ovs_const.DEFAULT_OVSDBMON_RESPAWN)
self.local_ip = ovs_conf.local_ip self.local_ip = ovs_conf.local_ip
self.tunnel_count = 0 self.tunnel_count = 0
self.vxlan_udp_port = agent_conf.vxlan_udp_port self.vxlan_udp_port = agent_conf.vxlan_udp_port
@ -271,8 +270,8 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
if agent_conf.dscp if agent_conf.dscp
else None)) else None))
self.tun_br = None self.tun_br = None
self.patch_int_ofport = constants.OFPORT_INVALID self.patch_int_ofport = ovs_const.OFPORT_INVALID
self.patch_tun_ofport = constants.OFPORT_INVALID self.patch_tun_ofport = ovs_const.OFPORT_INVALID
if self.enable_tunneling: if self.enable_tunneling:
# The patch_int_ofport and patch_tun_ofport are updated # The patch_int_ofport and patch_tun_ofport are updated
# here inside the call to setup_tunnel_br() # here inside the call to setup_tunnel_br()
@ -308,7 +307,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
self.phys_brs, self.phys_brs,
self.plugin_rpc) self.plugin_rpc)
self.ext_manager.initialize( self.ext_manager.initialize(
self.connection, constants.EXTENSION_DRIVER_TYPE, agent_api) self.connection, ovs_const.EXTENSION_DRIVER_TYPE, agent_api)
# In order to keep existed device's local vlan unchanged, # In order to keep existed device's local vlan unchanged,
# restore local vlan mapping at start # restore local vlan mapping at start
@ -406,7 +405,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
def _report_state(self): def _report_state(self):
# return and skip reporting agent state if OVS is dead # return and skip reporting agent state if OVS is dead
if self.ovs_status == constants.OVS_DEAD: if self.ovs_status == ovs_const.OVS_DEAD:
LOG.error("OVS is down, not reporting state to server") LOG.error("OVS is down, not reporting state to server")
return return
@ -466,7 +465,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
continue continue
net_uuid = local_vlan_map.get('net_uuid') net_uuid = local_vlan_map.get('net_uuid')
if (net_uuid and net_uuid not in self._local_vlan_hints and if (net_uuid and net_uuid not in self._local_vlan_hints and
local_vlan != constants.DEAD_VLAN_TAG): local_vlan != ovs_const.DEAD_VLAN_TAG):
self.available_local_vlans.remove(local_vlan) self.available_local_vlans.remove(local_vlan)
self._local_vlan_hints[local_vlan_map['net_uuid']] = local_vlan self._local_vlan_hints[local_vlan_map['net_uuid']] = local_vlan
@ -534,8 +533,8 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
break break
# Define the listening consumers for the agent # Define the listening consumers for the agent
consumers = [[constants.TUNNEL, topics.UPDATE], consumers = [[ovs_const.TUNNEL, topics.UPDATE],
[constants.TUNNEL, topics.DELETE], [ovs_const.TUNNEL, topics.DELETE],
[topics.DVR, topics.UPDATE]] [topics.DVR, topics.UPDATE]]
if self.l2_pop: if self.l2_pop:
consumers.append([topics.L2POPULATION, topics.UPDATE]) consumers.append([topics.L2POPULATION, topics.UPDATE])
@ -1006,7 +1005,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
return return
lvid = lvm.vlan lvid = lvm.vlan
if network_type in constants.TUNNEL_NETWORK_TYPES: if network_type in ovs_const.TUNNEL_NETWORK_TYPES:
if self.enable_tunneling: if self.enable_tunneling:
# outbound broadcast/multicast # outbound broadcast/multicast
ofports = list(self.tun_br_ofports[network_type].values()) ofports = list(self.tun_br_ofports[network_type].values())
@ -1071,7 +1070,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
"net-id = %(net_uuid)s", "net-id = %(net_uuid)s",
{'vlan_id': lvm.vlan, 'net_uuid': net_uuid}) {'vlan_id': lvm.vlan, 'net_uuid': net_uuid})
if lvm.network_type in constants.TUNNEL_NETWORK_TYPES: if lvm.network_type in ovs_const.TUNNEL_NETWORK_TYPES:
if self.enable_tunneling: if self.enable_tunneling:
self.tun_br.reclaim_local_vlan( self.tun_br.reclaim_local_vlan(
network_type=lvm.network_type, network_type=lvm.network_type,
@ -1214,7 +1213,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
# When changing the port's tag from DEAD_VLAN_TAG to # When changing the port's tag from DEAD_VLAN_TAG to
# something else, also clear port's vlan_mode and trunks, # something else, also clear port's vlan_mode and trunks,
# which were set to make sure all packets are dropped. # which were set to make sure all packets are dropped.
if (cur_tag == constants.DEAD_VLAN_TAG and if (cur_tag == ovs_const.DEAD_VLAN_TAG and
port.ofport != ovs_lib.INVALID_OFPORT): port.ofport != ovs_lib.INVALID_OFPORT):
txn.add(ovsdb.db_clear( txn.add(ovsdb.db_clear(
'Port', port.port_name, 'vlan_mode')) 'Port', port.port_name, 'vlan_mode'))
@ -1230,7 +1229,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
LOG.debug("Setting status for %s to UP", device) LOG.debug("Setting status for %s to UP", device)
devices_up.append(device) devices_up.append(device)
if (not tunnels_missing and if (not tunnels_missing and
lvm.network_type in constants.TUNNEL_NETWORK_TYPES and lvm.network_type in ovs_const.TUNNEL_NETWORK_TYPES and
len(lvm.tun_ofports) == 0): len(lvm.tun_ofports) == 0):
tunnels_missing = True tunnels_missing = True
else: else:
@ -1349,10 +1348,10 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
cur_tag = self.int_br.db_get_val("Port", port.port_name, "tag", cur_tag = self.int_br.db_get_val("Port", port.port_name, "tag",
log_errors=log_errors) log_errors=log_errors)
# Port normal vlan tag is set correctly, remove the drop flows # Port normal vlan tag is set correctly, remove the drop flows
if cur_tag and cur_tag != constants.DEAD_VLAN_TAG: if cur_tag and cur_tag != ovs_const.DEAD_VLAN_TAG:
self.int_br.uninstall_flows( self.int_br.uninstall_flows(
strict=True, strict=True,
table_id=constants.LOCAL_SWITCHING, table_id=ovs_const.LOCAL_SWITCHING,
priority=2, priority=2,
in_port=port.ofport) in_port=port.ofport)
@ -1364,9 +1363,9 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
# Don't kill a port if it's already dead # Don't kill a port if it's already dead
cur_tag = self.int_br.db_get_val("Port", port.port_name, "tag", cur_tag = self.int_br.db_get_val("Port", port.port_name, "tag",
log_errors=log_errors) log_errors=log_errors)
if cur_tag and cur_tag != constants.DEAD_VLAN_TAG: if cur_tag and cur_tag != ovs_const.DEAD_VLAN_TAG:
self.int_br.set_db_attribute("Port", port.port_name, "tag", self.int_br.set_db_attribute("Port", port.port_name, "tag",
constants.DEAD_VLAN_TAG, ovs_const.DEAD_VLAN_TAG,
log_errors=log_errors) log_errors=log_errors)
self.int_br.drop_port(in_port=port.ofport) self.int_br.drop_port(in_port=port.ofport)
@ -1558,9 +1557,9 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
# interconnect physical and integration bridges using veth/patches # interconnect physical and integration bridges using veth/patches
int_if_name = plugin_utils.get_interface_name( int_if_name = plugin_utils.get_interface_name(
bridge, prefix=constants.PEER_INTEGRATION_PREFIX) bridge, prefix=ovs_const.PEER_INTEGRATION_PREFIX)
phys_if_name = plugin_utils.get_interface_name( phys_if_name = plugin_utils.get_interface_name(
bridge, prefix=constants.PEER_PHYSICAL_PREFIX) bridge, prefix=ovs_const.PEER_PHYSICAL_PREFIX)
# Interface type of port for physical and integration bridges must # Interface type of port for physical and integration bridges must
# be same, so check only one of them. # be same, so check only one of them.
# Not logging error here, as the interface may not exist yet. # Not logging error here, as the interface may not exist yet.
@ -1584,14 +1583,14 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
int_ofport = self.int_br.get_port_ofport(int_if_name) int_ofport = self.int_br.get_port_ofport(int_if_name)
else: else:
int_ofport = self.int_br.add_patch_port( int_ofport = self.int_br.add_patch_port(
int_if_name, constants.NONEXISTENT_PEER) int_if_name, ovs_const.NONEXISTENT_PEER)
self.int_br.set_igmp_snooping_flood( self.int_br.set_igmp_snooping_flood(
int_if_name, self.conf.OVS.igmp_snooping_enable) int_if_name, self.conf.OVS.igmp_snooping_enable)
if br.port_exists(phys_if_name): if br.port_exists(phys_if_name):
phys_ofport = br.get_port_ofport(phys_if_name) phys_ofport = br.get_port_ofport(phys_if_name)
else: else:
phys_ofport = br.add_patch_port( phys_ofport = br.add_patch_port(
phys_if_name, constants.NONEXISTENT_PEER) phys_if_name, ovs_const.NONEXISTENT_PEER)
self.int_ofports[physical_network] = int_ofport self.int_ofports[physical_network] = int_ofport
self.phys_ofports[physical_network] = phys_ofport self.phys_ofports[physical_network] = phys_ofport
@ -2199,21 +2198,21 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
if self.direct_for_non_openflow_firewall: if self.direct_for_non_openflow_firewall:
for physical_network in self.bridge_mappings: for physical_network in self.bridge_mappings:
self.int_br.install_goto( self.int_br.install_goto(
table_id=constants.TRANSIENT_TABLE, table_id=ovs_const.TRANSIENT_TABLE,
dest_table_id=constants.LOCAL_MAC_DIRECT, dest_table_id=ovs_const.LOCAL_MAC_DIRECT,
priority=4, # a bit higher than NORMAL priority=4, # a bit higher than NORMAL
in_port=self.int_ofports[physical_network]) in_port=self.int_ofports[physical_network])
if self.enable_tunneling: if self.enable_tunneling:
self.int_br.install_goto( self.int_br.install_goto(
table_id=constants.TRANSIENT_TABLE, table_id=ovs_const.TRANSIENT_TABLE,
dest_table_id=constants.LOCAL_MAC_DIRECT, dest_table_id=ovs_const.LOCAL_MAC_DIRECT,
priority=4, # a bit higher than NORMAL priority=4, # a bit higher than NORMAL
in_port=self.patch_tun_ofport) in_port=self.patch_tun_ofport)
self.int_br.install_goto( self.int_br.install_goto(
table_id=constants.LOCAL_MAC_DIRECT, table_id=ovs_const.LOCAL_MAC_DIRECT,
dest_table_id=constants.TRANSIENT_EGRESS_TABLE) dest_table_id=ovs_const.TRANSIENT_EGRESS_TABLE)
def process_install_ports_egress_flows(self, ports): def process_install_ports_egress_flows(self, ports):
with self.int_br.deferred(full_ordered=True, with self.int_br.deferred(full_ordered=True,
@ -2245,18 +2244,18 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
# Adding the local vlan to register 6 in case of MAC overlapping # Adding the local vlan to register 6 in case of MAC overlapping
# in different networks. # in different networks.
br_int.add_flow( br_int.add_flow(
table=constants.TRANSIENT_TABLE, table=ovs_const.TRANSIENT_TABLE,
priority=9, priority=9,
in_port=port.ofport, in_port=port.ofport,
dl_src=port_detail['mac_address'], dl_src=port_detail['mac_address'],
actions='set_field:{:d}->reg6,' actions='set_field:{:d}->reg6,'
'resubmit(,{:d})'.format( 'resubmit(,{:d})'.format(
lvm.vlan, lvm.vlan,
constants.LOCAL_MAC_DIRECT)) ovs_const.LOCAL_MAC_DIRECT))
# For packets from patch ports. # For packets from patch ports.
br_int.add_flow( br_int.add_flow(
table=constants.LOCAL_MAC_DIRECT, table=ovs_const.LOCAL_MAC_DIRECT,
priority=12, priority=12,
dl_vlan=lvm.vlan, dl_vlan=lvm.vlan,
dl_dst=port_detail['mac_address'], dl_dst=port_detail['mac_address'],
@ -2264,7 +2263,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
# For packets from internal ports or VM ports. # For packets from internal ports or VM ports.
br_int.add_flow( br_int.add_flow(
table=constants.LOCAL_MAC_DIRECT, table=ovs_const.LOCAL_MAC_DIRECT,
priority=12, priority=12,
reg6=lvm.vlan, reg6=lvm.vlan,
dl_dst=port_detail['mac_address'], dl_dst=port_detail['mac_address'],
@ -2279,11 +2278,11 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
elif lvm.network_type == n_const.TYPE_VLAN: elif lvm.network_type == n_const.TYPE_VLAN:
bridge = self.bridge_mappings.get(lvm.physical_network) bridge = self.bridge_mappings.get(lvm.physical_network)
port_name = plugin_utils.get_interface_name( port_name = plugin_utils.get_interface_name(
bridge, prefix=constants.PEER_INTEGRATION_PREFIX) bridge, prefix=ovs_const.PEER_INTEGRATION_PREFIX)
patch_ofport = self.int_br.get_port_ofport(port_name) patch_ofport = self.int_br.get_port_ofport(port_name)
if patch_ofport is not None: if patch_ofport is not None:
br_int.add_flow( br_int.add_flow(
table=constants.TRANSIENT_EGRESS_TABLE, table=ovs_const.TRANSIENT_EGRESS_TABLE,
priority=10, priority=10,
dl_src=port_detail['mac_address'], dl_src=port_detail['mac_address'],
dl_dst="00:00:00:00:00:00/01:00:00:00:00:00", dl_dst="00:00:00:00:00:00/01:00:00:00:00:00",
@ -2298,20 +2297,20 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
return return
br_int.delete_flows( br_int.delete_flows(
table=constants.TRANSIENT_TABLE, table=ovs_const.TRANSIENT_TABLE,
in_port=ofport, in_port=ofport,
dl_src=mac) dl_src=mac)
br_int.delete_flows( br_int.delete_flows(
table=constants.LOCAL_MAC_DIRECT, table=ovs_const.LOCAL_MAC_DIRECT,
dl_vlan=vlan, dl_vlan=vlan,
dl_dst=mac) dl_dst=mac)
br_int.delete_flows( br_int.delete_flows(
table=constants.LOCAL_MAC_DIRECT, table=ovs_const.LOCAL_MAC_DIRECT,
reg6=vlan, reg6=vlan,
dl_dst=mac) dl_dst=mac)
br_int.delete_flows( br_int.delete_flows(
table=constants.TRANSIENT_EGRESS_TABLE, table=ovs_const.TRANSIENT_EGRESS_TABLE,
dl_src=mac, dl_src=mac,
in_port=ofport) in_port=ofport)
@ -2422,11 +2421,11 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
status = self.int_br.check_canary_table() status = self.int_br.check_canary_table()
except Exception: except Exception:
LOG.exception("Failure while checking for the canary flow") LOG.exception("Failure while checking for the canary flow")
status = constants.OVS_DEAD status = ovs_const.OVS_DEAD
if status == constants.OVS_RESTARTED: if status == ovs_const.OVS_RESTARTED:
LOG.warning("OVS is restarted. OVSNeutronAgent will reset " LOG.warning("OVS is restarted. OVSNeutronAgent will reset "
"bridges and recover ports.") "bridges and recover ports.")
elif status == constants.OVS_DEAD: elif status == ovs_const.OVS_DEAD:
LOG.warning("OVS is dead. OVSNeutronAgent will keep running " LOG.warning("OVS is dead. OVSNeutronAgent will keep running "
"and checking OVS status periodically.") "and checking OVS status periodically.")
return status return status
@ -2528,7 +2527,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
failed_devices, failed_devices,
failed_ancillary_devices, failed_ancillary_devices,
updated_ports_copy)) updated_ports_copy))
registry.publish(constants.OVSDB_RESOURCE, registry.publish(ovs_const.OVSDB_RESOURCE,
callback_events.AFTER_READ, callback_events.AFTER_READ,
self, self,
payload=callback_events.EventPayload( payload=callback_events.EventPayload(
@ -2653,10 +2652,10 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
self.iter_num) self.iter_num)
self.ovs_status = self.check_ovs_status() self.ovs_status = self.check_ovs_status()
bridges_recreated = False bridges_recreated = False
if self.ovs_status == constants.OVS_RESTARTED: if self.ovs_status == ovs_const.OVS_RESTARTED:
self._handle_ovs_restart(polling_manager) self._handle_ovs_restart(polling_manager)
tunnel_sync = self.enable_tunneling or tunnel_sync tunnel_sync = self.enable_tunneling or tunnel_sync
elif self.ovs_status == constants.OVS_DEAD: elif self.ovs_status == ovs_const.OVS_DEAD:
# Agent doesn't apply any operations when ovs is dead, to # Agent doesn't apply any operations when ovs is dead, to
# prevent unexpected failure or crash. Sleep and continue # prevent unexpected failure or crash. Sleep and continue
# loop in which ovs status will be checked periodically. # loop in which ovs status will be checked periodically.
@ -2681,7 +2680,7 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
except Exception: except Exception:
LOG.exception("Error while configuring tunnel endpoints") LOG.exception("Error while configuring tunnel endpoints")
tunnel_sync = True tunnel_sync = True
ovs_restarted |= (self.ovs_status == constants.OVS_RESTARTED) ovs_restarted |= (self.ovs_status == ovs_const.OVS_RESTARTED)
devices_need_retry = (any(failed_devices.values()) or devices_need_retry = (any(failed_devices.values()) or
any(failed_ancillary_devices.values()) or any(failed_ancillary_devices.values()) or
ports_not_ready_yet) ports_not_ready_yet)
@ -2869,7 +2868,7 @@ def validate_tunnel_config(tunnel_types, local_ip):
validate_local_ip(local_ip) validate_local_ip(local_ip)
for tun in tunnel_types: for tun in tunnel_types:
if tun not in constants.TUNNEL_NETWORK_TYPES: if tun not in ovs_const.TUNNEL_NETWORK_TYPES:
LOG.error('Invalid tunnel type specified: %s', tun) LOG.error('Invalid tunnel type specified: %s', tun)
raise SystemExit(1) raise SystemExit(1)

View File

@ -21,6 +21,7 @@ from neutron_lib.api.definitions import provider_net
from neutron_lib.callbacks import events from neutron_lib.callbacks import events
from neutron_lib.callbacks import registry from neutron_lib.callbacks import registry
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log from oslo_log import log
@ -28,8 +29,6 @@ from neutron._i18n import _
from neutron.agent import securitygroups_rpc from neutron.agent import securitygroups_rpc
from neutron.conf.plugins.ml2.drivers.openvswitch import mech_ovs_conf from neutron.conf.plugins.ml2.drivers.openvswitch import mech_ovs_conf
from neutron.plugins.ml2.drivers import mech_agent from neutron.plugins.ml2.drivers import mech_agent
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as a_const
from neutron.services.logapi.drivers.openvswitch import driver as log_driver from neutron.services.logapi.drivers.openvswitch import driver as log_driver
from neutron.services.qos.drivers.openvswitch import driver as ovs_qos_driver from neutron.services.qos.drivers.openvswitch import driver as ovs_qos_driver
@ -136,10 +135,10 @@ class OpenvswitchMechanismDriver(mech_agent.SimpleAgentMechanismDriverBase):
def get_supported_vif_type(self, agent): def get_supported_vif_type(self, agent):
caps = agent['configurations'].get('ovs_capabilities', {}) caps = agent['configurations'].get('ovs_capabilities', {})
if (any(x in caps.get('iface_types', []) for x if (any(x in caps.get('iface_types', []) for x
in [a_const.OVS_DPDK_VHOST_USER, in [ovs_const.OVS_DPDK_VHOST_USER,
a_const.OVS_DPDK_VHOST_USER_CLIENT]) and ovs_const.OVS_DPDK_VHOST_USER_CLIENT]) and
agent['configurations'].get('datapath_type') == agent['configurations'].get('datapath_type') ==
a_const.OVS_DATAPATH_NETDEV): ovs_const.OVS_DATAPATH_NETDEV):
return portbindings.VIF_TYPE_VHOST_USER return portbindings.VIF_TYPE_VHOST_USER
return self.vif_type return self.vif_type
@ -153,7 +152,7 @@ class OpenvswitchMechanismDriver(mech_agent.SimpleAgentMechanismDriverBase):
# NOTE(sean-k-mooney): this function converts the ovs vhost user # NOTE(sean-k-mooney): this function converts the ovs vhost user
# driver mode into the qemu vhost user mode. If OVS is the server, # driver mode into the qemu vhost user mode. If OVS is the server,
# qemu is the client and vice-versa. # qemu is the client and vice-versa.
if (a_const.OVS_DPDK_VHOST_USER_CLIENT in iface_types): if (ovs_const.OVS_DPDK_VHOST_USER_CLIENT in iface_types):
return portbindings.VHOST_USER_MODE_SERVER return portbindings.VHOST_USER_MODE_SERVER
return portbindings.VHOST_USER_MODE_CLIENT return portbindings.VHOST_USER_MODE_CLIENT
@ -176,7 +175,7 @@ class OpenvswitchMechanismDriver(mech_agent.SimpleAgentMechanismDriverBase):
vif_details[portbindings.VIF_DETAILS_BRIDGE_NAME] = bridge_name vif_details[portbindings.VIF_DETAILS_BRIDGE_NAME] = bridge_name
registry.publish( registry.publish(
a_const.OVS_BRIDGE_NAME, events.BEFORE_READ, ovs_const.OVS_BRIDGE_NAME, events.BEFORE_READ,
set_bridge_name_inner, set_bridge_name_inner,
payload=events.EventPayload(None, metadata={'port': port})) payload=events.EventPayload(None, metadata={'port': port}))
@ -198,14 +197,14 @@ class OpenvswitchMechanismDriver(mech_agent.SimpleAgentMechanismDriverBase):
portbindings.VHOST_USER_OVS_PLUG: True, portbindings.VHOST_USER_OVS_PLUG: True,
portbindings.VHOST_USER_SOCKET: sock_path} portbindings.VHOST_USER_SOCKET: sock_path}
details[portbindings.OVS_DATAPATH_TYPE] = a_config.get( details[portbindings.OVS_DATAPATH_TYPE] = a_config.get(
'datapath_type', a_const.OVS_DATAPATH_SYSTEM) 'datapath_type', ovs_const.OVS_DATAPATH_SYSTEM)
return details return details
@staticmethod @staticmethod
def agent_vhu_sockpath(agent, port_id): def agent_vhu_sockpath(agent, port_id):
"""Return the agent's vhost-user socket path for a given port""" """Return the agent's vhost-user socket path for a given port"""
sockdir = agent['configurations'].get('vhostuser_socket_dir', sockdir = agent['configurations'].get('vhostuser_socket_dir',
a_const.VHOST_USER_SOCKET_DIR) ovs_const.VHOST_USER_SOCKET_DIR)
sock_name = (constants.VHOST_USER_DEVICE_PREFIX + port_id)[:14] sock_name = (constants.VHOST_USER_DEVICE_PREFIX + port_id)[:14]
return os.path.join(sockdir, sock_name) return os.path.join(sockdir, sock_name)

View File

@ -16,6 +16,7 @@
import collections import collections
from neutron_lib import constants as lib_const from neutron_lib import constants as lib_const
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from neutron_lib.services.logapi import constants as log_const from neutron_lib.services.logapi import constants as log_const
from os_ken.base import app_manager from os_ken.base import app_manager
from os_ken.lib.packet import packet from os_ken.lib.packet import packet
@ -27,8 +28,6 @@ from oslo_log import log as logging
from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts
from neutron.agent.linux.openvswitch_firewall import firewall as ovsfw from neutron.agent.linux.openvswitch_firewall import firewall as ovsfw
from neutron.agent.linux.openvswitch_firewall import rules from neutron.agent.linux.openvswitch_firewall import rules
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \
as ovs_consts
from neutron.services.logapi.agent import log_extension as log_ext from neutron.services.logapi.agent import log_extension as log_ext
from neutron.services.logapi.common import exceptions as log_exc from neutron.services.logapi.common import exceptions as log_exc
from neutron.services.logapi.drivers.openvswitch import log_oskenapp from neutron.services.logapi.drivers.openvswitch import log_oskenapp

View File

@ -21,6 +21,7 @@ from neutron_lib.callbacks import events
from neutron_lib.callbacks import registry from neutron_lib.callbacks import registry
from neutron_lib.callbacks import resources from neutron_lib.callbacks import resources
from neutron_lib import context as n_context from neutron_lib import context as n_context
from neutron_lib.plugins.ml2 import ovs_constants as ovs_agent_constants
from neutron_lib.services.trunk import constants from neutron_lib.services.trunk import constants
from oslo_concurrency import lockutils from oslo_concurrency import lockutils
from oslo_context import context as o_context from oslo_context import context as o_context
@ -32,8 +33,6 @@ from neutron._i18n import _
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.api.rpc.handlers import resources_rpc from neutron.api.rpc.handlers import resources_rpc
from neutron.common import utils as common_utils from neutron.common import utils as common_utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as ovs_agent_constants
from neutron.services.trunk.drivers.openvswitch.agent import exceptions from neutron.services.trunk.drivers.openvswitch.agent import exceptions
from neutron.services.trunk.drivers.openvswitch.agent \ from neutron.services.trunk.drivers.openvswitch.agent \
import trunk_manager as tman import trunk_manager as tman

View File

@ -15,12 +15,11 @@ from neutron_lib.api.definitions import portbindings
from neutron_lib.callbacks import events from neutron_lib.callbacks import events
from neutron_lib.callbacks import registry from neutron_lib.callbacks import registry
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as agent_consts
from neutron_lib.services.trunk import constants as trunk_consts from neutron_lib.services.trunk import constants as trunk_consts
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as agent_consts)
from neutron.services.trunk.drivers import base from neutron.services.trunk.drivers import base
from neutron.services.trunk.drivers.openvswitch import utils from neutron.services.trunk.drivers.openvswitch import utils

View File

@ -17,12 +17,11 @@ import functools
import fixtures import fixtures
import netaddr import netaddr
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.common import utils as common_utils from neutron.common import utils as common_utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as ovs_consts)
from neutron.tests.common import machine_fixtures from neutron.tests.common import machine_fixtures
from neutron.tests.common import net_helpers from neutron.tests.common import net_helpers

View File

@ -15,11 +15,10 @@
import re import re
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.common import utils from neutron.common import utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as ovs_const)
from neutron.tests.common import net_helpers from neutron.tests.common import net_helpers
from neutron.tests.fullstack import base from neutron.tests.fullstack import base
from neutron.tests.fullstack.resources import environment from neutron.tests.fullstack.resources import environment

View File

@ -15,6 +15,7 @@
import functools import functools
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_constants
from neutron_lib.services.qos import constants as qos_consts from neutron_lib.services.qos import constants as qos_consts
from neutronclient.common import exceptions from neutronclient.common import exceptions
from oslo_utils import uuidutils from oslo_utils import uuidutils
@ -33,8 +34,6 @@ from neutron.conf.plugins.ml2.drivers import linuxbridge as \
linuxbridge_agent_config linuxbridge_agent_config
from neutron.plugins.ml2.drivers.linuxbridge.agent import \ from neutron.plugins.ml2.drivers.linuxbridge.agent import \
linuxbridge_neutron_agent as linuxbridge_agent linuxbridge_neutron_agent as linuxbridge_agent
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as ovs_constants
from neutron.services.qos.drivers.linuxbridge import driver as lb_drv from neutron.services.qos.drivers.linuxbridge import driver as lb_drv
from neutron.services.qos.drivers.openvswitch import driver as ovs_drv from neutron.services.qos.drivers.openvswitch import driver as ovs_drv

View File

@ -17,6 +17,7 @@ import functools
from unittest import mock from unittest import mock
from neutron_lib import constants as p_const from neutron_lib import constants as p_const
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib.services.qos import constants as qos_constants from neutron_lib.services.qos import constants as qos_constants
from oslo_utils import uuidutils from oslo_utils import uuidutils
from ovsdbapp.backend.ovs_idl import event from ovsdbapp.backend.ovs_idl import event
@ -24,8 +25,6 @@ from ovsdbapp.backend.ovs_idl import event
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.agent.linux import ip_lib from neutron.agent.linux import ip_lib
from neutron.common import utils as common_utils from neutron.common import utils as common_utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as ovs_constants
from neutron.tests.functional import base from neutron.tests.functional import base

View File

@ -20,6 +20,7 @@ from unittest import mock
import eventlet import eventlet
import fixtures import fixtures
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib.utils import net from neutron_lib.utils import net
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils from oslo_utils import uuidutils
@ -34,7 +35,6 @@ from neutron.conf.agent import ovs_conf as ovs_agent_config
from neutron.conf import common as common_config from neutron.conf import common as common_config
from neutron.conf.plugins.ml2.drivers import agent from neutron.conf.plugins.ml2.drivers import agent
from neutron.conf.plugins.ml2.drivers import ovs_conf from neutron.conf.plugins.ml2.drivers import ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.plugins.ml2.drivers.openvswitch.agent.extension_drivers \ from neutron.plugins.ml2.drivers.openvswitch.agent.extension_drivers \
import qos_driver as ovs_qos_driver import qos_driver as ovs_qos_driver
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \
@ -228,7 +228,7 @@ class OVSAgentTestFramework(base.BaseOVSLinuxTestCase, OVSOFControllerHelper):
utils.wait_until_true( utils.wait_until_true(
polling_manager._monitor.is_active) polling_manager._monitor.is_active)
agent.check_ovs_status = mock.Mock( agent.check_ovs_status = mock.Mock(
return_value=constants.OVS_NORMAL) return_value=ovs_constants.OVS_NORMAL)
self.agent_thread = eventlet.spawn(agent.rpc_loop, self.agent_thread = eventlet.spawn(agent.rpc_loop,
polling_manager) polling_manager)

View File

@ -20,9 +20,9 @@ from unittest import mock
from neutron_lib.callbacks import events from neutron_lib.callbacks import events
from neutron_lib.callbacks import registry from neutron_lib.callbacks import registry
from neutron_lib.callbacks import resources from neutron_lib.callbacks import resources
from neutron_lib.plugins.ml2 import ovs_constants
from neutron.common import utils from neutron.common import utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.tests.common import net_helpers from neutron.tests.common import net_helpers
from neutron.tests.functional.agent.l2 import base from neutron.tests.functional.agent.l2 import base
@ -70,7 +70,7 @@ class TestOVSAgent(base.OVSAgentTestFramework):
lambda: num_ports_with_drop_flows( lambda: num_ports_with_drop_flows(
ofports, ofports,
self.agent.int_br.dump_flows( self.agent.int_br.dump_flows(
constants.LOCAL_SWITCHING ovs_constants.LOCAL_SWITCHING
)) == len(ofports)) )) == len(ofports))
# delete the ports on bridge # delete the ports on bridge
@ -83,7 +83,7 @@ class TestOVSAgent(base.OVSAgentTestFramework):
num_ports_with_drop_flows( num_ports_with_drop_flows(
ofports, ofports,
self.agent.int_br.dump_flows( self.agent.int_br.dump_flows(
constants.LOCAL_SWITCHING ovs_constants.LOCAL_SWITCHING
) )
)) ))
@ -106,15 +106,15 @@ class TestOVSAgent(base.OVSAgentTestFramework):
def test_datapath_type_netdev(self): def test_datapath_type_netdev(self):
self._check_datapath_type_netdev( self._check_datapath_type_netdev(
constants.OVS_DATAPATH_NETDEV) ovs_constants.OVS_DATAPATH_NETDEV)
def test_datapath_type_system(self): def test_datapath_type_system(self):
self._check_datapath_type_netdev( self._check_datapath_type_netdev(
constants.OVS_DATAPATH_SYSTEM) ovs_constants.OVS_DATAPATH_SYSTEM)
def test_datapath_type_default(self): def test_datapath_type_default(self):
self._check_datapath_type_netdev( self._check_datapath_type_netdev(
constants.OVS_DATAPATH_SYSTEM, default=True) ovs_constants.OVS_DATAPATH_SYSTEM, default=True)
def test_resync_devices_set_up_after_exception(self): def test_resync_devices_set_up_after_exception(self):
self.setup_agent_and_ports( self.setup_agent_and_ports(
@ -126,7 +126,7 @@ class TestOVSAgent(base.OVSAgentTestFramework):
self.setup_agent_and_ports( self.setup_agent_and_ports(
port_dicts=self.create_test_ports()) port_dicts=self.create_test_ports())
self.wait_until_ports_state(self.ports, up=True) self.wait_until_ports_state(self.ports, up=True)
self.agent.check_ovs_status.return_value = constants.OVS_RESTARTED self.agent.check_ovs_status.return_value = ovs_constants.OVS_RESTARTED
# OVS restarted, the agent should reprocess all the ports # OVS restarted, the agent should reprocess all the ports
self.agent.plugin_rpc.update_device_list.reset_mock() self.agent.plugin_rpc.update_device_list.reset_mock()
self.wait_until_ports_state(self.ports, up=True) self.wait_until_ports_state(self.ports, up=True)
@ -340,7 +340,7 @@ class TestOVSAgent(base.OVSAgentTestFramework):
resources.AGENT, resources.AGENT,
events.OVS_RESTARTED) events.OVS_RESTARTED)
self.agent.check_ovs_status.return_value = constants.OVS_RESTARTED self.agent.check_ovs_status.return_value = ovs_constants.OVS_RESTARTED
utils.wait_until_true(lambda: callback.call_count, timeout=10) utils.wait_until_true(lambda: callback.call_count, timeout=10)

View File

@ -14,6 +14,7 @@
# under the License. # under the License.
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_config import cfg from oslo_config import cfg
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
from testtools.content import text_content from testtools.content import text_content
@ -23,7 +24,6 @@ from neutron.agent.common import utils
from neutron.agent.linux import ip_lib from neutron.agent.linux import ip_lib
from neutron.cmd.sanity import checks from neutron.cmd.sanity import checks
from neutron.common import utils as common_utils from neutron.common import utils as common_utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.plugins.ml2.drivers.openvswitch.agent \ from neutron.plugins.ml2.drivers.openvswitch.agent \
import ovs_neutron_agent as ovsagt import ovs_neutron_agent as ovsagt
from neutron.tests.common import base as common_base from neutron.tests.common import base as common_base
@ -249,10 +249,10 @@ class ARPSpoofTestCase(OVSAgentTestBase):
class CanaryTableTestCase(OVSAgentTestBase): class CanaryTableTestCase(OVSAgentTestBase):
def test_canary_table(self): def test_canary_table(self):
self.br_int.uninstall_flows(cookie=ovs_lib.COOKIE_ANY) self.br_int.uninstall_flows(cookie=ovs_lib.COOKIE_ANY)
self.assertEqual(constants.OVS_RESTARTED, self.assertEqual(ovs_constants.OVS_RESTARTED,
self.br_int.check_canary_table()) self.br_int.check_canary_table())
self.br_int.setup_canary_table() self.br_int.setup_canary_table()
self.assertEqual(constants.OVS_NORMAL, self.assertEqual(ovs_constants.OVS_NORMAL,
self.br_int.check_canary_table()) self.br_int.check_canary_table())

View File

@ -18,14 +18,13 @@ from unittest import mock
import uuid import uuid
from neutron_lib import constants as const from neutron_lib import constants as const
from neutron_lib.plugins.ml2 import ovs_constants as agent_const
from oslo_config import cfg from oslo_config import cfg
from ovsdbapp.backend.ovs_idl import idlutils from ovsdbapp.backend.ovs_idl import idlutils
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.agent.linux import ip_lib from neutron.agent.linux import ip_lib
from neutron.common import utils from neutron.common import utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as agent_const)
from neutron.tests.common import net_helpers from neutron.tests.common import net_helpers
from neutron.tests.functional.agent.linux import base from neutron.tests.functional.agent.linux import base

View File

@ -14,12 +14,12 @@
# under the License. # under the License.
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_config import cfg from oslo_config import cfg
from neutron.cmd import destroy_patch_ports from neutron.cmd import destroy_patch_ports
from neutron.common import utils from neutron.common import utils
from neutron.conf.plugins.ml2.drivers import ovs_conf from neutron.conf.plugins.ml2.drivers import ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.tests.common import net_helpers from neutron.tests.common import net_helpers
from neutron.tests.functional import base from neutron.tests.functional import base
@ -53,9 +53,9 @@ class TestDestroyPatchPorts(base.BaseSudoTestCase):
int_if_name, phys_if_name = destroy_patch_ports.get_patch_port_names( int_if_name, phys_if_name = destroy_patch_ports.get_patch_port_names(
bridge.br_name) bridge.br_name)
self.int_br.add_patch_port( self.int_br.add_patch_port(
int_if_name, constants.NONEXISTENT_PEER) int_if_name, ovs_constants.NONEXISTENT_PEER)
bridge.add_patch_port( bridge.add_patch_port(
phys_if_name, constants.NONEXISTENT_PEER) phys_if_name, ovs_constants.NONEXISTENT_PEER)
self.int_br.set_db_attribute( self.int_br.set_db_attribute(
'Interface', int_if_name, 'options', {'peer': phys_if_name}) 'Interface', int_if_name, 'options', {'peer': phys_if_name})
bridge.set_db_attribute( bridge.set_db_attribute(
@ -86,7 +86,7 @@ class TestDestroyPatchPorts(base.BaseSudoTestCase):
cleaner.destroy_patch_ports() cleaner.destroy_patch_ports()
def test_destroy_patch_ports_canary_flow_on_int_br(self): def test_destroy_patch_ports_canary_flow_on_int_br(self):
self.int_br.add_flow(table=constants.CANARY_TABLE, actions="drop") self.int_br.add_flow(table=ovs_constants.CANARY_TABLE, actions="drop")
self._assert_has_all_ports() self._assert_has_all_ports()
cleaner = destroy_patch_ports.PatchPortCleaner(self.config) cleaner = destroy_patch_ports.PatchPortCleaner(self.config)
cleaner.destroy_patch_ports() cleaner.destroy_patch_ports()

View File

@ -12,10 +12,11 @@
import collections import collections
from neutron_lib.plugins.ml2 import ovs_constants
from neutron.cmd import ovs_cleanup from neutron.cmd import ovs_cleanup
from neutron.common import utils from neutron.common import utils
from neutron.conf.agent import cmd from neutron.conf.agent import cmd
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.tests.common import net_helpers from neutron.tests.common import net_helpers
from neutron.tests.functional.agent.linux import base from neutron.tests.functional.agent.linux import base
@ -46,7 +47,7 @@ class TestOVSCLIConfig(base.BaseOVSLinuxTestCase):
# set skippable vif to be skipped # set skippable vif to be skipped
int_br.ovsdb.db_set( int_br.ovsdb.db_set(
'Interface', skip[int_br][0], 'Interface', skip[int_br][0],
('external_ids', {constants.SKIP_CLEANUP: "True"}) ('external_ids', {ovs_constants.SKIP_CLEANUP: "True"})
).execute(check_error=True) ).execute(check_error=True)
device_name = utils.get_rand_name() device_name = utils.get_rand_name()
skip[int_br].append(device_name) skip[int_br].append(device_name)

View File

@ -18,6 +18,7 @@ from unittest import mock
from neutron_lib import constants from neutron_lib import constants
from neutron_lib import context as neutron_context from neutron_lib import context as neutron_context
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
import testscenarios import testscenarios
@ -25,8 +26,6 @@ import testscenarios
from neutron.objects.logapi import logging_resource as log_object from neutron.objects.logapi import logging_resource as log_object
from neutron.plugins.ml2.drivers.openvswitch.agent import ( from neutron.plugins.ml2.drivers.openvswitch.agent import (
ovs_agent_extension_api as ovs_ext_api) ovs_agent_extension_api as ovs_ext_api)
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as ovs_consts)
from neutron.services.logapi.drivers.openvswitch import ( from neutron.services.logapi.drivers.openvswitch import (
ovs_firewall_log as ovs_fw_log) ovs_firewall_log as ovs_fw_log)
from neutron.tests.functional.agent import test_firewall from neutron.tests.functional.agent import test_firewall

View File

@ -16,6 +16,7 @@ import collections
from unittest import mock from unittest import mock
from neutron_lib import exceptions from neutron_lib import exceptions
from neutron_lib.plugins.ml2 import ovs_constants as p_const
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
from oslo_utils import uuidutils from oslo_utils import uuidutils
import tenacity import tenacity
@ -23,8 +24,6 @@ import testtools
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.agent.common import utils from neutron.agent.common import utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as p_const
from neutron.plugins.ml2.drivers.openvswitch.agent.common \ from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import exceptions as ovs_exc import exceptions as ovs_exc
from neutron.tests import base from neutron.tests import base

View File

@ -17,6 +17,7 @@ import copy
from unittest import mock from unittest import mock
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
from oslo_config import cfg from oslo_config import cfg
from pyroute2.netlink import exceptions as netlink_exceptions from pyroute2.netlink import exceptions as netlink_exceptions
@ -26,8 +27,6 @@ from neutron.agent.l2.extensions.fdb_population import (
from neutron.agent.linux import bridge_lib from neutron.agent.linux import bridge_lib
from neutron.plugins.ml2.drivers.linuxbridge.agent.common import ( from neutron.plugins.ml2.drivers.linuxbridge.agent.common import (
constants as linux_bridge_constants) constants as linux_bridge_constants)
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as ovs_constants)
from neutron.tests import base from neutron.tests import base

View File

@ -19,6 +19,7 @@ import netaddr
from neutron_lib.callbacks import events as lib_events from neutron_lib.callbacks import events as lib_events
from neutron_lib.callbacks import registry as lib_registry from neutron_lib.callbacks import registry as lib_registry
from neutron_lib import context from neutron_lib import context
from neutron_lib.plugins.ml2 import ovs_constants
from os_ken.lib.packet import ether_types from os_ken.lib.packet import ether_types
from os_ken.lib.packet import in_proto as ip_proto from os_ken.lib.packet import in_proto as ip_proto
from oslo_utils import uuidutils from oslo_utils import uuidutils
@ -27,8 +28,6 @@ from neutron.agent.l2.extensions import local_ip as local_ip_ext
from neutron.api.rpc.callbacks import events from neutron.api.rpc.callbacks import events
from neutron.api.rpc.callbacks import resources from neutron.api.rpc.callbacks import resources
from neutron.objects import local_ip as lip_obj from neutron.objects import local_ip as lip_obj
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as ovs_constants)
from neutron.plugins.ml2.drivers.openvswitch.agent \ from neutron.plugins.ml2.drivers.openvswitch.agent \
import ovs_agent_extension_api as ovs_ext_api import ovs_agent_extension_api as ovs_ext_api
from neutron.tests import base from neutron.tests import base

View File

@ -18,6 +18,7 @@ from unittest import mock
from neutron_lib import constants as common_constants from neutron_lib import constants as common_constants
from neutron_lib import context from neutron_lib import context
from neutron_lib.db import constants as db_consts from neutron_lib.db import constants as db_consts
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib.services.qos import constants as qos_consts from neutron_lib.services.qos import constants as qos_consts
from oslo_utils import uuidutils from oslo_utils import uuidutils
@ -32,7 +33,6 @@ from neutron.objects.qos import policy
from neutron.objects.qos import rule from neutron.objects.qos import rule
from neutron.plugins.ml2.drivers.openvswitch.agent import ( from neutron.plugins.ml2.drivers.openvswitch.agent import (
ovs_agent_extension_api as ovs_ext_api) ovs_agent_extension_api as ovs_ext_api)
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native import ( from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native import (
ovs_bridge) ovs_bridge)
from neutron.tests import base from neutron.tests import base
@ -248,7 +248,7 @@ class QosExtensionRpcTestCase(QosExtensionBaseTestCase):
def setUp(self): def setUp(self):
super(QosExtensionRpcTestCase, self).setUp() super(QosExtensionRpcTestCase, self).setUp()
self.qos_ext.initialize( self.qos_ext.initialize(
self.connection, constants.EXTENSION_DRIVER_TYPE) self.connection, ovs_constants.EXTENSION_DRIVER_TYPE)
self.pull_mock = mock.patch.object( self.pull_mock = mock.patch.object(
self.qos_ext.resource_rpc, 'pull', self.qos_ext.resource_rpc, 'pull',
@ -449,7 +449,7 @@ class QosExtensionInitializeTestCase(QosExtensionBaseTestCase):
@mock.patch.object(resources_rpc, 'ResourcesPushRpcCallback') @mock.patch.object(resources_rpc, 'ResourcesPushRpcCallback')
def test_initialize_subscribed_to_rpc(self, rpc_mock, subscribe_mock): def test_initialize_subscribed_to_rpc(self, rpc_mock, subscribe_mock):
self.qos_ext.initialize( self.qos_ext.initialize(
self.connection, constants.EXTENSION_DRIVER_TYPE) self.connection, ovs_constants.EXTENSION_DRIVER_TYPE)
self.connection.create_consumer.assert_has_calls( self.connection.create_consumer.assert_has_calls(
[mock.call( [mock.call(
resources_rpc.resource_type_versioned_topic(resource_type), resources_rpc.resource_type_versioned_topic(resource_type),
@ -465,7 +465,7 @@ class QosExtensionReflushRulesTestCase(QosExtensionBaseTestCase):
def setUp(self): def setUp(self):
super(QosExtensionReflushRulesTestCase, self).setUp() super(QosExtensionReflushRulesTestCase, self).setUp()
self.qos_ext.initialize( self.qos_ext.initialize(
self.connection, constants.EXTENSION_DRIVER_TYPE) self.connection, ovs_constants.EXTENSION_DRIVER_TYPE)
self.pull_mock = mock.patch.object( self.pull_mock = mock.patch.object(
self.qos_ext.resource_rpc, 'pull', self.qos_ext.resource_rpc, 'pull',

View File

@ -18,6 +18,7 @@ from neutron_lib.callbacks import events as callbacks_events
from neutron_lib.callbacks import registry as callbacks_registry from neutron_lib.callbacks import registry as callbacks_registry
from neutron_lib.callbacks import resources as callbacks_resources from neutron_lib.callbacks import resources as callbacks_resources
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
from os_ken.ofproto import ofproto_v1_3_parser from os_ken.ofproto import ofproto_v1_3_parser
from oslo_config import cfg from oslo_config import cfg
@ -30,8 +31,6 @@ from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts
from neutron.agent.linux.openvswitch_firewall import exceptions from neutron.agent.linux.openvswitch_firewall import exceptions
from neutron.agent.linux.openvswitch_firewall import firewall as ovsfw from neutron.agent.linux.openvswitch_firewall import firewall as ovsfw
from neutron.conf.agent import securitygroups_rpc from neutron.conf.agent import securitygroups_rpc
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \
as ovs_consts
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \
import ovs_bridge import ovs_bridge
from neutron.tests import base from neutron.tests import base

View File

@ -15,12 +15,11 @@
from unittest import mock from unittest import mock
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts from neutron.agent.linux.openvswitch_firewall import constants as ovsfw_consts
from neutron.agent.linux.openvswitch_firewall import firewall as ovsfw from neutron.agent.linux.openvswitch_firewall import firewall as ovsfw
from neutron.agent.linux.openvswitch_firewall import rules from neutron.agent.linux.openvswitch_firewall import rules
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \
as ovs_consts
from neutron.tests import base from neutron.tests import base
TESTING_VLAN_TAG = 1 TESTING_VLAN_TAG = 1

View File

@ -16,6 +16,7 @@
from unittest import mock from unittest import mock
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
from oslo_utils import excutils from oslo_utils import excutils
from pyroute2.netlink import exceptions as pyroute2_exc from pyroute2.netlink import exceptions as pyroute2_exc
@ -25,8 +26,6 @@ from neutron.agent.linux import ip_lib
from neutron.common import utils from neutron.common import utils
from neutron.conf.agent import common as config from neutron.conf.agent import common as config
from neutron.conf.plugins.ml2.drivers import ovs_conf from neutron.conf.plugins.ml2.drivers import ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common \
import constants as ovs_const
from neutron.privileged.agent.linux import ethtool from neutron.privileged.agent.linux import ethtool
from neutron.tests import base from neutron.tests import base

View File

@ -16,9 +16,9 @@
from unittest import mock from unittest import mock
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_utils import importutils from oslo_utils import importutils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent \ from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent \
import ovs_test_base import ovs_test_base
@ -165,7 +165,7 @@ class OVSBridgeTestBase(ovs_test_base.OVSOSKenTestBase):
set_controller.assert_called_once_with(["tcp:127.0.0.1:6633"]) set_controller.assert_called_once_with(["tcp:127.0.0.1:6633"])
set_ccm.assert_called_once_with("out-of-band") set_ccm.assert_called_once_with("out-of-band")
add_protocols.assert_called_once_with( add_protocols.assert_called_once_with(
constants.OPENFLOW10, constants.OPENFLOW13) ovs_constants.OPENFLOW10, ovs_constants.OPENFLOW13)
def test_setup_controllers(self): def test_setup_controllers(self):
self._test_setup_controllers(existing_controllers=[]) self._test_setup_controllers(existing_controllers=[])
@ -240,7 +240,7 @@ class OVSDVRProcessTestMixin(object):
arp_tpa=gateway_ip, arp_tpa=gateway_ip,
vlan_vid=vlan_tag | ofp.OFPVID_PRESENT), vlan_vid=vlan_tag | ofp.OFPVID_PRESENT),
priority=3, priority=3,
table_id=constants.FLOOD_TO_TUN), table_id=ovs_constants.FLOOD_TO_TUN),
active_bundle=None), active_bundle=None),
] ]
self.assertEqual(expected, self.mock.mock_calls) self.assertEqual(expected, self.mock.mock_calls)
@ -252,7 +252,7 @@ class OVSDVRProcessTestMixin(object):
gateway_ip=gateway_ip) gateway_ip=gateway_ip)
(dp, ofp, ofpp) = self._get_dp() (dp, ofp, ofpp) = self._get_dp()
expected = [ expected = [
call.uninstall_flows(table_id=constants.FLOOD_TO_TUN, call.uninstall_flows(table_id=ovs_constants.FLOOD_TO_TUN,
match=ofpp.OFPMatch( match=ofpp.OFPMatch(
eth_type=self.ether_types.ETH_TYPE_ARP, eth_type=self.ether_types.ETH_TYPE_ARP,
arp_tpa=gateway_ip, arp_tpa=gateway_ip,
@ -277,7 +277,7 @@ class OVSDVRProcessTestMixin(object):
ip_proto=self.in_proto.IPPROTO_ICMPV6, ip_proto=self.in_proto.IPPROTO_ICMPV6,
vlan_vid=vlan_tag | ofp.OFPVID_PRESENT), vlan_vid=vlan_tag | ofp.OFPVID_PRESENT),
priority=3, priority=3,
table_id=constants.FLOOD_TO_TUN), table_id=ovs_constants.FLOOD_TO_TUN),
active_bundle=None), active_bundle=None),
] ]
self.assertEqual(expected, self.mock.mock_calls) self.assertEqual(expected, self.mock.mock_calls)
@ -289,7 +289,7 @@ class OVSDVRProcessTestMixin(object):
gateway_mac=gateway_mac) gateway_mac=gateway_mac)
(dp, ofp, ofpp) = self._get_dp() (dp, ofp, ofpp) = self._get_dp()
expected = [ expected = [
call.uninstall_flows(table_id=constants.FLOOD_TO_TUN, call.uninstall_flows(table_id=ovs_constants.FLOOD_TO_TUN,
match=ofpp.OFPMatch( match=ofpp.OFPMatch(
eth_src=gateway_mac, eth_src=gateway_mac,
eth_type=self.ether_types.ETH_TYPE_IPV6, eth_type=self.ether_types.ETH_TYPE_IPV6,

View File

@ -17,8 +17,8 @@
from unittest import mock from unittest import mock
from neutron_lib import constants as p_const from neutron_lib import constants as p_const
from neutron_lib.plugins.ml2 import ovs_constants
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.native \
import ovs_bridge_test_base import ovs_bridge_test_base
@ -134,7 +134,7 @@ class OVSIntegrationBridgeTest(ovs_bridge_test_base.OVSBridgeTestBase):
], ],
match=ofpp.OFPMatch(), match=ofpp.OFPMatch(),
priority=3, priority=3,
table_id=constants.TRANSIENT_EGRESS_TABLE), table_id=ovs_constants.TRANSIENT_EGRESS_TABLE),
active_bundle=None), active_bundle=None),
call._send_msg(ofpp.OFPFlowMod( call._send_msg(ofpp.OFPFlowMod(
dp, cookie=self.stamp, dp, cookie=self.stamp,
@ -621,9 +621,9 @@ class OVSIntegrationBridgeTest(ovs_bridge_test_base.OVSBridgeTestBase):
def _test_delete_dvr_dst_mac_for_arp(self, network_type): def _test_delete_dvr_dst_mac_for_arp(self, network_type):
if network_type in (p_const.TYPE_VLAN, p_const.TYPE_FLAT): if network_type in (p_const.TYPE_VLAN, p_const.TYPE_FLAT):
table_id = constants.DVR_TO_SRC_MAC_PHYSICAL table_id = ovs_constants.DVR_TO_SRC_MAC_PHYSICAL
else: else:
table_id = constants.DVR_TO_SRC_MAC table_id = ovs_constants.DVR_TO_SRC_MAC
if network_type == p_const.TYPE_FLAT: if network_type == p_const.TYPE_FLAT:
vlan_tag = None vlan_tag = None
@ -733,7 +733,8 @@ class OVSIntegrationBridgeTest(ovs_bridge_test_base.OVSBridgeTestBase):
instructions = [ instructions = [
ofpp.OFPInstructionMeter(meter_id, type_=ofp.OFPIT_METER), ofpp.OFPInstructionMeter(meter_id, type_=ofp.OFPIT_METER),
ofpp.OFPInstructionGotoTable(table_id=constants.TRANSIENT_TABLE)] ofpp.OFPInstructionGotoTable(
table_id=ovs_constants.TRANSIENT_TABLE)]
expected = [ expected = [
call._send_msg(ofpp.OFPFlowMod(dp, call._send_msg(ofpp.OFPFlowMod(dp,
@ -741,7 +742,7 @@ class OVSIntegrationBridgeTest(ovs_bridge_test_base.OVSBridgeTestBase):
instructions=instructions, instructions=instructions,
match=match, match=match,
priority=100, priority=100,
table_id=constants.PACKET_RATE_LIMIT), table_id=ovs_constants.PACKET_RATE_LIMIT),
active_bundle=None) active_bundle=None)
] ]
self.assertEqual(expected, self.mock.mock_calls) self.assertEqual(expected, self.mock.mock_calls)
@ -770,7 +771,7 @@ class OVSIntegrationBridgeTest(ovs_bridge_test_base.OVSBridgeTestBase):
expected = [ expected = [
call.uninstall_flows( call.uninstall_flows(
table_id=constants.PACKET_RATE_LIMIT, table_id=ovs_constants.PACKET_RATE_LIMIT,
match=match) match=match)
] ]
self.assertEqual(expected, self.mock.mock_calls) self.assertEqual(expected, self.mock.mock_calls)
@ -842,7 +843,7 @@ class OVSIntegrationBridgeTest(ovs_bridge_test_base.OVSBridgeTestBase):
self.assertEqual(expected, self.mock.mock_calls) self.assertEqual(expected, self.mock.mock_calls)
def test_setup_local_egress_flows_ofport_invalid(self): def test_setup_local_egress_flows_ofport_invalid(self):
in_port = constants.OFPORT_INVALID in_port = ovs_constants.OFPORT_INVALID
vlan = 3333 vlan = 3333
self.br.setup_local_egress_flows(in_port=in_port, vlan=vlan) self.br.setup_local_egress_flows(in_port=in_port, vlan=vlan)

View File

@ -16,8 +16,8 @@
from unittest import mock from unittest import mock
import neutron.plugins.ml2.drivers.openvswitch.agent.common.constants \ from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
as ovs_const
from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.native \
import ovs_bridge_test_base import ovs_bridge_test_base

View File

@ -16,8 +16,8 @@
from unittest import mock from unittest import mock
import neutron.plugins.ml2.drivers.openvswitch.agent.common.constants \ from neutron_lib.plugins.ml2 import ovs_constants as ovs_const
as ovs_const
from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.native \ from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.native \
import ovs_bridge_test_base import ovs_bridge_test_base

View File

@ -23,6 +23,7 @@ from neutron_lib.agent import constants as agent_consts
from neutron_lib.api.definitions import portbindings from neutron_lib.api.definitions import portbindings
from neutron_lib.api.definitions import provider_net from neutron_lib.api.definitions import provider_net
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib.plugins.ml2 import ovs_constants
from neutron_lib import rpc as n_rpc from neutron_lib import rpc as n_rpc
import os_vif import os_vif
from os_vif.objects import instance_info as vif_instance_object from os_vif.objects import instance_info as vif_instance_object
@ -42,7 +43,6 @@ from neutron.api.rpc.callbacks import resources
from neutron.objects.ports import Port from neutron.objects.ports import Port
from neutron.objects.ports import PortBinding from neutron.objects.ports import PortBinding
from neutron.plugins.ml2.drivers.l2pop import rpc as l2pop_rpc from neutron.plugins.ml2.drivers.l2pop import rpc as l2pop_rpc
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.plugins.ml2.drivers.openvswitch.agent import ovs_neutron_agent \ from neutron.plugins.ml2.drivers.openvswitch.agent import ovs_neutron_agent \
as ovs_agent as ovs_agent
from neutron.tests import base from neutron.tests import base
@ -214,7 +214,7 @@ class TestOvsNeutronAgent(object):
def test_datapath_type_system(self): def test_datapath_type_system(self):
# verify kernel datapath is default # verify kernel datapath is default
expected = constants.OVS_DATAPATH_SYSTEM expected = ovs_constants.OVS_DATAPATH_SYSTEM
self.assertEqual(expected, self.agent.int_br.datapath_type) self.assertEqual(expected, self.agent.int_br.datapath_type)
def test_datapath_type_netdev(self): def test_datapath_type_netdev(self):
@ -239,7 +239,7 @@ class TestOvsNeutronAgent(object):
mock.patch('neutron.agent.rpc.PluginReportStateAPI.' mock.patch('neutron.agent.rpc.PluginReportStateAPI.'
'has_alive_neutron_server'): 'has_alive_neutron_server'):
# validate setting non default datapath # validate setting non default datapath
expected = constants.OVS_DATAPATH_NETDEV expected = ovs_constants.OVS_DATAPATH_NETDEV
cfg.CONF.set_override('datapath_type', cfg.CONF.set_override('datapath_type',
expected, expected,
group='OVS') group='OVS')
@ -364,13 +364,13 @@ class TestOvsNeutronAgent(object):
with mock.patch.object(self.agent, 'int_br') as int_br: with mock.patch.object(self.agent, 'int_br') as int_br:
int_br.db_get_val.return_value = cur_tag int_br.db_get_val.return_value = cur_tag
self.agent.port_dead(port) self.agent.port_dead(port)
if cur_tag is None or cur_tag == constants.DEAD_VLAN_TAG: if cur_tag is None or cur_tag == ovs_constants.DEAD_VLAN_TAG:
self.assertFalse(int_br.set_db_attribute.called) self.assertFalse(int_br.set_db_attribute.called)
self.assertFalse(int_br.drop_port.called) self.assertFalse(int_br.drop_port.called)
else: else:
int_br.assert_has_calls([ int_br.assert_has_calls([
mock.call.set_db_attribute("Port", mock.ANY, "tag", mock.call.set_db_attribute("Port", mock.ANY, "tag",
constants.DEAD_VLAN_TAG, ovs_constants.DEAD_VLAN_TAG,
log_errors=True), log_errors=True),
mock.call.drop_port(in_port=port.ofport), mock.call.drop_port(in_port=port.ofport),
]) ])
@ -379,7 +379,7 @@ class TestOvsNeutronAgent(object):
self._test_port_dead() self._test_port_dead()
def test_port_dead_with_port_already_dead(self): def test_port_dead_with_port_already_dead(self):
self._test_port_dead(constants.DEAD_VLAN_TAG) self._test_port_dead(ovs_constants.DEAD_VLAN_TAG)
def test_port_dead_with_valid_tag(self): def test_port_dead_with_valid_tag(self):
self._test_port_dead(cur_tag=1) self._test_port_dead(cur_tag=1)
@ -667,9 +667,9 @@ class TestOvsNeutronAgent(object):
def test_update_retries_map_and_remove_devs_not_to_retry(self): def test_update_retries_map_and_remove_devs_not_to_retry(self):
failed_devices_retries_map = { failed_devices_retries_map = {
'device_not_to_retry': constants.MAX_DEVICE_RETRIES, 'device_not_to_retry': ovs_constants.MAX_DEVICE_RETRIES,
'device_to_retry': 2, 'device_to_retry': 2,
'ancillary_not_to_retry': constants.MAX_DEVICE_RETRIES, 'ancillary_not_to_retry': ovs_constants.MAX_DEVICE_RETRIES,
'ancillary_to_retry': 1} 'ancillary_to_retry': 1}
failed_devices = { failed_devices = {
'added': set(['device_not_to_retry']), 'added': set(['device_not_to_retry']),
@ -1242,7 +1242,7 @@ class TestOvsNeutronAgent(object):
def test_not_report_state_when_ovs_dead(self): def test_not_report_state_when_ovs_dead(self):
with mock.patch.object(self.agent.state_rpc, with mock.patch.object(self.agent.state_rpc,
"report_state") as report_st: "report_state") as report_st:
self.agent.ovs_status = constants.OVS_DEAD self.agent.ovs_status = ovs_constants.OVS_DEAD
self.agent._report_state() self.agent._report_state()
report_st.assert_not_called() report_st.assert_not_called()
self.systemd_notify.assert_not_called() self.systemd_notify.assert_not_called()
@ -1456,7 +1456,7 @@ class TestOvsNeutronAgent(object):
# the main things we care about are that it gets put in the # the main things we care about are that it gets put in the
# dead vlan and gets blocked # dead vlan and gets blocked
int_br.set_db_attribute.assert_any_call( int_br.set_db_attribute.assert_any_call(
'Port', vif.port_name, 'tag', constants.DEAD_VLAN_TAG, 'Port', vif.port_name, 'tag', ovs_constants.DEAD_VLAN_TAG,
log_errors=False) log_errors=False)
int_br.drop_port.assert_called_once_with(in_port=vif.ofport) int_br.drop_port.assert_called_once_with(in_port=vif.ofport)
@ -1581,7 +1581,7 @@ class TestOvsNeutronAgent(object):
else: else:
expected_calls += [ expected_calls += [
mock.call.int_br.add_patch_port( mock.call.int_br.add_patch_port(
'int-br-eth', constants.NONEXISTENT_PEER), 'int-br-eth', ovs_constants.NONEXISTENT_PEER),
] ]
expected_calls += [ expected_calls += [
mock.call.int_br.set_igmp_snooping_flood( mock.call.int_br.set_igmp_snooping_flood(
@ -1595,7 +1595,7 @@ class TestOvsNeutronAgent(object):
else: else:
expected_calls += [ expected_calls += [
mock.call.phys_br.add_patch_port( mock.call.phys_br.add_patch_port(
'phy-br-eth', constants.NONEXISTENT_PEER), 'phy-br-eth', ovs_constants.NONEXISTENT_PEER),
] ]
expected_calls += [ expected_calls += [
mock.call.int_br.drop_port(in_port='int_ofport') mock.call.int_br.drop_port(in_port='int_ofport')
@ -1675,7 +1675,7 @@ class TestOvsNeutronAgent(object):
else: else:
expected_calls += [ expected_calls += [
mock.call.int_br.add_patch_port( mock.call.int_br.add_patch_port(
'int-br-eth', constants.NONEXISTENT_PEER), 'int-br-eth', ovs_constants.NONEXISTENT_PEER),
] ]
expected_calls += [ expected_calls += [
mock.call.int_br.set_igmp_snooping_flood( mock.call.int_br.set_igmp_snooping_flood(
@ -1689,7 +1689,7 @@ class TestOvsNeutronAgent(object):
else: else:
expected_calls += [ expected_calls += [
mock.call.phys_br.add_patch_port( mock.call.phys_br.add_patch_port(
'phy-br-eth', constants.NONEXISTENT_PEER), 'phy-br-eth', ovs_constants.NONEXISTENT_PEER),
] ]
expected_calls += [ expected_calls += [
mock.call.int_br.drop_port(in_port='int_ofport'), mock.call.int_br.drop_port(in_port='int_ofport'),
@ -1984,7 +1984,7 @@ class TestOvsNeutronAgent(object):
expected_added_bridges = ( expected_added_bridges = (
bridges_added if setup_bridges_side_effect else []) bridges_added if setup_bridges_side_effect else [])
with mock.patch.object(self.agent, 'check_ovs_status', with mock.patch.object(self.agent, 'check_ovs_status',
return_value=constants.OVS_NORMAL), \ return_value=ovs_constants.OVS_NORMAL), \
mock.patch.object(self.agent, '_agent_has_updates', mock.patch.object(self.agent, '_agent_has_updates',
side_effect=TypeError('loop exit')), \ side_effect=TypeError('loop exit')), \
mock.patch.dict(self.agent.bridge_mappings, bridge_mappings, mock.patch.dict(self.agent.bridge_mappings, bridge_mappings,
@ -2024,7 +2024,7 @@ class TestOvsNeutronAgent(object):
mock_idl_monitor: mock_idl_monitor:
self.agent.daemon_loop() self.agent.daemon_loop()
mock_get_pm.assert_called_with( mock_get_pm.assert_called_with(
True, constants.DEFAULT_OVSDBMON_RESPAWN, bridge_names=[], True, ovs_constants.DEFAULT_OVSDBMON_RESPAWN, bridge_names=[],
ovs=self.agent.ovs) ovs=self.agent.ovs)
mock_loop.assert_called_once_with(polling_manager=mock.ANY) mock_loop.assert_called_once_with(polling_manager=mock.ANY)
mock_idl_monitor.start_bridge_monitor.assert_called() mock_idl_monitor.start_bridge_monitor.assert_called()
@ -2326,17 +2326,17 @@ class TestOvsNeutronAgent(object):
self.agent.context, self.agent.agent_state, True) self.agent.context, self.agent.agent_state, True)
def test_ovs_status(self): def test_ovs_status(self):
self._test_ovs_status(constants.OVS_NORMAL, self._test_ovs_status(ovs_constants.OVS_NORMAL,
constants.OVS_DEAD, ovs_constants.OVS_DEAD,
constants.OVS_RESTARTED) ovs_constants.OVS_RESTARTED)
# OVS will not DEAD in some exception, like DBConnectionError. # OVS will not DEAD in some exception, like DBConnectionError.
self._test_ovs_status(constants.OVS_NORMAL, self._test_ovs_status(ovs_constants.OVS_NORMAL,
constants.OVS_RESTARTED) ovs_constants.OVS_RESTARTED)
def test_ovs_restart_for_ingress_direct_goto_flows(self): def test_ovs_restart_for_ingress_direct_goto_flows(self):
with mock.patch.object(self.agent, with mock.patch.object(self.agent,
'check_ovs_status', 'check_ovs_status',
return_value=constants.OVS_RESTARTED), \ return_value=ovs_constants.OVS_RESTARTED), \
mock.patch.object(self.agent, mock.patch.object(self.agent,
'_agent_has_updates', '_agent_has_updates',
side_effect=TypeError('loop exit')), \ side_effect=TypeError('loop exit')), \
@ -2372,7 +2372,7 @@ class TestOvsNeutronAgent(object):
'_check_and_handle_signal') as check_and_handle_signal, \ '_check_and_handle_signal') as check_and_handle_signal, \
mock.patch.object(self.agent.ovs.ovsdb, 'idl_monitor'): mock.patch.object(self.agent.ovs.ovsdb, 'idl_monitor'):
process_network_ports.side_effect = Exception("Trigger resync") process_network_ports.side_effect = Exception("Trigger resync")
check_ovs_status.return_value = constants.OVS_NORMAL check_ovs_status.return_value = ovs_constants.OVS_NORMAL
check_and_handle_signal.side_effect = [True, False] check_and_handle_signal.side_effect = [True, False]
self.agent.daemon_loop() self.agent.daemon_loop()
self.assertTrue(update_stale.called) self.assertTrue(update_stale.called)
@ -2875,7 +2875,7 @@ class TestOvsNeutronAgentOSKen(TestOvsNeutronAgent,
self.agent.cleanup_stale_flows() self.agent.cleanup_stale_flows()
dump_flows_expected = [ dump_flows_expected = [
mock.call(tid) for tid in constants.INT_BR_ALL_TABLES] mock.call(tid) for tid in ovs_constants.INT_BR_ALL_TABLES]
dump_flows.assert_has_calls(dump_flows_expected) dump_flows.assert_has_calls(dump_flows_expected)
expected = [mock.call(cookie=17185, expected = [mock.call(cookie=17185,
@ -2883,7 +2883,8 @@ class TestOvsNeutronAgentOSKen(TestOvsNeutronAgent,
mock.call(cookie=9029, mock.call(cookie=9029,
cookie_mask=uint64_max)] cookie_mask=uint64_max)]
uninstall_flows.assert_has_calls(expected, any_order=True) uninstall_flows.assert_has_calls(expected, any_order=True)
self.assertEqual(len(constants.INT_BR_ALL_TABLES) * len(expected), self.assertEqual(
len(ovs_constants.INT_BR_ALL_TABLES) * len(expected),
len(uninstall_flows.mock_calls)) len(uninstall_flows.mock_calls))
@ -4014,12 +4015,12 @@ class TestOvsDvrNeutronAgent(object):
expected_on_int_br = [ expected_on_int_br = [
# setup_dvr_flows_on_integ_br # setup_dvr_flows_on_integ_br
mock.call.setup_canary_table(), mock.call.setup_canary_table(),
mock.call.install_drop(table_id=constants.DVR_TO_SRC_MAC, mock.call.install_drop(table_id=ovs_constants.DVR_TO_SRC_MAC,
priority=1), priority=1),
mock.call.install_drop( mock.call.install_drop(
table_id=constants.DVR_TO_SRC_MAC_PHYSICAL, table_id=ovs_constants.DVR_TO_SRC_MAC_PHYSICAL,
priority=1), priority=1),
mock.call.install_drop(table_id=constants.LOCAL_SWITCHING, mock.call.install_drop(table_id=ovs_constants.LOCAL_SWITCHING,
priority=2, priority=2,
in_port=ioport), in_port=ioport),
] ]
@ -4171,7 +4172,7 @@ class TestOvsDvrNeutronAgent(object):
tun_br = mock.create_autospec(self.agent.tun_br) tun_br = mock.create_autospec(self.agent.tun_br)
with mock.patch.object(self.agent, with mock.patch.object(self.agent,
'check_ovs_status', 'check_ovs_status',
return_value=constants.OVS_RESTARTED),\ return_value=ovs_constants.OVS_RESTARTED),\
mock.patch.object(self.agent, mock.patch.object(self.agent,
'_agent_has_updates', '_agent_has_updates',
side_effect=TypeError('loop exit')),\ side_effect=TypeError('loop exit')),\
@ -4198,7 +4199,7 @@ class TestOvsDvrNeutronAgent(object):
def _test_scan_ports_failure(self, scan_method_name): def _test_scan_ports_failure(self, scan_method_name):
with mock.patch.object(self.agent, with mock.patch.object(self.agent,
'check_ovs_status', 'check_ovs_status',
return_value=constants.OVS_RESTARTED),\ return_value=ovs_constants.OVS_RESTARTED),\
mock.patch.object(self.agent, scan_method_name, mock.patch.object(self.agent, scan_method_name,
side_effect=TypeError('broken')),\ side_effect=TypeError('broken')),\
mock.patch.object(self.agent, '_agent_has_updates', mock.patch.object(self.agent, '_agent_has_updates',
@ -4237,7 +4238,7 @@ class TestOvsDvrNeutronAgent(object):
'physnet1': ex_br_mocks[1]} 'physnet1': ex_br_mocks[1]}
bridges_added = ['br-ex0'] bridges_added = ['br-ex0']
with mock.patch.object(self.agent, 'check_ovs_status', with mock.patch.object(self.agent, 'check_ovs_status',
return_value=constants.OVS_NORMAL), \ return_value=ovs_constants.OVS_NORMAL), \
mock.patch.object(self.agent, '_agent_has_updates', mock.patch.object(self.agent, '_agent_has_updates',
side_effect=TypeError('loop exit')), \ side_effect=TypeError('loop exit')), \
mock.patch.dict(self.agent.bridge_mappings, bridge_mappings, mock.patch.dict(self.agent.bridge_mappings, bridge_mappings,

View File

@ -19,12 +19,12 @@ import time
from unittest import mock from unittest import mock
from neutron_lib import constants as n_const from neutron_lib import constants as n_const
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log from oslo_log import log
from neutron.agent.common import ip_lib from neutron.agent.common import ip_lib
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent \ from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent \
import ovs_test_base import ovs_test_base
from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent \ from neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent \
@ -219,14 +219,14 @@ class TunnelTest(object):
mock.call.setup_default_table(), mock.call.setup_default_table(),
mock.call.port_exists('phy-%s' % self.MAP_TUN_BRIDGE), mock.call.port_exists('phy-%s' % self.MAP_TUN_BRIDGE),
mock.call.add_patch_port('phy-%s' % self.MAP_TUN_BRIDGE, mock.call.add_patch_port('phy-%s' % self.MAP_TUN_BRIDGE,
constants.NONEXISTENT_PEER), ovs_constants.NONEXISTENT_PEER),
] ]
self.mock_int_bridge_expected += [ self.mock_int_bridge_expected += [
mock.call.db_get_val('Interface', 'int-%s' % self.MAP_TUN_BRIDGE, mock.call.db_get_val('Interface', 'int-%s' % self.MAP_TUN_BRIDGE,
'type', log_errors=False), 'type', log_errors=False),
mock.call.port_exists('int-%s' % self.MAP_TUN_BRIDGE), mock.call.port_exists('int-%s' % self.MAP_TUN_BRIDGE),
mock.call.add_patch_port('int-%s' % self.MAP_TUN_BRIDGE, mock.call.add_patch_port('int-%s' % self.MAP_TUN_BRIDGE,
constants.NONEXISTENT_PEER), ovs_constants.NONEXISTENT_PEER),
mock.call.set_igmp_snooping_flood('int-%s' % self.MAP_TUN_BRIDGE, mock.call.set_igmp_snooping_flood('int-%s' % self.MAP_TUN_BRIDGE,
igmp_snooping), igmp_snooping),
] ]
@ -282,16 +282,16 @@ class TunnelTest(object):
self.mock_int_bridge_expected += [ self.mock_int_bridge_expected += [
mock.call.install_goto( mock.call.install_goto(
dest_table_id=constants.LOCAL_MAC_DIRECT, dest_table_id=ovs_constants.LOCAL_MAC_DIRECT,
in_port=self.MAP_TUN_INT_OFPORT, in_port=self.MAP_TUN_INT_OFPORT,
priority=4, table_id=constants.TRANSIENT_TABLE), priority=4, table_id=ovs_constants.TRANSIENT_TABLE),
mock.call.install_goto( mock.call.install_goto(
dest_table_id=constants.LOCAL_MAC_DIRECT, dest_table_id=ovs_constants.LOCAL_MAC_DIRECT,
in_port=self.TUN_OFPORT, in_port=self.TUN_OFPORT,
priority=4, table_id=constants.TRANSIENT_TABLE), priority=4, table_id=ovs_constants.TRANSIENT_TABLE),
mock.call.install_goto( mock.call.install_goto(
dest_table_id=constants.TRANSIENT_EGRESS_TABLE, dest_table_id=ovs_constants.TRANSIENT_EGRESS_TABLE,
table_id=constants.LOCAL_MAC_DIRECT), table_id=ovs_constants.LOCAL_MAC_DIRECT),
] ]
def _build_agent(self, **config_opts_agent): def _build_agent(self, **config_opts_agent):
@ -537,7 +537,7 @@ class TunnelTest(object):
log_errors=True), log_errors=True),
mock.call.set_db_attribute( mock.call.set_db_attribute(
'Port', VIF_PORT.port_name, 'Port', VIF_PORT.port_name,
'tag', constants.DEAD_VLAN_TAG, 'tag', ovs_constants.DEAD_VLAN_TAG,
log_errors=True), log_errors=True),
mock.call.drop_port(in_port=VIF_PORT.ofport), mock.call.drop_port(in_port=VIF_PORT.ofport),
] ]
@ -613,7 +613,7 @@ class TunnelTest(object):
# No cleanup is expected on ancillary bridge # No cleanup is expected on ancillary bridge
self.ovs_bridges[self.INT_BRIDGE].check_canary_table.return_value = \ self.ovs_bridges[self.INT_BRIDGE].check_canary_table.return_value = \
constants.OVS_NORMAL ovs_constants.OVS_NORMAL
with mock.patch.object(log.KeywordArgumentAdapter, with mock.patch.object(log.KeywordArgumentAdapter,
'exception') as log_exception,\ 'exception') as log_exception,\
mock.patch.object(self.mod_agent.OVSNeutronAgent, mock.patch.object(self.mod_agent.OVSNeutronAgent,

View File

@ -20,11 +20,10 @@ from neutron_lib.callbacks import events
from neutron_lib.callbacks import registry from neutron_lib.callbacks import registry
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import api from neutron_lib.plugins.ml2 import api
from neutron_lib.plugins.ml2 import ovs_constants as a_const
from oslo_config import cfg from oslo_config import cfg
from neutron.conf.plugins.ml2.drivers.openvswitch import mech_ovs_conf from neutron.conf.plugins.ml2.drivers.openvswitch import mech_ovs_conf
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as a_const)
from neutron.plugins.ml2.drivers.openvswitch.mech_driver import ( from neutron.plugins.ml2.drivers.openvswitch.mech_driver import (
mech_openvswitch) mech_openvswitch)
from neutron.tests.unit.plugins.ml2 import _test_mech_agent as base from neutron.tests.unit.plugins.ml2 import _test_mech_agent as base

View File

@ -16,6 +16,7 @@
from unittest import mock from unittest import mock
from neutron_lib import context from neutron_lib import context
from neutron_lib.plugins.ml2 import ovs_constants
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.api.rpc.callbacks.consumer import registry from neutron.api.rpc.callbacks.consumer import registry
@ -24,7 +25,6 @@ from neutron.api.rpc.callbacks import resources
from neutron.api.rpc.handlers import resources_rpc from neutron.api.rpc.handlers import resources_rpc
from neutron.plugins.ml2.drivers.openvswitch.agent import ( from neutron.plugins.ml2.drivers.openvswitch.agent import (
ovs_agent_extension_api as ovs_ext_api) ovs_agent_extension_api as ovs_ext_api)
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native import ( from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native import (
ovs_bridge) ovs_bridge)
from neutron.services.logapi.agent import log_extension as log_ext from neutron.services.logapi.agent import log_extension as log_ext
@ -71,7 +71,7 @@ class LoggingExtensionTestCase(LoggingExtensionBaseTestCase):
def setUp(self): def setUp(self):
super(LoggingExtensionTestCase, self).setUp() super(LoggingExtensionTestCase, self).setUp()
self.agent_ext.initialize( self.agent_ext.initialize(
self.connection, constants.EXTENSION_DRIVER_TYPE) self.connection, ovs_constants.EXTENSION_DRIVER_TYPE)
self.log_driver = mock.Mock() self.log_driver = mock.Mock()
log_driver_object = FakeLogDriver() log_driver_object = FakeLogDriver()
self.log_driver.defer_apply.side_effect = log_driver_object.defer_apply self.log_driver.defer_apply.side_effect = log_driver_object.defer_apply
@ -124,7 +124,7 @@ class LoggingExtensionInitializeTestCase(LoggingExtensionBaseTestCase):
@mock.patch.object(resources_rpc, 'ResourcesPushRpcCallback') @mock.patch.object(resources_rpc, 'ResourcesPushRpcCallback')
def test_initialize_subscribed_to_rpc(self, rpc_mock, subscribe_mock): def test_initialize_subscribed_to_rpc(self, rpc_mock, subscribe_mock):
self.agent_ext.initialize( self.agent_ext.initialize(
self.connection, constants.EXTENSION_DRIVER_TYPE) self.connection, ovs_constants.EXTENSION_DRIVER_TYPE)
self.connection.create_consumer.assert_has_calls( self.connection.create_consumer.assert_has_calls(
[mock.call( [mock.call(
resources_rpc.resource_type_versioned_topic(resource_type), resources_rpc.resource_type_versioned_topic(resource_type),

View File

@ -16,12 +16,11 @@
from unittest import mock from unittest import mock
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as ovs_consts
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.objects.logapi import logging_resource as log_object from neutron.objects.logapi import logging_resource as log_object
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \
as ovs_consts
from neutron.services.logapi.common import exceptions as log_exc from neutron.services.logapi.common import exceptions as log_exc
from neutron.services.logapi.drivers.openvswitch \ from neutron.services.logapi.drivers.openvswitch \
import ovs_firewall_log as ovsfw_log import ovs_firewall_log as ovsfw_log

View File

@ -16,10 +16,9 @@ from unittest import mock
from neutron_lib.callbacks import events from neutron_lib.callbacks import events
from neutron_lib.callbacks import registry from neutron_lib.callbacks import registry
from neutron_lib import constants from neutron_lib import constants
from neutron_lib.plugins.ml2 import ovs_constants as agent_consts
from oslo_config import cfg from oslo_config import cfg
from neutron.plugins.ml2.drivers.openvswitch.agent.common import (
constants as agent_consts)
from neutron.services.trunk.drivers.openvswitch import driver from neutron.services.trunk.drivers.openvswitch import driver
from neutron.tests import base from neutron.tests import base