OSDN Git Service

Bridge driver's building in
authorNIWA Hideyuki <niwa.niwa@nifty.ne.jp>
Wed, 6 Apr 2016 06:24:53 +0000 (15:24 +0900)
committerNIWA Hideyuki <niwa.niwa@nifty.ne.jp>
Wed, 6 Apr 2016 06:24:53 +0000 (15:24 +0900)
src/Makefile
src/subcmd/br-add
src/subcmd/br-del
src/subcmd/br-info
src/subcmd/bridge-name [new file with mode: 0755]
src/subcmd/net-add
src/subcmd/net-del
src/subcmd/net-info
src/subcmd/net-nic-add
src/subcmd/net-nic-del
src/subcmd/set-bridge [new file with mode: 0755]

index 432354f..d7c69de 100644 (file)
@@ -24,6 +24,7 @@ install-subcmd :
        mkdir -p $(DESTDIR)$(libdir)/fulcon/sbin
        install -m 755 cmd/fulcond $(DESTDIR)$(libdir)/fulcon/sbin/fulcond
        install -m 755 subcmd/default-image $(DESTDIR)$(libdir)/fulcon/sbin/default-image
+       install -m 755 subcmd/bridge-name $(DESTDIR)$(libdir)/fulcon/sbin/bridge-name
        install -m 755 subcmd/driver-name $(DESTDIR)$(libdir)/fulcon/sbin/driver-name
        install -m 755 subcmd/list $(DESTDIR)$(libdir)/fulcon/sbin/list
        install -m 755 subcmd/sysgen $(DESTDIR)$(libdir)/fulcon/sbin/sysgen
@@ -53,6 +54,7 @@ install-subcmd :
        install -m 755 subcmd/add-user $(DESTDIR)$(libdir)/fulcon/sbin/add-user
        install -m 755 subcmd/del-user $(DESTDIR)$(libdir)/fulcon/sbin/del-user
        install -m 755 subcmd/set-passwd $(DESTDIR)$(libdir)/fulcon/sbin/set-passwd
+       install -m 755 subcmd/set-bridge $(DESTDIR)$(libdir)/fulcon/sbin/set-bridge
        install -m 755 subcmd/set-driver $(DESTDIR)$(libdir)/fulcon/sbin/set-driver
        install -m 755 subcmd/image-catalog $(DESTDIR)$(libdir)/fulcon/sbin/image-catalog
        install -m 755 subcmd/ls-image $(DESTDIR)$(libdir)/fulcon/sbin/ls-image
@@ -161,6 +163,12 @@ install-driver-docker : install-dockerfile
        install -m 755 driver/docker/fulcon-ip $(DESTDIR)$(libdir)/fulcon/driver/docker/fulcon-ip
        install -m 755 driver/docker/fulcon-status $(DESTDIR)$(libdir)/fulcon/driver/docker/fulcon-status
        install -m 755 driver/docker/find-id $(DESTDIR)$(libdir)/fulcon/driver/docker/find-id
+       mkdir -p $(DESTDIR)$(libdir)/fulcon/driver/LinuxBridge
+       install -m 755 driver/LinuxBridge/br-addbr $(DESTDIR)$(libdir)/fulcon/driver/LinuxBridge/br-addbr
+       install -m 755 driver/LinuxBridge/br-delbr $(DESTDIR)$(libdir)/fulcon/driver/LinuxBridge/br-delbr
+       install -m 755 driver/LinuxBridge/br-addif $(DESTDIR)$(libdir)/fulcon/driver/LinuxBridge/br-addif
+       install -m 755 driver/LinuxBridge/br-delif $(DESTDIR)$(libdir)/fulcon/driver/LinuxBridge/br-delif
+       install -m 755 driver/LinuxBridge/br-show $(DESTDIR)$(libdir)/fulcon/driver/LinuxBridge/br-show
 
 install-dockerfile :
        mkdir -p $(DESTDIR)/$(localstatedir)/lib/fulcon/driver/dockerfile
index e1d5baa..4798a95 100755 (executable)
@@ -3,7 +3,9 @@
 # Copyright (C) 2015-2016 NIWA Hideyuki
 
 FULCONDRIVER=`fulcon driver-name`
-PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+
 
 usage()
 {
@@ -61,9 +63,9 @@ if [ x"$NETDEV" != x"" ]; then
 fi
 
 # check a exist bridge
-brctl show | grep fulcon${BRNO} >& /dev/null
+br-show | grep fulcon${BRNO} >& /dev/null
 if [ $? -eq 1 ]; then
-       brctl addbr fulcon$BRNO
+       br-addbr fulcon$BRNO
        ip link set fulcon$BRNO up
        echo "generated new BRIDGE : fulcon"$BRNO
 else
@@ -73,7 +75,7 @@ fi
 # set ip address for bridge, add interface to net_device
 ip addr add $IPMASK dev fulcon$BRNO
 if [ x"$NETDEV" != x"" ]; then
-       brctl addif fulcon$BRNO $NETDEV
+       br-addif fulcon$BRNO $NETDEV
 
        # set promisc mode to net_device
        ip addr del $IPMASK dev $NETDEV
index b7de0dd..b673631 100755 (executable)
@@ -3,7 +3,8 @@
 # Copyright (C) 2015-2016 NIWA Hideyuki
 
 FULCONDRIVER=`fulcon driver-name`
-PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
 
 usage()
 {
@@ -27,13 +28,13 @@ if [ $? -ne 0 ]; then
 fi
 
 # delete all interface
-for i in `brctl show $BRNO | awk 'NR>1{print $NF}'`
+for i in `br-show $BRNO | awk 'NR>1{print $NF}'`
 do
-       brctl delif $BRNO $i
+       br-delif $BRNO $i
 done
 
 # delete bridge
 ip link set $BRNO down
-brctl delbr $BRNO
+br-delbr $BRNO
 
 
index 03f7338..d163aaf 100755 (executable)
@@ -1,5 +1,8 @@
 #!/bin/bash
 
+FULCONDRIVER=`fulcon driver-name`
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
 
 # Copyright (C) 2015 NIWA Hideyuki
 
@@ -18,17 +21,17 @@ if [ $# -eq 1 -a x"$1" != x"br-info" ]; then
        exit -1
 fi
 
-for i in `brctl show | egrep fulcon | awk '{print $1}' `
+for i in `br-show | egrep fulcon | awk '{print $1}' `
 do
-       N=`brctl show $i | awk '($1=="'$i'"){print NF}'`
+       N=`br-show $i | awk '($1=="'$i'"){print NF}'`
        if [ $N -eq 4 ]; then
                ip a show $i
                echo
-               brctl show $i
+               br-show $i
                echo
        else
                ip link set $i down
-               brctl delbr $i
+               br-delbr $i
        fi
 done
 
diff --git a/src/subcmd/bridge-name b/src/subcmd/bridge-name
new file mode 100755 (executable)
index 0000000..2a4bcd0
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Copyright (C) 2015 NIWA Hideyuki
+
+FULCONDIR=/var/lib/fulcon
+
+umask 022
+
+usage()
+{
+       echo "usage: bridge-name"
+}
+
+if [ $# -ne 1 -o x"$1" != x"bridge-name" ]; then
+       usage
+       exit -1
+fi
+
+head -n 1 $FULCONDIR/default-bridge
+
index 1cec13e..216b4e0 100755 (executable)
@@ -5,7 +5,8 @@
 FULCONDIR=/var/lib/fulcon
 
 FULCONDRIVER=`fulcon driver-name`
-PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
 
 umask 022
 
@@ -64,16 +65,16 @@ if [ x"`ip a show $NETDEV | egrep "inet " | awk '{print $2}'`" == x"" ]; then
 fi
 
 # check unnecessary bridges
-for i in `brctl show | egrep fulcon | awk '(NF==3){print $1}'`
+for i in `br-show | egrep fulcon | awk '(NF==3){print $1}'`
 do
        ip link set $i down
-       brctl delbr $i
+       br-delbr $i
 done
 
 RBR=0
 BRNO=0
 BNO=0
-for i in `brctl show | egrep fulcon | awk '{print $1}'`
+for i in `br-show | egrep fulcon | awk '{print $1}'`
 do
        BIP=`ip a show $i | awk '$1=="inet"{print $2}'`
        BIP=`net-ipv4 -g $BIP`
@@ -139,15 +140,15 @@ setup_network()
 
        ip link set ${LXCNAME}_${NUM} up
 
-       brctl show $LXCBR |& egrep 'No such device' >& /dev/null
+       br-show $LXCBR |& egrep 'No such device' >& /dev/null
        if [ $? -eq 0 ]; then
-               brctl addbr $LXCBR
+               br-addbr $LXCBR
                ip link set $LXCBR up
                BR_BRCAST=`net-ipv4 -b ${LXCBRIP}/${LXCMASK}`
                ip addr add ${LXCBRIP}/${LXCMASK} broadcast $BR_BRCAST dev $LXCBR
                ip link set $LXCBR promisc on
        fi
-       brctl addif $LXCBR ${LXCNAME}_${NUM} >& /dev/null
+       br-addif $LXCBR ${LXCNAME}_${NUM} >& /dev/null
 
        # setting up of IP address
        LXCFBROADCAST=`net-ipv4 -b "${LXCIP}/${LXCMASK}"`
@@ -197,9 +198,9 @@ setup_network()
                ip addr add 0.0.0.0 dev $NETDEV >& /dev/null
                ip link set $NETDEV promisc on
 
-               brctl show $LXCBR | egrep -w $NETDEV >& /dev/null
+               br-show $LXCBR | egrep -w $NETDEV >& /dev/null
                if [ $? -ne 0 ]; then
-                       brctl addif $LXCBR $NETDEV 
+                       br-addif $LXCBR $NETDEV 
                fi
        fi
 
index dde6519..32c5be2 100755 (executable)
@@ -3,7 +3,8 @@
 # Copyright (C) 2015-2016 NIWA Hideyuki
 
 FULCONDRIVER=`fulcon driver-name`
-PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
 
 FULCONDIR=/var/lib/fulcon
 
@@ -36,14 +37,14 @@ network_delete()
        rm -f $FULCONDIR/container/${LXCNAME}/net/${LXCNAME}_${NUM}
 
        # check bridges
-       for i in `brctl show | egrep fulcon | awk '(NF==3){print $1}'`
+       for i in `br-show | egrep fulcon | awk '(NF==3){print $1}'`
        do
                ip link set $i down
-               brctl delbr $i
+               br-delbr $i
        done
 }
 
-brctl show  |& egrep ${LXCNAME}_${NUM} >& /dev/null
+br-show  |& egrep ${LXCNAME}_${NUM} >& /dev/null
 if [ $? -eq 0 ]; then
        network_delete
 fi
index fc38439..c81eab6 100755 (executable)
@@ -3,7 +3,8 @@
 # Copyright (C) 2015 NIWA Hideyuki
 
 FULCONDRIVER=`fulcon driver-name`
-PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
 FULCONDIR=/var/lib/fulcon
 
 usage()
index 3625a94..72010c4 100755 (executable)
@@ -3,7 +3,8 @@
 # Copyright (C) 2016 NIWA Hideyuki
 
 FULCONDRIVER=`fulcon driver-name`
-PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
 FULCONDIR=/var/lib/fulcon
 
 usage()
@@ -32,7 +33,7 @@ if [ $? -ne 0 ]; then
        exit -1
 fi
 
-if [ x"`brctl show | egrep $NETDEV | awk '{print $NF}'`" == x"$NETDEV" ]; then
+if [ x"`br-show | egrep $NETDEV | awk '{print $NF}'`" == x"$NETDEV" ]; then
        echo "error: $NETDEV has already been allocated in the bridge. "
        exit -1
 fi
@@ -58,7 +59,7 @@ BRNO="-1"
 IPMASK=`ip a show $NETDEV | egrep "inet " | awk '{print $2}'`
 IPG=`net-ipv4 -g $IPMASK`
 # 
-for i in `brctl show | egrep fulcon | awk '{print $1}'`
+for i in `br-show | egrep fulcon | awk '{print $1}'`
 do
        BIP=`ip a show $i | egrep "inet " | awk '{print $2}'`
        BIPG=`net-ipv4 -g $BIP`
@@ -79,7 +80,7 @@ if [ $BRNO -eq -1 ]; then
                fi
                BRNO=`expr $BRNO + 1`
        done
-       brctl addbr fulcon$BRNO
+       br-addbr fulcon$BRNO
        ip link set fulcon$BRNO up
        echo "generated new BRIDGE : fulcon"$BRNO
 fi
@@ -96,7 +97,7 @@ done
 
 # set ip address for bridge, add interface to net_device
 ip addr add $IPMASK dev fulcon$BRNO
-brctl addif fulcon$BRNO $NETDEV
+br-addif fulcon$BRNO $NETDEV
 
 # set BR MAC
 #MAC=`ip addr show fulcon$BRNO | egrep link/ether | awk '{print $2}' | awk -F : '{printf "52:54:00:%2s:%2s:%2s",$4,$5,$6}'`
index 37376db..63a33c6 100755 (executable)
@@ -3,7 +3,8 @@
 # Copyright (C) 2016 NIWA Hideyuki
 
 FULCONDRIVER=`fulcon driver-name`
-PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
+BRIDGEDRIVER=`fulcon bridge-name`
+PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
 FULCONDIR=/var/lib/fulcon
 
 usage()
@@ -23,9 +24,9 @@ fi
 NETDEV=$1
 
 FLG=0
-for i in `brctl show | egrep fulcon | awk '{print $1}'`
+for i in `br-show | egrep fulcon | awk '{print $1}'`
 do
-       if [ x"`brctl show $i | egrep $NETDEV`" != x"" ]; then
+       if [ x"`br-show $i | egrep $NETDEV`" != x"" ]; then
                # reset MAC
                #MAC=`ip addr show $i | egrep link/ether | awk '{print $2}'`
                #ip link set $NETDEV address $MAC
@@ -35,13 +36,13 @@ do
                #ip addr add $IP dev $NETDEV
 
                # delete nic
-               brctl delif $i $NETDEV >& /dev/null
+               br-delif $i $NETDEV >& /dev/null
 
-               brctl show | egrep $i | awk '{exit(NF)}'
+               br-show | egrep $i | awk '{exit(NF)}'
                if [ $? -lt 4 ]; then
                        # delete br
                        ip link set $i down
-                       brctl delbr $i
+                       br-delbr $i
                fi
 
                FLG=1
diff --git a/src/subcmd/set-bridge b/src/subcmd/set-bridge
new file mode 100755 (executable)
index 0000000..9a68856
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+DRIVERNAME=$1
+
+if [ x"$DRIVERNAME" != x"LinuxBridge" -a x"$DRIVERNAME" != x"OpenvSwitch" ]; then
+       echo "error: unsupported bridge driver:" $DIRVERNAME
+       exit -1
+fi
+
+echo  $DRIVERNAME > /var/lib/fulcon/default-bridge
+echo "default bridge driver :" $DRIVERNAME
+