def METHOD_NAME(self, emulator: Emulator):
    reg = emulator.getRegistry()
    base: Base = reg.get('seedemu', 'layer', 'Base')
    for asn in base.getAsns():
        if asn in self.__masked: continue
        self._log('setting up IBGP peering for as{}...'.format(asn))
        routers: List[Node] = ScopedRegistry(str(asn), reg).getByType('rnode')
        for local in routers:
            self._log('setting up IBGP peering on as{}/{}...'.format(asn, local.getName()))
            remotes = []
            self.__dfs(local, remotes)
            n = 1
            for remote in remotes:
                if local == remote: continue
                laddr = local.getLoopbackAddress()
                raddr = remote.getLoopbackAddress()
                local.addTable('t_bgp')
                local.addTablePipe('t_bgp')
                local.addTablePipe('t_direct', 't_bgp')
                local.addProtocol('bgp', 'ibgp{}'.format(n), IbgpFileTemplates['ibgp_peer'].format(
                    localAddress = laddr,
                    peerAddress = raddr,
                    asn = asn
                ))
                n += 1
                self._log('adding peering: {} <-> {} (ibgp, as{})'.format(laddr, raddr, asn))