# 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
#
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:"
/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)
/sbin/ifconfig $IF up
echo -n " "$IF
done
- echo "."
+ echo
fi
if [ -n "$VCAN_IF" ] ; then
echo -n "Restarting virtual CAN interfaces:"
/sbin/ifconfig $IF up
echo -n " "$IF
done
- echo "."
+ echo
fi
;;
stop)
/sbin/ifconfig $IF down
echo -n " "$IF
done
- echo "."
+ echo
fi
if [ -n "$VCAN_IF" ] ; then
echo -n "Shutting down virtual CAN interfaces:"
/sbin/ifconfig $IF down
echo -n " "$IF
done
- echo "."
+ echo
fi
;;
*)