def setup_module(module): tgen = Topogen(BGPECMPTopo1, module.__name__) tgen.start_topology() # Starting Routers router_list = tgen.routers() for rname, router in router_list.iteritems(): router.load_config( TopoRouter.RD_ZEBRA, os.path.join(CWD, '{}/zebra.conf'.format(rname)) ) router.load_config( TopoRouter.RD_BGP, os.path.join(CWD, '{}/bgpd.conf'.format(rname)) ) router.start() # Starting Hosts and init ExaBGP on each of them topotest.sleep(10, 'starting BGP on all {} peers'.format(total_ebgp_peers)) peer_list = tgen.exabgp_peers() for pname, peer in peer_list.iteritems(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, 'exabgp.env') peer.start(peer_dir, env_file) logger.info(pname)
def setup_module(mod): "Sets up the pytest environment" tgen = Topogen(build_topo, mod.__name__) tgen.start_topology() # For all registered routers, load the zebra configuration file for rname, router in tgen.routers().items(): router.run("/bin/bash {}/setup_vrfs".format(CWD)) router.load_config( TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) ) router.load_config( TopoRouter.RD_STATIC, os.path.join(CWD, "{}/staticd.conf".format(rname)) ) router.load_config( TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname)) ) # After loading the configurations, this function loads configured daemons. tgen.start_router() # Start up exabgp peers peers = tgen.exabgp_peers() for peer in peers: fifo_in = "/var/run/exabgp_{}.in".format(peer) if os.path.exists(fifo_in): os.remove(fifo_in) os.mkfifo(fifo_in, 0o777) logger.info("Starting ExaBGP on peer {}".format(peer)) peer_dir = os.path.join(CWD, peer) env_file = os.path.join(CWD, "exabgp.env") peers[peer].start(peer_dir, env_file)
def setup_module(module): tgen = Topogen(BGPVRFNETNSTopo1, module.__name__) tgen.start_topology() # Get r1 reference router = tgen.gears['r1'] # check for zebra capability if CustomizeVrfWithNetns == True: if router.check_capability(TopoRouter.RD_ZEBRA, '--vrfwnetns') == False: return pytest.skip( 'Skipping BGP VRF NETNS Test. VRF NETNS backend not available on FRR' ) if os.system('ip netns list') != 0: return pytest.skip( 'Skipping BGP VRF NETNS Test. NETNS not available on System') # retrieve VRF backend kind if CustomizeVrfWithNetns == True: logger.info('Testing with VRF Namespace support') # create VRF r1-cust1 # move r1-eth0 to VRF r1-cust1 cmds = [ 'if [ -e /var/run/netns/{0}-cust1 ] ; then ip netns del {0}-cust1 ; fi', 'ip netns add {0}-cust1', 'ip link set dev {0}-eth0 netns {0}-cust1', 'ip netns exec {0}-cust1 ifconfig {0}-eth0 up' ] for cmd in cmds: cmd = cmd.format('r1') logger.info('cmd: ' + cmd) output = router.run(cmd.format('r1')) if output != None and len(output) > 0: logger.info( 'Aborting due to unexpected output: cmd="{}" output=\n{}'. format(cmd, output)) return pytest.skip( 'Skipping BGP VRF NETNS Test. Unexpected output to command: ' + cmd) #run daemons router.load_config(TopoRouter.RD_ZEBRA, os.path.join(CWD, '{}/zebra.conf'.format('r1')), '--vrfwnetns') router.load_config(TopoRouter.RD_BGP, os.path.join(CWD, '{}/bgpd.conf'.format('r1'))) logger.info('Launching BGP and ZEBRA') # BGP and ZEBRA start without underlying VRF router.start() # Starting Hosts and init ExaBGP on each of them logger.info('starting exaBGP on peer1') peer_list = tgen.exabgp_peers() for pname, peer in peer_list.iteritems(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, 'exabgp.env') logger.info('Running ExaBGP peer') peer.start(peer_dir, env_file) logger.info(pname)
def setup_module(module): tgen = Topogen(BGPVRFNETNSTopo1, module.__name__) tgen.start_topology() # Get r1 reference router = tgen.gears['r1'] # check for zebra capability if CustomizeVrfWithNetns == True: if router.check_capability( TopoRouter.RD_ZEBRA, '--vrfwnetns' ) == False: return pytest.skip('Skipping BGP VRF NETNS Test. VRF NETNS backend not available on FRR') if os.system('ip netns list') != 0: return pytest.skip('Skipping BGP VRF NETNS Test. NETNS not available on System') # retrieve VRF backend kind if CustomizeVrfWithNetns == True: logger.info('Testing with VRF Namespace support') # create VRF r1-cust1 # move r1-eth0 to VRF r1-cust1 cmds = ['if [ -e /var/run/netns/{0}-cust1 ] ; then ip netns del {0}-cust1 ; fi', 'ip netns add {0}-cust1', 'ip link set dev {0}-eth0 netns {0}-cust1', 'ip netns exec {0}-cust1 ifconfig {0}-eth0 up'] for cmd in cmds: cmd = cmd.format('r1') logger.info('cmd: '+cmd); output = router.run(cmd.format('r1')) if output != None and len(output) > 0: logger.info('Aborting due to unexpected output: cmd="{}" output=\n{}'.format(cmd, output)) return pytest.skip('Skipping BGP VRF NETNS Test. Unexpected output to command: '+cmd) #run daemons router.load_config( TopoRouter.RD_ZEBRA, os.path.join(CWD, '{}/zebra.conf'.format('r1')), '--vrfwnetns' ) router.load_config( TopoRouter.RD_BGP, os.path.join(CWD, '{}/bgpd.conf'.format('r1')) ) logger.info('Launching BGP and ZEBRA') # BGP and ZEBRA start without underlying VRF router.start() # Starting Hosts and init ExaBGP on each of them logger.info('starting exaBGP on peer1') peer_list = tgen.exabgp_peers() for pname, peer in peer_list.iteritems(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, 'exabgp.env') logger.info('Running ExaBGP peer') peer.start(peer_dir, env_file) logger.info(pname)
def setup_module(module): tgen = Topogen(build_topo, module.__name__) tgen.start_topology() # Get r1 reference router = tgen.gears["r1"] # check for zebra capability if CustomizeVrfWithNetns == True: if router.check_capability(TopoRouter.RD_ZEBRA, "--vrfwnetns") == False: return pytest.skip( "Skipping BGP VRF NETNS Test. VRF NETNS backend not available on FRR" ) if os.system("ip netns list") != 0: return pytest.skip( "Skipping BGP VRF NETNS Test. NETNS not available on System") # retrieve VRF backend kind if CustomizeVrfWithNetns == True: logger.info("Testing with VRF Namespace support") # create VRF r1-bgp-cust1 # move r1-eth0 to VRF r1-bgp-cust1 ns = "{}-bgp-cust1".format("r1") router.net.add_netns(ns) router.net.set_intf_netns("r1-eth0", ns, up=True) # run daemons router.load_config( TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format("r1")), "--vrfwnetns", ) router.load_config(TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format("r1"))) logger.info("Launching BGP and ZEBRA") # BGP and ZEBRA start without underlying VRF router.start() # Starting Hosts and init ExaBGP on each of them logger.info("starting exaBGP on peer1") peer_list = tgen.exabgp_peers() for pname, peer in peer_list.items(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, "exabgp.env") logger.info("Running ExaBGP peer") peer.start(peer_dir, env_file) logger.info(pname)
def setup_module(module): thisDir = os.path.dirname(os.path.realpath(__file__)) tgen = Topogen(build_topo, module.__name__) tgen.start_topology() # Starting Routers router = tgen.net["r1"] router.loadConf("zebra", "%s/r1/zebra.conf" % thisDir) router.loadConf("bgpd", "%s/r1/bgpd.conf" % thisDir) tgen.gears["r1"].start() # Starting PE Hosts and init ExaBGP on each of them peer_list = tgen.exabgp_peers() for pname, peer in peer_list.items(): peer_dir = os.path.join(thisDir, pname) env_file = os.path.join(thisDir, "exabgp.env") peer.start(peer_dir, env_file)
def setup_module(module): tgen = Topogen(TemplateTopo, module.__name__) tgen.start_topology() router = tgen.gears['r1'] router.load_config(TopoRouter.RD_ZEBRA, os.path.join(CWD, '{}/zebra.conf'.format('r1'))) router.load_config(TopoRouter.RD_BGP, os.path.join(CWD, '{}/bgpd.conf'.format('r1'))) router.start() logger.info('starting exaBGP on peer1') peer_list = tgen.exabgp_peers() for pname, peer in peer_list.iteritems(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, 'exabgp.env') logger.info('Running ExaBGP peer') peer.start(peer_dir, env_file) logger.info(pname)
def setup_module(module): tgen = Topogen(build_topo, module.__name__) tgen.start_topology() router = tgen.gears["r1"] router.load_config(TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format("r1"))) router.load_config(TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format("r1"))) router.start() logger.info("starting exaBGP on peer1") peer_list = tgen.exabgp_peers() for pname, peer in peer_list.items(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, "exabgp.env") logger.info("Running ExaBGP peer") peer.start(peer_dir, env_file) logger.info(pname)
def setup_module(module): tgen = Topogen(BGPECMPTopo1, module.__name__) tgen.start_topology() # Starting Routers router_list = tgen.routers() for rname, router in router_list.iteritems(): router.load_config(TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))) router.load_config(TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))) router.start() # Starting Hosts and init ExaBGP on each of them topotest.sleep(10, "starting BGP on all {} peers".format(total_ebgp_peers)) peer_list = tgen.exabgp_peers() for pname, peer in peer_list.iteritems(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, "exabgp.env") peer.start(peer_dir, env_file) logger.info(pname)
def setup_module(module): tgen = Topogen(BGPFLOWSPECTopo1, module.__name__) tgen.start_topology() # check for zebra capability router = tgen.gears["r1"] # Get r1 reference and run Daemons logger.info("Launching BGP and ZEBRA on r1") router = tgen.gears["r1"] router.load_config(TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format("r1"))) router.load_config(TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format("r1"))) router.start() peer_list = tgen.exabgp_peers() for pname, peer in peer_list.iteritems(): peer_dir = os.path.join(CWD, pname) env_file = os.path.join(CWD, "exabgp.env") peer.start(peer_dir, env_file) logger.info(pname)