+++ /dev/null
-[cfg_agent]
-# (IntOpt) Interval in seconds for processing of service updates.
-# That is when the config agent's process_services() loop executes
-# and it lets each service helper to process its service resources.
-# rpc_loop_interval = 10
-
-# (StrOpt) Period-separated module path to the routing service helper class.
-# routing_svc_helper_class = neutron.plugins.cisco.cfg_agent.service_helpers.routing_svc_helper.RoutingServiceHelper
-
-# (IntOpt) Timeout value in seconds for connecting to a hosting device.
-# device_connection_timeout = 30
-
-# (IntOpt) The time in seconds until a backlogged hosting device is
-# presumed dead or booted to an error state.
-# hosting_device_dead_timeout = 300
+++ /dev/null
-[general]
-#(IntOpt) Time in seconds between renewed scheduling attempts of non-scheduled routers
-# backlog_processing_interval = 10
-
-#(StrOpt) Name of the L3 admin tenant
-# l3_admin_tenant = L3AdminTenant
-
-#(StrOpt) Name of management network for hosting device configuration
-# management_network = osn_mgmt_nw
-
-#(StrOpt) Default security group applied on management port
-# default_security_group = mgmt_sec_grp
-
-#(IntOpt) Seconds of no status update until a cfg agent is considered down
-# cfg_agent_down_time = 60
-
-#(StrOpt) Path to templates for hosting devices
-# templates_path = /opt/stack/data/neutron/cisco/templates
-
-#(StrOpt) Path to config drive files for service VM instances
-# service_vm_config_path = /opt/stack/data/neutron/cisco/config_drive
-
-#(BoolOpt) Ensure that Nova is running before attempting to create any VM
-# ensure_nova_running = True
-
-[hosting_devices]
-# Settings coupled to CSR1kv VM devices
-# -------------------------------------
-#(StrOpt) Name of Glance image for CSR1kv
-# csr1kv_image = csr1kv_openstack_img
-
-#(StrOpt) UUID of Nova flavor for CSR1kv
-# csr1kv_flavor = 621
-
-#(StrOpt) Plugging driver for CSR1kv
-# csr1kv_plugging_driver = neutron.plugins.cisco.l3.plugging_drivers.n1kv_trunking_driver.N1kvTrunkingPlugDriver
-
-#(StrOpt) Hosting device driver for CSR1kv
-# csr1kv_device_driver = neutron.plugins.cisco.l3.hosting_device_drivers.csr1kv_hd_driver.CSR1kvHostingDeviceDriver
-
-#(StrOpt) Config agent router service driver for CSR1kv
-# csr1kv_cfgagent_router_driver = neutron.plugins.cisco.cfg_agent.device_drivers.csr1kv.csr1kv_routing_driver.CSR1kvRoutingDriver
-
-#(StrOpt) Configdrive template file for CSR1kv
-# csr1kv_configdrive_template = csr1kv_cfg_template
-
-#(IntOpt) Booting time in seconds before a CSR1kv becomes operational
-# csr1kv_booting_time = 420
-
-#(StrOpt) Username to use for CSR1kv configurations
-# csr1kv_username = stack
-
-#(StrOpt) Password to use for CSR1kv configurations
-# csr1kv_password = cisco
-
-[n1kv]
-# Settings coupled to inter-working with N1kv plugin
-# --------------------------------------------------
-#(StrOpt) Name of N1kv port profile for management ports
-# management_port_profile = osn_mgmt_pp
-
-#(StrOpt) Name of N1kv port profile for T1 ports (i.e., ports carrying traffic
-# from VXLAN segmented networks).
-# t1_port_profile = osn_t1_pp
-
-#(StrOpt) Name of N1kv port profile for T2 ports (i.e., ports carrying traffic
-# from VLAN segmented networks).
-# t2_port_profile = osn_t2_pp
-
-#(StrOpt) Name of N1kv network profile for T1 networks (i.e., trunk networks
-# for VXLAN segmented traffic).
-# t1_network_profile = osn_t1_np
-
-#(StrOpt) Name of N1kv network profile for T2 networks (i.e., trunk networks
-# for VLAN segmented traffic).
-# t2_network_profile = osn_t2_np
from alembic import op
import sqlalchemy as sa
-from neutron.plugins.cisco.common import cisco_constants
-
segment_type = sa.Enum('vlan', 'overlay', 'trunk', 'multi-segment',
name='segment_type')
profile_type = sa.Enum('network', 'policy', name='profile_type')
'cisco_n1kv_profile_bindings',
sa.Column('profile_type', profile_type, nullable=True),
sa.Column('tenant_id', sa.String(length=36), nullable=False,
- server_default=cisco_constants.TENANT_ID_NOT_SET),
+ server_default='TENANT_ID_NOT_SET'),
sa.Column('profile_id', sa.String(length=36), nullable=False),
sa.PrimaryKeyConstraint('tenant_id', 'profile_id'))
'ml2_nexus_vxlan_allocations',
'ml2_nexus_vxlan_mcast_groups',
'ml2_ucsm_port_profiles',
+ 'cisco_hosting_devices',
+ 'cisco_port_mappings',
+ 'cisco_router_mappings',
]
# VMware-NSX models moved to openstack/vmware-nsx
from neutron.plugins.bigswitch.db import consistency_db # noqa
from neutron.plugins.bigswitch import routerrule_db # noqa
from neutron.plugins.brocade.db import models as brocade_models # noqa
-from neutron.plugins.cisco.db.l3 import l3_models # noqa
from neutron.plugins.ml2.drivers.brocade.db import ( # noqa
models as ml2_brocade_models)
from neutron.plugins.ml2.drivers import type_flat # noqa
+++ /dev/null
-# Copyright 2011 Cisco Systems, Inc. All rights reserved.
-#
-# 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.
-
-
-TENANT_ID_NOT_SET = 'TENANT_ID_NOT_SET'
-
-# Type and topic for Cisco cfg agent
-# ==================================
-AGENT_TYPE_CFG = 'Cisco cfg agent'
-
-# Topic for Cisco configuration agent
-CFG_AGENT = 'cisco_cfg_agent'
-# Topic for routing service helper in Cisco configuration agent
-CFG_AGENT_L3_ROUTING = 'cisco_cfg_agent_l3_routing'
+++ /dev/null
-# Copyright 2014 Cisco Systems, Inc. All rights reserved.
-#
-# 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.
-
-import sqlalchemy as sa
-from sqlalchemy import orm
-
-from neutron.db import agents_db
-from neutron.db import l3_db
-from neutron.db import model_base
-from neutron.db import models_v2
-
-
-class HostingDevice(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
- """Represents an appliance hosting Neutron router(s).
-
- When the hosting device is a Nova VM 'id' is uuid of that VM.
- """
- __tablename__ = 'cisco_hosting_devices'
-
- # complementary id to enable identification of associated Neutron resources
- complementary_id = sa.Column(sa.String(36))
- # manufacturer id of the device, e.g., its serial number
- device_id = sa.Column(sa.String(255))
- admin_state_up = sa.Column(sa.Boolean, nullable=False, default=True)
- # 'management_port_id' is the Neutron Port used for management interface
- management_port_id = sa.Column(sa.String(36),
- sa.ForeignKey('ports.id',
- ondelete="SET NULL"))
- management_port = orm.relationship(models_v2.Port)
- # 'protocol_port' is udp/tcp port of hosting device. May be empty.
- protocol_port = sa.Column(sa.Integer)
- cfg_agent_id = sa.Column(sa.String(36),
- sa.ForeignKey('agents.id'),
- nullable=True)
- cfg_agent = orm.relationship(agents_db.Agent)
- # Service VMs take time to boot so we store creation time
- # so we can give preference to older ones when scheduling
- created_at = sa.Column(sa.DateTime, nullable=False)
- status = sa.Column(sa.String(16))
-
-
-class HostedHostingPortBinding(model_base.BASEV2):
- """Represents binding of logical resource's port to its hosting port."""
- __tablename__ = 'cisco_port_mappings'
-
- logical_resource_id = sa.Column(sa.String(36), primary_key=True)
- logical_port_id = sa.Column(sa.String(36),
- sa.ForeignKey('ports.id',
- ondelete="CASCADE"),
- primary_key=True)
- logical_port = orm.relationship(
- models_v2.Port,
- primaryjoin='Port.id==HostedHostingPortBinding.logical_port_id',
- backref=orm.backref('hosting_info', cascade='all', uselist=False))
- # type of hosted port, e.g., router_interface, ..._gateway, ..._floatingip
- port_type = sa.Column(sa.String(32))
- # type of network the router port belongs to
- network_type = sa.Column(sa.String(32))
- hosting_port_id = sa.Column(sa.String(36),
- sa.ForeignKey('ports.id',
- ondelete='CASCADE'))
- hosting_port = orm.relationship(
- models_v2.Port,
- primaryjoin='Port.id==HostedHostingPortBinding.hosting_port_id')
- # VLAN tag for trunk ports
- segmentation_id = sa.Column(sa.Integer, autoincrement=False)
-
-
-class RouterHostingDeviceBinding(model_base.BASEV2):
- """Represents binding between Neutron routers and their hosting devices."""
- __tablename__ = 'cisco_router_mappings'
-
- router_id = sa.Column(sa.String(36),
- sa.ForeignKey('routers.id', ondelete='CASCADE'),
- primary_key=True)
- router = orm.relationship(
- l3_db.Router,
- backref=orm.backref('hosting_info', cascade='all', uselist=False))
- # If 'auto_schedule' is True then router is automatically scheduled
- # if it lacks a hosting device or its hosting device fails.
- auto_schedule = sa.Column(sa.Boolean, default=True, nullable=False)
- # id of hosting device hosting this router, None/NULL if unscheduled.
- hosting_device_id = sa.Column(sa.String(36),
- sa.ForeignKey('cisco_hosting_devices.id',
- ondelete='SET NULL'))
- hosting_device = orm.relationship(HostingDevice)
+++ /dev/null
-# Copyright 2015 Cisco Systems, Inc. All rights reserved.
-#
-# 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 networking_cisco.plugins.cisco.service_plugins import cisco_router_plugin
-
-
-class CiscoRouterPluginRpcCallbacks(
- cisco_router_plugin.CiscoRouterPluginRpcCallbacks):
- pass
-
-
-class CiscoRouterPlugin(cisco_router_plugin.CiscoRouterPlugin):
- pass
+++ /dev/null
-networking-cisco
etc/neutron/plugins/brocade/brocade_mlx.ini
etc/neutron/plugins/brocade/vyatta = etc/neutron/plugins/brocade/vyatta/vrouter.ini
etc/neutron/plugins/cisco =
- etc/neutron/plugins/cisco/cisco_cfg_agent.ini
- etc/neutron/plugins/cisco/cisco_router_plugin.ini
etc/neutron/plugins/cisco/cisco_vpn_agent.ini
etc/neutron/plugins/embrane = etc/neutron/plugins/embrane/heleos_conf.ini
etc/neutron/plugins/midonet = etc/neutron/plugins/midonet/midonet.ini
# The following vendor plugins are not required to confrm to the
# structural requirements.
"^plugins/brocade.*$"
- "^plugins/cisco.*$"
"^plugins/embrane.*$"
"^plugins/ibm.*$"
"^plugins/oneconvergence.*$"