def ltemplatePreRouterStartHook(): cc = ltemplateRtrCmd() tgen = get_topogen() logger.info("pre router-start hook") # check for mpls if tgen.hasmpls != True: logger.info("MPLS not available, skipping setup") return False # configure r2 mpls interfaces intfs = ["lo", "r2-eth0", "r2-eth1", "r2-eth2"] for intf in intfs: cc.doCmd(tgen, "r2", "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) # configure MPLS rtrs = ["r1", "r3", "r4"] cmds = ["echo 1 > /proc/sys/net/mpls/conf/lo/input"] for rtr in rtrs: router = tgen.gears[rtr] for cmd in cmds: cc.doCmd(tgen, rtr, cmd) intfs = ["lo", rtr + "-eth0", rtr + "-eth4"] for intf in intfs: cc.doCmd(tgen, rtr, "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) logger.info("setup mpls input") return True
def ltemplatePreRouterStartHook(): cc = ltemplateRtrCmd() tgen = get_topogen() logger.info('pre router-start hook') #check for mpls if tgen.hasmpls != True: logger.info('MPLS not available, skipping setup') return False #check for normal init if len(tgen.net) == 1: logger.info('Topology not configured, skipping setup') return False #configure r2 mpls interfaces intfs = ['lo', 'r2-eth0', 'r2-eth1', 'r2-eth2'] for intf in intfs: cc.doCmd(tgen, 'r2', 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) #configure MPLS rtrs = ['r1', 'r3', 'r4'] cmds = ['echo 1 > /proc/sys/net/mpls/conf/lo/input'] for rtr in rtrs: router = tgen.gears[rtr] for cmd in cmds: cc.doCmd(tgen, rtr, cmd) intfs = ['lo', rtr+'-eth0', rtr+'-eth4'] for intf in intfs: cc.doCmd(tgen, rtr, 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) logger.info('setup mpls input') return True
def ltemplatePreRouterStartHook(): cc = ltemplateRtrCmd() tgen = get_topogen() logger.info("pre router-start hook") # check for normal init if len(tgen.net) == 1: logger.info("Topology not configured, skipping setup") return False return True
def ltemplatePreRouterStartHook(): cc = ltemplateRtrCmd() tgen = get_topogen() logger.info('pre router-start hook') #check for normal init if len(tgen.net) == 1: logger.info('Topology not configured, skipping setup') return False return True
def ltemplatePreRouterStartHook(): global l3mdev_accept cc = ltemplateRtrCmd() krel = platform.release() tgen = get_topogen() logger.info("pre router-start hook, kernel=" + krel) if (topotest.version_cmp(krel, "4.15") >= 0 and topotest.version_cmp(krel, "4.18") <= 0): l3mdev_accept = 1 if topotest.version_cmp(krel, "5.0") >= 0: l3mdev_accept = 1 logger.info("setting net.ipv4.tcp_l3mdev_accept={}".format(l3mdev_accept)) # check for mpls if tgen.hasmpls != True: logger.info("MPLS not available, skipping setup") return False # check for normal init if len(tgen.net) == 1: logger.info("Topology not configured, skipping setup") return False # trace errors/unexpected output cc.resetCounts() # configure r2 mpls interfaces intfs = ["lo", "r2-eth0", "r2-eth1", "r2-eth2"] for intf in intfs: cc.doCmd(tgen, "r2", "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) # configure cust1 VRFs & MPLS rtrs = ["r1", "r3", "r4"] cmds = [ "ip link add {0}-cust1 type vrf table 10", "ip ru add oif {0}-cust1 table 10", "ip ru add iif {0}-cust1 table 10", "ip link set dev {0}-cust1 up", "sysctl -w net.ipv4.tcp_l3mdev_accept={}".format(l3mdev_accept), ] for rtr in rtrs: router = tgen.gears[rtr] for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, "ip link set dev {0}-eth4 master {0}-cust1".format(rtr)) intfs = [rtr + "-cust1", "lo", rtr + "-eth0", rtr + "-eth4"] for intf in intfs: cc.doCmd(tgen, rtr, "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) logger.info( "setup {0} vrf {0}-cust1, {0}-eth4. enabled mpls input.".format( rtr)) # configure cust2 VRFs & MPLS rtrs = ["r4"] cmds = [ "ip link add {0}-cust2 type vrf table 20", "ip ru add oif {0}-cust2 table 20", "ip ru add iif {0}-cust2 table 20", "ip link set dev {0}-cust2 up", ] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, "ip link set dev {0}-eth5 master {0}-cust2".format(rtr)) intfs = [rtr + "-cust2", rtr + "-eth5"] for intf in intfs: cc.doCmd(tgen, rtr, "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) logger.info( "setup {0} vrf {0}-cust2, {0}-eth5. enabled mpls input.".format( rtr)) # put ce4-eth0 into a VRF (no default instance!) rtrs = ["ce4"] cmds = [ "ip link add {0}-cust2 type vrf table 20", "ip ru add oif {0}-cust2 table 20", "ip ru add iif {0}-cust2 table 20", "ip link set dev {0}-cust2 up", "sysctl -w net.ipv4.tcp_l3mdev_accept={}".format(l3mdev_accept), ] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, "ip link set dev {0}-eth0 master {0}-cust2".format(rtr)) if cc.getOutput() != 4: InitSuccess = False logger.info( "Unexpected output seen ({} times, tests will be skipped".format( cc.getOutput())) else: InitSuccess = True logger.info("VRF config successful!") return InitSuccess
def ltemplatePreRouterStartHook(): cc = ltemplateRtrCmd() krel = platform.release() tgen = get_topogen() logger.info('pre router-start hook, kernel=' + krel) if topotest.version_cmp(krel, '4.15') == 0: l3mdev_accept = 1 else: l3mdev_accept = 0 logger.info('setting net.ipv4.tcp_l3mdev_accept={}'.format(l3mdev_accept)) #check for mpls if tgen.hasmpls != True: logger.info('MPLS not available, skipping setup') return False #check for normal init if len(tgen.net) == 1: logger.info('Topology not configured, skipping setup') return False #trace errors/unexpected output cc.resetCounts() #configure r2 mpls interfaces intfs = ['lo', 'r2-eth0', 'r2-eth1', 'r2-eth2'] for intf in intfs: cc.doCmd(tgen, 'r2', 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) #configure cust1 VRFs & MPLS rtrs = ['r1', 'r3', 'r4'] cmds = ['ip link add {0}-cust1 type vrf table 10', 'ip ru add oif {0}-cust1 table 10', 'ip ru add iif {0}-cust1 table 10', 'ip link set dev {0}-cust1 up', 'sysctl -w net.ipv4.udp_l3mdev_accept={}'.format(l3mdev_accept)] for rtr in rtrs: router = tgen.gears[rtr] for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, 'ip link set dev {0}-eth4 master {0}-cust1'.format(rtr)) intfs = [rtr+'-cust1', 'lo', rtr+'-eth0', rtr+'-eth4'] for intf in intfs: cc.doCmd(tgen, rtr, 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) logger.info('setup {0} vrf {0}-cust1, {0}-eth4. enabled mpls input.'.format(rtr)) #configure cust2 VRFs & MPLS rtrs = ['r4'] cmds = ['ip link add {0}-cust2 type vrf table 20', 'ip ru add oif {0}-cust2 table 20', 'ip ru add iif {0}-cust2 table 20', 'ip link set dev {0}-cust2 up'] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, 'ip link set dev {0}-eth5 master {0}-cust2'.format(rtr)) intfs = [rtr+'-cust2', rtr+'-eth5'] for intf in intfs: cc.doCmd(tgen, rtr, 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) logger.info('setup {0} vrf {0}-cust2, {0}-eth5. enabled mpls input.'.format(rtr)) #put ce4-eth0 into a VRF (no default instance!) rtrs = ['ce4'] cmds = ['ip link add {0}-cust2 type vrf table 20', 'ip ru add oif {0}-cust2 table 20', 'ip ru add iif {0}-cust2 table 20', 'ip link set dev {0}-cust2 up', 'sysctl -w net.ipv4.udp_l3mdev_accept={}'.format(l3mdev_accept)] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, 'ip link set dev {0}-eth0 master {0}-cust2'.format(rtr)) if cc.getOutput() != 4: InitSuccess = False logger.info('Unexpected output seen ({} times, tests will be skipped'.format(cc.getOutput())) else: InitSuccess = True logger.info('VRF config successful!') return InitSuccess
def ltemplatePreRouterStartHook(): cc = ltemplateRtrCmd() krel = platform.release() tgen = get_topogen() logger.info("pre router-start hook, kernel=" + krel) # check for mpls if tgen.hasmpls != True: logger.info("MPLS not available, skipping setup") return False # trace errors/unexpected output cc.resetCounts() # configure r2 mpls interfaces intfs = ["lo", "r2-eth0", "r2-eth1", "r2-eth2"] for intf in intfs: cc.doCmd(tgen, "r2", "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) # configure cust1 VRFs & MPLS rtrs = ["r1", "r3", "r4"] cmds = [ "ip link add {0}-cust1 type vrf table 10", "ip ru add oif {0}-cust1 table 10", "ip ru add iif {0}-cust1 table 10", "ip link set dev {0}-cust1 up", ] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, "ip link set dev {0}-eth4 master {0}-cust1".format(rtr)) intfs = [rtr + "-cust1", "lo", rtr + "-eth0", rtr + "-eth4"] for intf in intfs: cc.doCmd(tgen, rtr, "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) logger.info( "setup {0} vrf {0}-cust1, {0}-eth4. enabled mpls input.".format( rtr)) # configure cust2 VRFs & MPLS rtrs = ["r4"] cmds = [ "ip link add {0}-cust2 type vrf table 20", "ip ru add oif {0}-cust2 table 20", "ip ru add iif {0}-cust2 table 20", "ip link set dev {0}-cust2 up", ] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, "ip link set dev {0}-eth5 master {0}-cust2".format(rtr)) intfs = [rtr + "-cust2", rtr + "-eth5"] for intf in intfs: cc.doCmd(tgen, rtr, "echo 1 > /proc/sys/net/mpls/conf/{}/input".format(intf)) logger.info( "setup {0} vrf {0}-cust2, {0}-eth5. enabled mpls input.".format( rtr)) # put ce4-eth0 into a VRF (no default instance!) rtrs = ["ce4"] cmds = [ "ip link add {0}-cust2 type vrf table 20", "ip ru add oif {0}-cust2 table 20", "ip ru add iif {0}-cust2 table 20", "ip link set dev {0}-cust2 up", ] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, "ip link set dev {0}-eth0 master {0}-cust2".format(rtr)) if cc.getOutput() != 0: InitSuccess = False logger.info( "Unexpected output seen ({} times, tests will be skipped".format( cc.getOutput())) else: rtrs = ["r1", "r3", "r4", "ce4"] for rtr in rtrs: logger.info("{} configured".format(rtr)) cc.doCmd(tgen, rtr, "ip -d link show type vrf") cc.doCmd(tgen, rtr, "ip link show") InitSuccess = True logger.info("VRF config successful!") return InitSuccess
def ltemplatePreRouterStartHook(): cc = ltemplateRtrCmd() tgen = get_topogen() logger.info("pre router-start hook") return True
def ltemplatePreRouterStartHook(): global l3mdev_accept cc = ltemplateRtrCmd() krel = platform.release() tgen = get_topogen() logger.info('pre router-start hook, kernel=' + krel) if topotest.version_cmp(krel, '4.15') == 0: l3mdev_accept = 1 else: l3mdev_accept = 0 logger.info('setting net.ipv4.tcp_l3mdev_accept={}'.format(l3mdev_accept)) #check for mpls if tgen.hasmpls != True: logger.info('MPLS not available, skipping setup') return False #check for normal init if len(tgen.net) == 1: logger.info('Topology not configured, skipping setup') return False #trace errors/unexpected output cc.resetCounts() #configure r2 mpls interfaces intfs = ['lo', 'r2-eth0', 'r2-eth1', 'r2-eth2'] for intf in intfs: cc.doCmd(tgen, 'r2', 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) #configure cust1 VRFs & MPLS rtrs = ['r1', 'r3', 'r4'] cmds = ['ip link add {0}-cust1 type vrf table 10', 'ip ru add oif {0}-cust1 table 10', 'ip ru add iif {0}-cust1 table 10', 'ip link set dev {0}-cust1 up', 'sysctl -w net.ipv4.tcp_l3mdev_accept={}'.format(l3mdev_accept)] for rtr in rtrs: router = tgen.gears[rtr] for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, 'ip link set dev {0}-eth4 master {0}-cust1'.format(rtr)) intfs = [rtr+'-cust1', 'lo', rtr+'-eth0', rtr+'-eth4'] for intf in intfs: cc.doCmd(tgen, rtr, 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) logger.info('setup {0} vrf {0}-cust1, {0}-eth4. enabled mpls input.'.format(rtr)) #configure cust2 VRFs & MPLS rtrs = ['r4'] cmds = ['ip link add {0}-cust2 type vrf table 20', 'ip ru add oif {0}-cust2 table 20', 'ip ru add iif {0}-cust2 table 20', 'ip link set dev {0}-cust2 up'] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, 'ip link set dev {0}-eth5 master {0}-cust2'.format(rtr)) intfs = [rtr+'-cust2', rtr+'-eth5'] for intf in intfs: cc.doCmd(tgen, rtr, 'echo 1 > /proc/sys/net/mpls/conf/{}/input'.format(intf)) logger.info('setup {0} vrf {0}-cust2, {0}-eth5. enabled mpls input.'.format(rtr)) #put ce4-eth0 into a VRF (no default instance!) rtrs = ['ce4'] cmds = ['ip link add {0}-cust2 type vrf table 20', 'ip ru add oif {0}-cust2 table 20', 'ip ru add iif {0}-cust2 table 20', 'ip link set dev {0}-cust2 up', 'sysctl -w net.ipv4.tcp_l3mdev_accept={}'.format(l3mdev_accept)] for rtr in rtrs: for cmd in cmds: cc.doCmd(tgen, rtr, cmd.format(rtr)) cc.doCmd(tgen, rtr, 'ip link set dev {0}-eth0 master {0}-cust2'.format(rtr)) if cc.getOutput() != 4: InitSuccess = False logger.info('Unexpected output seen ({} times, tests will be skipped'.format(cc.getOutput())) else: InitSuccess = True logger.info('VRF config successful!') return InitSuccess