Skip to content

Commit

Permalink
Merge branch 'develop' into nxos_vxlan_support
Browse files Browse the repository at this point in the history
  • Loading branch information
dbarrosop authored Mar 26, 2018
2 parents 30dc363 + 2fccdb0 commit dbe6a37
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 12 deletions.
46 changes: 34 additions & 12 deletions napalm/nxos/nxos.py
Original file line number Diff line number Diff line change
Expand Up @@ -809,17 +809,36 @@ def get_interfaces_ip(self):

for interface in ipv4_interf_table_vrf:
interface_name = py23_compat.text_type(interface.get('intf-name', ''))
address = napalm.base.helpers.ip(interface.get('prefix'))
prefix = int(interface.get('masklen', ''))
if interface_name not in interfaces_ip.keys():
interfaces_ip[interface_name] = {}
if 'ipv4' not in interfaces_ip[interface_name].keys():
interfaces_ip[interface_name]['ipv4'] = {}
if address not in interfaces_ip[interface_name].get('ipv4'):
interfaces_ip[interface_name]['ipv4'][address] = {}
interfaces_ip[interface_name]['ipv4'][address].update({
'prefix_length': prefix
})
addr_str = interface.get('prefix')
unnumbered = py23_compat.text_type(interface.get('unnum-intf', ''))
if addr_str:
address = napalm.base.helpers.ip(addr_str)
prefix = int(interface.get('masklen', ''))
if interface_name not in interfaces_ip.keys():
interfaces_ip[interface_name] = {}
if 'ipv4' not in interfaces_ip[interface_name].keys():
interfaces_ip[interface_name]['ipv4'] = {}
if address not in interfaces_ip[interface_name].get('ipv4'):
interfaces_ip[interface_name]['ipv4'][address] = {}
interfaces_ip[interface_name]['ipv4'][address].update({
'prefix_length': prefix
})
elif unnumbered:
for interf in ipv4_interf_table_vrf:
interf_name = py23_compat.text_type(interf.get('intf-name', ''))
if interf_name == unnumbered:
address = napalm.base.helpers.ip(interf.get('prefix'))
prefix = int(interf.get('masklen', ''))
if interface_name not in interfaces_ip.keys():
interfaces_ip[interface_name] = {}
if 'ipv4' not in interfaces_ip[interface_name].keys():
interfaces_ip[interface_name]['ipv4'] = {}
if address not in interfaces_ip[interface_name].get('ipv4'):
interfaces_ip[interface_name]['ipv4'][address] = {}
interfaces_ip[interface_name]['ipv4'][address].update({
'prefix_length': prefix
})

secondary_addresses = interface.get('TABLE_secondary_address', {})\
.get('ROW_secondary_address', [])
if type(secondary_addresses) is dict:
Expand All @@ -840,7 +859,10 @@ def get_interfaces_ip(self):

for interface in ipv6_interf_table_vrf:
interface_name = py23_compat.text_type(interface.get('intf-name', ''))
address = napalm.base.helpers.ip(interface.get('addr', '').split('/')[0])
addr_str = interface.get('addr', '').split('/')[0]
if not addr_str:
continue
address = napalm.base.helpers.ip(addr_str)
prefix = interface.get('prefix', '').split('/')[-1]
if prefix:
prefix = int(interface.get('prefix', '').split('/')[-1])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
"prefix_length": 24
}
}
},
"Ethernet1/2": {
"ipv4": {
"192.168.1.100": {
"prefix_length": 24
}
}
},
"Ethernet1/7": {
"ipv6": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,30 @@
"urpf-mode": "none",
"ip-ls-type": "none"
}
}, {
"ROW_intf": {
"intf-name": "Ethernet1/2",
"proto-state": "up",
"link-state": "up",
"admin-state": "up",
"iod": "5",
"num-addr": "0",
"ip-disabled": "FALSE",
"num-maddr": "0",
"mtu": "1500",
"pref": "0",
"tag": "0",
"proxy-arp": "disabled",
"lcl-proxy-arp": "disabled",
"mrouting": "disabled",
"icmp-redirect": "enabled",
"dir-bcast": "disabled",
"ip-unreach": "disabled",
"port-unreach": "enabled",
"urpf-mode": "none",
"ip-ls-type": "none",
"unnum-intf": "loopback101"
}
}, {
"ROW_intf": {
"intf-name": "Ethernet2/5",
Expand Down

0 comments on commit dbe6a37

Please sign in to comment.