This patch introduces changes to the L2 agent, whereby the L2 agent relies on a DVR component that takes care of the port wiring and the management of tunnels in face of topology changes due to the life cycles or VM's as well as the life cycles of distributed virtual routers. Support for DVR needs to be explicitly enabled. Default behavior remains unchanged. Partially-implements: blueprint neutron-ovs-dvr Change-Id: If75225898a6f0aeea8b0300b711ca7e01f6b4f9a
71 lines
2.0 KiB
Python
71 lines
2.0 KiB
Python
# Copyright (c) 2012 OpenStack Foundation.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from neutron.plugins.common import constants as p_const
|
|
|
|
|
|
# Special vlan_id value in ovs_vlan_allocations table indicating flat network
|
|
FLAT_VLAN_ID = -1
|
|
|
|
# Topic for tunnel notifications between the plugin and agent
|
|
TUNNEL = 'tunnel'
|
|
|
|
# Values for network_type
|
|
VXLAN_UDP_PORT = 4789
|
|
|
|
# Name prefixes for veth device or patch port pair linking the integration
|
|
# bridge with the physical bridge for a physical network
|
|
PEER_INTEGRATION_PREFIX = 'int-'
|
|
PEER_PHYSICAL_PREFIX = 'phy-'
|
|
|
|
# Nonexistent peer used to create patch ports without associating them, it
|
|
# allows to define flows before association
|
|
NONEXISTENT_PEER = 'nonexistent-peer'
|
|
|
|
# The different types of tunnels
|
|
TUNNEL_NETWORK_TYPES = [p_const.TYPE_GRE, p_const.TYPE_VXLAN]
|
|
|
|
# Various tables for DVR use of integration bridge flows
|
|
LOCAL_SWITCHING = 0
|
|
DVR_TO_SRC_MAC = 1
|
|
|
|
# Various tables for tunneling flows
|
|
DVR_PROCESS = 1
|
|
PATCH_LV_TO_TUN = 2
|
|
GRE_TUN_TO_LV = 3
|
|
VXLAN_TUN_TO_LV = 4
|
|
DVR_NOT_LEARN = 9
|
|
LEARN_FROM_TUN = 10
|
|
UCAST_TO_TUN = 20
|
|
ARP_RESPONDER = 21
|
|
FLOOD_TO_TUN = 22
|
|
|
|
# Tables for integration bridge
|
|
# Table 0 is used for forwarding.
|
|
CANARY_TABLE = 23
|
|
|
|
# Map tunnel types to tables number
|
|
TUN_TABLE = {p_const.TYPE_GRE: GRE_TUN_TO_LV,
|
|
p_const.TYPE_VXLAN: VXLAN_TUN_TO_LV}
|
|
|
|
# The default respawn interval for the ovsdb monitor
|
|
DEFAULT_OVSDBMON_RESPAWN = 30
|
|
|
|
# Special return value for an invalid OVS ofport
|
|
INVALID_OFPORT = '-1'
|
|
|
|
# Represent invalid OF Port
|
|
OFPORT_INVALID = -1
|