clean_interfaces in asr1k_cfg_syncer fails due to HA assumption
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
networking-cisco |
New
|
Low
|
Leon Zachery |
Bug Description
Environment: RDO
Version: Ocata-3
Networking-Cisco: 5.3.0
Device: Cisco ASR 1001 (Standalone)
Version: 03.16.06.S
In my environment, I have the following router type defined:
[root@rdo02-ocata ~(keystone_admin)]# neutron cisco-router-
+------
| Field | Value |
+------
| cfg_agent_driver | networking_
| cfg_agent_
| description | Neutron router implemented in Cisco ASR1k device |
| driver | networking_
| ha_enabled_
| id | 00000000-
| name | ASR1k_router |
| project_id | c39ec022ee8b4b8
| scheduler | networking_
| shared | True |
| slot_need | 2 |
| template_id | 00000000-
| tenant_id | c39ec022ee8b4b8
+------
I used Neutron to configure a VLAN-based tenant network, VLAN-based external network, and a router object. The driver appeared to configure all necessary objects on the ASR without much trouble. The interface for the tenant network was configured like so:
interface GigabitEthernet
description OPENSTACK_
encapsulation dot1Q 794
vrf forwarding nrouter-93dce6
ip address 172.16.0.1 255.255.255.0
ip nat inside
The interface for the external network was configured like so (HSRP is questionable since HA is False, but that may be another bug):
interface GigabitEthernet
description OPENSTACK_
encapsulation dot1Q 70
ip address 192.168.70.5 255.255.255.0
ip nat outside
standby delay minimum 30 reload 60
standby version 2
standby 1064 ip 192.168.70.9
standby 1064 timers 1 3
standby 1064 name neutron-
Upon creating a second router and attaching the respective interfaces with the Neutron CLI, it was observed that nothing was built on the ASR. The neutron-
2017-12-22 11:56:51.073 28115 INFO networking_
2017-12-22 11:56:51.073 28115 INFO networking_
2017-12-22 11:56:51.073 28115 INFO networking_
2017-12-22 11:56:51.073 28115 INFO networking_
2017-12-22 11:56:51.074 28115 INFO networking_
2017-12-22 11:56:51.074 28115 INFO networking_
2017-12-22 11:56:51.074 28115 INFO networking_
2017-12-22 11:56:51.074 28115 INFO networking_
2017-12-22 11:56:51.074 28115 INFO networking_
2017-12-22 11:56:51.075 28115 INFO networking_
2017-12-22 11:56:51.075 28115 INFO networking_
2017-12-22 11:56:51.075 28115 INFO networking_
2017-12-22 11:56:51.075 28115 INFO ncclient.
2017-12-22 11:56:51.345 28115 INFO networking_
nat overload rule: <LineItem 'ip nat inside source list neutron_
2017-12-22 11:56:51.347 28115 INFO networking_
NAT pool: <LineItem 'ip nat pool nrouter-
2017-12-22 11:56:51.349 28115 INFO networking_
default route: <LineItem 'ip route vrf nrouter-93dce6 0.0.0.0 0.0.0.0 GigabitEthernet
2017-12-22 11:56:51.349 28115 INFO networking_
2017-12-22 11:56:51.351 28115 INFO networking_
acl: <LineItem 'ip access-list standard neutron_
2017-12-22 11:56:51.351 28115 INFO networking_
2017-12-22 11:56:51.352 28115 INFO networking_
2017-12-22 11:56:51.352 28115 INFO networking_
2017-12-22 11:56:51.355 28115 INFO networking_
2017-12-22 11:56:51.355 28115 INFO networking_
2017-12-22 11:56:51.356 28115 INFO networking_
2017-12-22 11:56:51.356 28115 INFO networking_
2017-12-22 11:56:51.357 28115 INFO networking_
2017-12-22 11:56:51.357 28115 INFO networking_
2017-12-22 11:56:51.357 28115 INFO networking_
2017-12-22 11:56:51.358 28115 INFO networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
2017-12-22 11:56:51.358 28115 ERROR networking_
The offending code snippet is here:
In line 1271, a check is already being done to test the interface for HA_INFO. Setting correct_grp_num within that if statement may be a viable workaround.
Please let me know if you need any additional information.
summary: |
- clean_interfaces in asr1k_cfg_syncer fails due to HSRP assumption + clean_interfaces in asr1k_cfg_syncer fails due to HA assumption |
tags: | added: asr1k |
Changed in networking-cisco: | |
assignee: | nobody → Leon Zachery (lzachery) |
Ignore my recommendation - didn't realize that test was being done within an else block for internal interfaces only. I just added a simple test to get it working for both external/internal:
if (ha.HA_INFO in db_intf): intf[ha. HA_INFO] ['group' ])
correct_grp_num = int(db_