]> rtime.felk.cvut.cz Git - socketcan-devel.git/blobdiff - etc/can_if
Use ip(8) tool to create vcans.
[socketcan-devel.git] / etc / can_if
index 053b22a0934d29e35b0efde2934f7f0f6ffc2603..c9cda650a65a1d57ea81018c180fefa47a123a89 100755 (executable)
@@ -3,7 +3,7 @@
 # Low Level CAN Framework
 # Copyright (c) 2005 Volkswagen Group Electronic Research
 #
-# $Id: can_if,v 1.3 2006/02/08 15:24:04 hartko Exp $
+# $Id$
 #
 # Simple script to start CAN and VCAN interfaces
 #
@@ -19,18 +19,40 @@ test -x /sbin/ifconfig || exit 0
 test -x /sbin/modprobe || exit 0
 
 CAN_IF="can0 can1"
-VCAN_IF="vcan0 vcan1"
-PROBE=""
+VCAN_IF="vcan0 vcan1 vcan2 vcan3"
+PROBE="vcan"
+CREATE_VCANS="vcan0 vcan1 vcan2 vcan3"
+
+if [ -n "$CREATE_VCANS" ] ; then
+       # Exit if ip(8) tool is not installed
+       test -x /sbin/ip || exit 0
+fi
 
 case "$1" in
     start|force-reload)
+       if [ -n "$PROBE" ] ; then
+           echo -n "Extra probing CAN modules:"
+           for MODULE in $PROBE; do
+               /sbin/modprobe -q $MODULE
+               echo -n " "$MODULE
+           done
+           echo
+       fi
+       if [ -n "$CREATE_VCANS" ] ; then
+           echo -n "Creating virtual CAN interfaces:"
+           for IF in $CREATE_VCANS; do
+               /sbin/ip link add dev $IF type vcan
+               echo -n " "$IF
+           done
+           echo
+       fi
        if [ -n "$CAN_IF" ] ; then
            echo -n "Enabling CAN interfaces:"
            for IF in $CAN_IF; do
                /sbin/ifconfig $IF up
                echo -n " "$IF
            done
-           echo "."
+           echo
        fi
        if [ -n "$VCAN_IF" ] ; then
            echo -n "Enabling virtual CAN interfaces:"
@@ -38,15 +60,7 @@ case "$1" in
                /sbin/ifconfig $IF up
                echo -n " "$IF
            done
-           echo "."
-       fi
-       if [ -n "$PROBE" ] ; then
-           echo -n "Extra probing LLCF modules:"
-           for MODULE in $PROBE; do
-               /sbin/modprobe $MODULE
-               echo -n " "$MODULE
-           done
-           echo "."
+           echo
        fi
        ;;
     restart|reload)
@@ -57,7 +71,7 @@ case "$1" in
                /sbin/ifconfig $IF up
                echo -n " "$IF
            done
-           echo "."
+           echo
        fi
        if [ -n "$VCAN_IF" ] ; then
            echo -n "Restarting virtual CAN interfaces:"
@@ -66,7 +80,7 @@ case "$1" in
                /sbin/ifconfig $IF up
                echo -n " "$IF
            done
-           echo "."
+           echo
        fi
        ;;
     stop)
@@ -76,7 +90,7 @@ case "$1" in
                /sbin/ifconfig $IF down
                echo -n " "$IF
            done
-           echo "."
+           echo
        fi
        if [ -n "$VCAN_IF" ] ; then
            echo -n "Shutting down virtual CAN interfaces:"
@@ -84,7 +98,7 @@ case "$1" in
                /sbin/ifconfig $IF down
                echo -n " "$IF
            done
-           echo "."
+           echo
        fi
        ;;
     *)