OpenStack ASR1000 plugin: Liberty
Download Devstack from the stable Liberty branch.
ASR1K Plugin and Cisco Config Agent with ASR Driver: Download the ASR code from the networking-cisco repository stable Liberty branch from https://github.com/openstack/networking-cisco
As with a typical Devstack based install, you will need an appropriate configuration file (local.conf). Things of local significance (such as the IP address of the controller etc) should be set appropriately here. Also, download the stable Liberty versions for any other projects that should be a part of the deployment.
To download the ASR1k plugin, agent and respective driver from the networking-cisco repository, run the helper scripts to install the package and setup some base Neutron resource instances the local.conf should contain:
enable_plugin networking-cisco https://github.com/openstack/networking-cisco.git master enable_service net-cisco
You will need to copy over the inject files from your local repository into the Devstack directory at the location below:
These contain some sample entries and it is important that the entries are filled in according to the deployment details (such as IP addresses of controllers etc). The corresponding .ini files are generated by the scripts which are run while stacking.
The cisco_device_manager_plugin.inject file is used for specifications for the hosting devices. Some of the key sections to be filled in are shown below:
Change the credential entries for ASR pair in the [hosting_device_credentials] section.
For example, in this sample, we are using the uuid:1 to identify the credential entry.
[cisco_hosting_device_credential:1] name="ASR credentials" description="Credential used for all ASR" user_name=admin password=<ASR admin password goes here> type=
Create the hosting device entries for each ASR in the [hosting_device] section.
[cisco_hosting_device:1] template_id=3 credentials_id=1 device_id=SN:abcdef admin_state_up=True management_ip_address=18.104.22.168 protocol_port=22 tenant_bound= auto_delete=False
[cisco_hosting_device:2] template_id=3 credentials_id=1 device_id=SN:ghijkl admin_state_up=True management_ip_address=22.214.171.124 protocol_port=22 tenant_bound= auto_delete=False
Configure the underlying port connectivity used for internal network and external network connectivity for each hosting device in the [plugging drivers] section.
[HwVLANTrunkingPlugDriver:1] internal_net_interface_1=*:Port-channel10 external_net_interface_1=*:Port-channel10
[HwVLANTrunkingPlugDriver:2] internal_net_interface_1=*:Port-channel11 external_net_interface_1=*:Port-channel11
The cisco_router_plugin.inject file is used for the specifications for each of the router types. You can also specify the default router created on a router-create in the absence of a specific router type.
Verify that the default_router_type is set to ASR1k In the [routing] section.
default_router_type = ASR1k_router
Specify the details of the router in the [router_types]. For the ASR it can be similar to the one shown below:
[cisco_router_type:3] name=ASR1k_router description="Neutron router implemented in Cisco ASR1k device" template_id=3 ha_enabled_by_default=True shared=True slot_need=2 scheduler=networking_cisco.plugins.cisco.l3.schedulers.l3_router_hosting_device_scheduler.L3RouterHostingDeviceHARandomScheduler driver=networking_cisco.plugins.cisco.l3.drivers.asr1k.asr1k_routertype_driver.ASR1kL3RouterDriver cfg_agent_service_helper=networking_cisco.plugins.cisco.cfg_agent.service_helpers.routing_svc_helper.RoutingServiceHelper cfg_agent_driver=networking_cisco.plugins.cisco.cfg_agent.device_drivers.asr1k.asr1k_routing_driver.ASR1kRoutingDriver
- policy.json changes
After the stacking, ensure that the service_plugins are set as:
service_plugins=networking_cisco.plugins.cisco.service_plugins.cisco_device_manager_plugin.CiscoDeviceManagerPlugin, networking_cisco.plugins.cisco.service_plugins.cisco_router_plugin.CiscoRouterPlugin in neutron.conf.
Ensure that the cisco_device_manager_plugin.ini and cisco_router-plugin.ini are set correctly as needed for the deployment.