initial changes towards removing ipaddress and using netaddr

This commit is contained in:
Blake Harnden 2020-01-07 14:08:29 -08:00
parent 93ce2a3755
commit f431254e15
10 changed files with 47 additions and 67 deletions

View file

@ -1,11 +1,11 @@
"""
quagga.py: defines routing services provided by Quagga.
"""
import netaddr
from core import constants
from core.emane.nodes import EmaneNet
from core.emulator.enumerations import LinkTypes
from core.nodes import ipaddress
from core.nodes.network import PtpNet, WlanNode
from core.nodes.physical import Rj45Node
from core.services.coreservices import CoreService
@ -82,7 +82,7 @@ class Zebra(CoreService):
if want_ipv4:
ipv4list = filter(
lambda x: ipaddress.is_ipv4_address(x.split("/")[0]), ifc.addrlist
lambda x: netaddr.valid_ipv4(x.split("/")[0]), ifc.addrlist
)
cfg += " "
cfg += "\n ".join(map(cls.addrstr, ipv4list))
@ -90,7 +90,7 @@ class Zebra(CoreService):
cfg += cfgv4
if want_ipv6:
ipv6list = filter(
lambda x: ipaddress.is_ipv6_address(x.split("/")[0]), ifc.addrlist
lambda x: netaddr.valid_ipv6(x.split("/")[0]), ifc.addrlist
)
cfg += " "
cfg += "\n ".join(map(cls.addrstr, ipv6list))
@ -110,9 +110,9 @@ class Zebra(CoreService):
helper for mapping IP addresses to zebra config statements
"""
addr = x.split("/")[0]
if ipaddress.is_ipv4_address(addr):
if netaddr.valid_ipv4(addr):
return "ip address %s" % x
elif ipaddress.is_ipv6_address(addr):
elif netaddr.valid_ipv6(addr):
return "ipv6 address %s" % x
else:
raise ValueError("invalid address: %s", x)
@ -257,7 +257,7 @@ class QuaggaService(CoreService):
continue
for a in ifc.addrlist:
a = a.split("/")[0]
if ipaddress.is_ipv4_address(a):
if netaddr.valid_ipv4(a):
return a
# raise ValueError, "no IPv4 address found for router ID"
return "0.0.0.0"
@ -341,28 +341,14 @@ class Ospfv2(QuaggaService):
continue
for a in ifc.addrlist:
addr = a.split("/")[0]
if ipaddress.is_ipv4_address(addr):
net = ipaddress.Ipv4Prefix(a)
cfg += " network %s area 0\n" % net
if netaddr.valid_ipv4(addr):
cfg += " network %s area 0\n" % a
cfg += "!\n"
return cfg
@classmethod
def generatequaggaifcconfig(cls, node, ifc):
return cls.mtucheck(ifc)
# cfg = cls.mtucheck(ifc)
# external RJ45 connections will use default OSPF timers
# if cls.rj45check(ifc):
# return cfg
# cfg += cls.ptpcheck(ifc)
# return cfg + """\
# ip ospf hello-interval 2
# ip ospf dead-interval 6
# ip ospf retransmit-interval 5
# """
class Ospfv3(QuaggaService):