Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
0
def ltemplatePreRouterStartHook():
    cc = ltemplateRtrCmd()
    tgen = get_topogen()
    logger.info("pre router-start hook")
    return True
Exemplo n.º 9
0
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