3 # Copyright (C) 2015-2016 NIWA Hideyuki
5 FULCONDRIVER=`fulcon driver-name`
6 PATH=/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
10 echo "usage: br-add BRIDGE_NUMBER ( IPADDR/MASK | NET_DEVICE )"
19 if [ $BRNO -eq 0 ]; then
20 echo "error: fulcon0 is booked"
22 elif [ $BRNO -lt 0 ]; then
23 echo "error: Negative value : $BRNO"
27 ip a show fulcon$BRNO >& /dev/null
29 echo "error: Overlapping bridge : fulcon$BRNO"
33 net-ipv4 $2 >& /dev/null
39 ip a show $NETDEV >& /dev/null
41 echo "error: can't" $NETDEV "does not exist"
44 IPMASK=`ip a show $NETDEV | awk 'NR==3{print $2}'`
47 # check a BRIDGE_NUMBER
48 expr "$BRNO" + 1 >& /dev/null
50 echo "error: BRIDGE_NUMBER is not a integer"
55 if [ x"$NETDEV" != x"" ]; then
56 ip a show $NETDEV >& /dev/null
58 echo "error: can't find a NET_DEVICE:" $NETDEV
63 # check a exist bridge
64 brctl show | grep fulcon${BRNO} >& /dev/null
66 brctl addbr fulcon$BRNO
67 ip link set fulcon$BRNO up
68 echo "generated new BRIDGE : fulcon"$BRNO
70 echo "error: already exists same bridge:" fulcon$BRNO
73 # set ip address for bridge, add interface to net_device
74 ip addr add $IPMASK dev fulcon$BRNO
75 if [ x"$NETDEV" != x"" ]; then
76 brctl addif fulcon$BRNO $NETDEV
78 # set promisc mode to net_device
79 ip addr del $IPMASK dev $NETDEV
80 ip addr add 0.0.0.0 dev $NETDEV