Exemplo n.º 1
0
    def start(self):
        """
        Start router:
        * Load modules
        * Clean up files
        * Configure interfaces
        * Start daemons (e.g. FRR)
        * Configure daemon logging files
        """
        self.logger.debug("starting")
        nrouter = self.tgen.net[self.name]
        result = nrouter.startRouter(self.tgen)

        # Enable all daemon command logging, logging files
        # and set them to the start dir.
        for daemon, enabled in nrouter.daemons.items():
            if enabled == 0:
                continue
            self.vtysh_cmd(
                "configure terminal\nlog commands\nlog file {}.log".format(
                    daemon),
                daemon=daemon,
            )

        if result != "":
            self.tgen.set_error(result)
        else:
            # Enable MPLS processing on all interfaces.
            for interface in self.links.keys():
                set_sysctl(nrouter, "net.mpls.conf.{}.input".format(interface),
                           1)

        return result
Exemplo n.º 2
0
def setup_module(mod):
    "Sets up the pytest environment"
    tgen = Topogen(OSPFTopo, mod.__name__)
    tgen.start_topology()

    router_list = tgen.routers()
    for rname, router in router_list.items():
        router.load_config(
            TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
        )
        router.load_config(
            TopoRouter.RD_OSPF, os.path.join(CWD, "{}/ospfd.conf".format(rname))
        )

        # What is this?  OSPF Unnumbered depends on the rp_filter
        # being set appropriately( HA! )
        # Effectively we are putting different /32's on the interface
        # the multicast packet delivery is somewhat controlled by
        # the rp_filter.  Setting it to '0' allows the OS to pass
        # up the mcast packet not destined for the local routers
        # network.
        topotest.set_sysctl(tgen.net["r1"], "net.ipv4.conf.r1-eth1.rp_filter", 0)
        topotest.set_sysctl(tgen.net["r1"], "net.ipv4.conf.all.rp_filter", 0)
        topotest.set_sysctl(tgen.net["r2"], "net.ipv4.conf.r2-eth1.rp_filter", 0)
        topotest.set_sysctl(tgen.net["r2"], "net.ipv4.conf.all.rp_filter", 0)

    # Initialize all routers.
    tgen.start_router()