Ejemplo n.º 1
0
function add_tunnel($mode, $type, $devnam, $inf, $remote, $local, $mtu)
{
    /* Prepare the remote/local commands. */
    if ($remote != "") {
        $rcmd = " remote " . $remote;
    }
    if ($local != "") {
        $lcmd = " local " . $local;
    }
    /* add the tunnel. */
    if ($mode == "6IN4" || $mode == "6TO4" || $mode == "6RD") {
        echo "ip tunnel add " . $devnam . " mode sit ttl 128" . $rcmd . $lcmd . "\n";
    } else {
        if ($mode == "TSP") {
            if ($type == "v6v4") {
                echo "ip tunnel add " . $devnam . " mode sit ttl 64" . $rcmd . $lcmd . "\n";
            } else {
                echo "ip tuntap add " . $devnam . " mode tun\n";
            }
        } else {
            return "";
        }
    }
    if ($mode == "6RD") {
        $p = XNODE_getpathbytarget("/runtime", "inf", "uid", $inf, 0);
        $ipaddr = query($p . "/inet/ipv6/ipv6in4/rd/ipaddr");
        $prefix = query($p . "/inet/ipv6/ipv6in4/rd/prefix");
        $v4mask = query($p . "/inet/ipv6/ipv6in4/rd/v4mask");
        $hubspoke = query($p . "/inet/ipv6/ipv6in4/rd/hubspokemode");
        $networkid = ipv4networkid($local, $v4mask);
        if ($v4mask != "0") {
            $rpcmd = " 6rd-relay_prefix " . $networkid . "/" . $v4mask;
        } else {
            $rpcmd = "";
        }
        if ($hubspoke != "1") {
            echo "ip tunnel 6rd dev " . $devnam . " 6rd-prefix " . $ipaddr . "/" . $prefix . $rpcmd . "\n";
        }
    }
    /* Enable IPv6 on the tunnel device. */
    if ($mtu != "") {
        echo "ip link set " . $devnam . " mtu " . $mtu . "\n";
    }
    echo "ip link set " . $devnam . " up\n";
    echo "echo 0 > /proc/sys/net/ipv6/conf/" . $devnam . "/disable_ipv6\n";
    $uid = "TUN." . $inf;
    $p = PHYINF_setup($uid, "tunnel", $devnam);
    set($p . "/tunnel/mode", $mode);
    set($p . "/tunnel/type", $type);
    set($p . "/tunnel/remote", $remote);
    set($p . "/tunnel/local", $local);
    return $uid;
}
Ejemplo n.º 2
0
  */
 $up = fread("", "/var/run/BAND5G-1.1.UP");
 if ($i == 2 && $active == 1 && $up == "") {
     startcmd("ip link set " . devname('BAND5G-1.1') . " up");
     startcmd("ip link set " . devname('BAND5G-1.1') . " down");
 }
 $down = fread("", "/var/run/" . $uid . ".DOWN");
 $down += 0;
 if ($down == "1") {
     startcmd("# " . $uid . " has been shutdown.");
 } else {
     if ($active != 1) {
         startcmd("# " . $uid . " is inactive!");
     } else {
         startcmd("# " . $uid . ", dev=" . $dev);
         PHYINF_setup($uid, "wifi", $dev);
         $brdev = find_brdev($uid);
         //	startcmd("ip link set ".$dev." up");
         /* bring up guestzone bridge */
         if (isguestzone($uid) == "1") {
             startcmd("ip link set " . $brdev . " up");
         }
         startcmd("ifconfig " . $dev . " txqueuelen 250");
         if ($brdev != "") {
             startcmd("brctl addif " . $brdev . " " . $dev);
         }
         startcmd("phpsh /etc/scripts/wifirnodes.php UID=" . $uid);
         /* +++ upwifistats */
         startcmd("xmldbc -P /etc/services/WIFI/updatewifistats.php -V PHY_UID=" . $uid . " > /var/run/restart_upwifistats_5g.sh;");
         startcmd("phpsh /var/run/restart_upwifistats_5g.sh");
         /* --- upwifistats */
Ejemplo n.º 3
0
<?php 
/* $IFNAME, $DEVICE, $SPEED, $IP, $REMOTE, $PARAM */
include "/htdocs/phplib/trace.php";
include "/htdocs/phplib/xnode.php";
include "/htdocs/phplib/phyinf.php";
$infp = XNODE_getpathbytarget("", "inf", "uid", $PARAM, 0);
if ($infp == "") {
    exit;
}
$inet = query($infp . "/inet");
if ($inet == "") {
    exit;
}
$defaultroute = query($infp . "/defaultroute");
/* create phyinf */
PHYINF_setup("PPP." . $PARAM, "ppp", $IFNAME);
$inetp = XNODE_getpathbytarget("/inet", "entry", "uid", $inet, 0);
/* create inf */
$stsp = XNODE_getpathbytarget("/runtime", "inf", "uid", $PARAM, 1);
$mtu = query($stsp . "/pppd/mtu");
del($stsp . "/inet");
set($stsp . "/inet/uid", $inet);
set($stsp . "/inet/addrtype", "ppp4");
set($stsp . "/inet/uptime", query("/runtime/device/uptime"));
set($stsp . "/inet/ppp4/valid", "1");
set($stsp . "/inet/ppp4/mtu", $mtu);
set($stsp . "/inet/ppp4/local", $IP);
set($stsp . "/inet/ppp4/peer", $REMOTE);
set($stsp . "/nativephyinf", query($infp . "/phyinf"));
set($stsp . "/phyinf", "PPP." . $PARAM);
set($stsp . "/defaultroute", $defaultroute);
Ejemplo n.º 4
0
function layout_router($mode)
{
    SHELL_info($START, "LAYOUT: Start router layout ...");
    $Wan_index_number = query("/device/router/wanindex");
    /* Start .......................................................................... */
    /* Config RTL8367 as router mode layout. (1 WAN + 4 LAN) */
    setup_switch("router");
    //+++ hendry, for wifi topology
    $p = XNODE_getpathbytarget("", "phyinf", "uid", "ETH-1", 0);
    set($p . "/bridge/ports/entry:1/uid", "MBR-1");
    set($p . "/bridge/ports/entry:1/phyinf", "BAND24G-1.1");
    set($p . "/bridge/ports/entry:2/uid", "MBR-2");
    set($p . "/bridge/ports/entry:2/phyinf", "BAND5G-1.1");
    $p = XNODE_getpathbytarget("", "phyinf", "uid", "ETH-2", 0);
    set($p . "/bridge/ports/entry:1/uid", "MBR-1");
    set($p . "/bridge/ports/entry:1/phyinf", "BAND24G-1.2");
    set($p . "/bridge/ports/entry:2/uid", "MBR-2");
    set($p . "/bridge/ports/entry:2/phyinf", "BAND5G-1.2");
    //--- hendry
    /* Setup MAC address */
    $wanmac = PHYINF_getmacsetting("WAN-1");
    $lanmac = PHYINF_getmacsetting("LAN-1");
    setup_vlaninf("eth2", "1", $lanmac);
    setup_vlaninf("eth2", "2", $wanmac);
    /* set smaller tx queue len */
    startcmd("ifconfig eth2 txqueuelen 200");
    /* Create bridge interface. */
    startcmd("brctl addbr br0; brctl stp br0 off; brctl setfd br0 0");
    startcmd("brctl addif br0 eth2.1");
    //startcmd("brctl addif br0 wifig0");
    //startcmd("brctl addif br0 wifig0.1");
    startcmd("ip link set br0 up");
    if ($mode == "1W2L") {
        startcmd("brctl addbr br1; brctl stp br1 off; brctl setfd br1 0");
        //hendry, we let guestzone to bring br1 up
        //startcmd("ip link set br1 up");;
    }
    /* Setup the runtime nodes. */
    if ($mode == "1W1L") {
        PHYINF_setup("ETH-1", "eth", "br0");
        PHYINF_setup("ETH-2", "eth", "eth2.2");
        /* set Service Alias */
        startcmd('service PHYINF.ETH-1 alias PHYINF.LAN-1');
        startcmd('service PHYINF.ETH-2 alias PHYINF.WAN-1');
        /* WAN: set extension nodes for linkstatus */
        $path = XNODE_getpathbytarget("/runtime", "phyinf", "uid", "ETH-2", 0);
        startcmd('xmldbc -x ' . $path . '/linkstatus "get:psts -i ' . $Wan_index_number . '"');
    } else {
        if ($mode == "1W2L") {
            PHYINF_setup("ETH-1", "eth", "br0");
            PHYINF_setup("ETH-2", "eth", "br1");
            PHYINF_setup("ETH-3", "eth", "eth2.2");
            /* set Service Alias */
            startcmd('service PHYINF.ETH-1 alias PHYINF.LAN-1');
            startcmd('service PHYINF.ETH-2 alias PHYINF.LAN-2');
            startcmd('service PHYINF.ETH-3 alias PHYINF.WAN-1');
            /* WAN: set extension nodes for linkstatus */
            $path = XNODE_getpathbytarget("/runtime", "phyinf", "uid", "ETH-3", 0);
            startcmd('xmldbc -x ' . $path . '/linkstatus "get:psts -i ' . $Wan_index_number . '"');
        }
    }
    //+++ hendry
    $p = XNODE_getpathbytarget("/runtime", "phyinf", "uid", "ETH-1", 0);
    add($p . "/bridge/port", "BAND24G-1.1");
    add($p . "/bridge/port", "BAND5G-1.1");
    $p = XNODE_getpathbytarget("/runtime", "phyinf", "uid", "ETH-2", 0);
    add($p . "/bridge/port", "BAND24G-1.2");
    add($p . "/bridge/port", "BAND5G-1.2");
    //--- hendry
    /* LAN: set extension nodes for linkstatus */
    $path = XNODE_getpathbytarget("/runtime", "phyinf", "uid", "ETH-1", 0);
    startcmd('xmldbc -x ' . $path . '/linkstatus:1 "get:psts -i 4"');
    startcmd('xmldbc -x ' . $path . '/linkstatus:2 "get:psts -i 3"');
    startcmd('xmldbc -x ' . $path . '/linkstatus:3 "get:psts -i 2"');
    startcmd('xmldbc -x ' . $path . '/linkstatus:4 "get:psts -i 1"');
    /* Done */
    startcmd("xmldbc -s /runtime/device/layout router");
    startcmd("xmldbc -s /runtime/device/router/mode " . $mode);
    startcmd("usockc /var/gpio_ctrl ROUTER");
    startcmd("service PHYINF.ETH-1 start");
    startcmd("service PHYINF.ETH-2 start");
    if ($mode == "1W2L") {
        startcmd("service PHYINF.ETH-3 start");
    }
    /* Stop ........................................................................... */
    SHELL_info($STOP, "LAYOUT: Stop router layout ...");
    if ($mode == "1W2L") {
        stopcmd("service PHYINF.ETH-3 stop");
        stopcmd('service PHYINF.LAN-2 delete');
    }
    stopcmd("service PHYINF.ETH-2 stop");
    stopcmd("service PHYINF.ETH-1 stop");
    stopcmd('service PHYINF.WAN-1 delete');
    stopcmd('service PHYINF.LAN-1 delete');
    stopcmd('xmldbc -s /runtime/device/layout ""');
    stopcmd('/etc/scripts/delpathbytarget.sh /runtime phyinf uid ETH-1');
    stopcmd('/etc/scripts/delpathbytarget.sh /runtime phyinf uid ETH-2');
    stopcmd('/etc/scripts/delpathbytarget.sh /runtime phyinf uid ETH-3');
    //stopcmd('brctl delif br0 wifig0');
    stopcmd('brctl delif br0 eth2.1');
    //stopcmd('brctl delif br1 wifig0.1');
    stopcmd('ip link set eth2.1 down');
    stopcmd('ip link set eth2.2 down');
    stopcmd('brctl delbr br0; brctl delbr br1');
    stopcmd('vconfig rem eth2.1; vconfig rem eth2.2');
    return 0;
}