def bgp(self, name): r = self.addRouter(name) r.addDaemon( BGP, address_families=(_bgp.AF_INET(redistribute=('connected', )), _bgp.AF_INET6(redistribute=('connected', )))) return r
def __init__(self, node, *args, **kwargs): defaults = { 'address_families': (_bgp.AF_INET(redistribute=('connected', )), _bgp.AF_INET6(redistribute=('connected', ))) } super(BGPConfig, self).__init__(node, daemons=((BGP, defaults), ), *args, **kwargs)
def bgp(self, name, net=None): if net is None: net = [] return self.addRouter( name, use_v4=True, use_v6=True, config=( RouterConfig, { 'daemons': [( BGP, { 'address_families': (_bgp.AF_INET6(networks=net), ) } # { 'address_families': ( _bgp.AF_INET6(networks=net,redistribute=('connected',)),)} )] }))
def add_AS(self, asn, prefixes): """Add an AS in the topology, consisting of only one router. Returns the added AS, usefull to establish peering between ASes. :param asn: AS number :param prefixes: A tuple of the prefixes anounced by the AS""" try: n = int(asn) except: error("Invalid AS number: " + str(asn)) self._check_prefix(prefixes) tmp = self._addRouter_v6('as'+str(n)+'r1', config=(RouterConfig, { 'daemons': [(BGP, {'address_families': ( _bgp.AF_INET6(networks=prefixes),), 'advertisement_timer': 1, 'hold_time': 9})]})) new_as = AS(n, (tmp,)) self.addOverlay(new_as) return new_as