]> git.pld-linux.org Git - projects/rc-scripts.git/blob - sysconfig/network-scripts/tnlup
- now realy handle ifup <dev>
[projects/rc-scripts.git] / sysconfig / network-scripts / tnlup
1 #!/bin/sh
2 #
3 #       $Id: tnlup,v 1.14 1999/11/06 00:23:54 wiget Exp $
4 #
5 # Author: Arkadiusz Mi¶kiewicz <misiek@pld.org.pl>
6 #
7
8 DEV=$1
9
10 [ -z "$DEV" ] && {
11     echo "usage: tnlup <device name>" >&2
12     exit 1
13 }
14
15 . /etc/sysconfig/network-scripts/.functions
16 . /etc/sysconfig/network
17
18 TNLCONFIGS="`ls /etc/sysconfig/interfaces/tnlcfg-*|egrep -v '~$'`"
19 TNLCONFIGS="`egrep -L '^#!' $TNLCONFIGS`"
20 CONFIG="`egrep -l "DEVICE=[\"\']*$DEV[\"\']*\$" $TNLCONFIGS`"
21
22 if [ -z "$CONFIG" ]; then
23     CONFIG="$DEV"
24 fi
25
26 if false; then
27 [ -f "/etc/sysconfig/interfaces/$CONFIG" ] || CONFIG=tnlcfg-$CONFIG
28 [ -f "/etc/sysconfig/interfaces/$CONFIG" ] || {
29     echo "usage: tnlup <device name>" >&2
30     exit 1
31 }
32 fi
33
34 source_config
35
36 if [ "foo$2" = "fooboot" -a "${ONBOOT}" = "no" ]
37 then
38         exit
39 fi
40
41 if [ "${IPV6_TUNNELCONFIG}" != "yes" ] && [ "${MODE}" = "sit" ] || \
42    [ "${IPX}" != "yes" ] && [ "${MODE}" = "ipxip" ] || \
43    [ "${IPX}" != "yes" ] && [ "${MODE}" = "ipipx" ]
44 then
45         exit
46 fi
47
48 if [ "${MODE}" = "gre" ] && [ "`ls -R /lib/modules/\`uname -r\`/ | grep ip_gre.o`" != "" ]; then
49         modprobe -s -k ip_gre
50 elif [ "${MODE}" = "ipip" ] && [ "`ls -R /lib/modules/\`uname -r\`/ | grep ipip.o`" != "" ]; then
51         modprobe -s -k ipip
52 fi
53
54 [ -z "${LOCALADDR}" ] && LOCALADDR=any
55 [ -z "${REMOTEADDR}" ] && REMOTEADDR=any
56 [ -n "${TTL}" ] && TTL="ttl ${TTL}"
57 [ -n "${TOS}" ] && TOS="tos ${TOS}"
58 [ -n "${BIND_DEV}" ] && BIND_DEV="dev ${BIND_DEV}"
59
60 if [ "${SEQ}" = "yes" ]; then
61         SEQ=seq
62 else
63         [ "${ISEQ}" = "yes" ] && SEQ=iseq
64         [ "${OSEQ}" = "yes" ] && SEQ="${SEQ} oseq"
65 fi
66
67 if [ "${CSUM}" = "yes" ]; then
68         CSUM=csum
69 else
70         [ "${ICSUM}" = "yes" ] && CSUM=icsum
71         [ "${ICSUM}" = "yes" ] && CSUM="${SEQ} ocsum"
72 fi
73
74 [ "${ISEQ}" = "yes" ] && ISEQ=iseq
75 [ "${ISEQ}" = "yes" ] && ISEQ=iseq
76 [ "${ISEQ}" = "yes" ] && ISEQ=iseq
77 [ "${ISEQ}" = "yes" ] && ISEQ=iseq
78
79 [ "${TTL}" != "0" -a "${TTL}" != "inherit" ] && PMTUDISC=yes
80
81 if [ "${PMTUDISC}" = "yes" ]; then
82         PMTUDISC=pmtudisc
83 elif [ "${PMTUDISC}" = "no" ]; then
84         PMTUDISC=nopmtudisc
85 fi
86
87 if [ -n "${KEY}" ]; then
88 IKEY=""
89 OKEY=""
90 fi
91
92 if [ "${MODE}" = "ipip" ] || [ "${MODE}" = "sit" ]; then
93         
94         ip tunnel add ${DEVICE} mode ${MODE} local ${LOCALADDR} remote ${REMOTEADDR} ${TTL} ${TOS} ${PMTUDISC} ${BIND_DEV}
95
96 elif [ "${MODE}" = "gre" ]; then
97
98         ip tunnel add ${DEVICE} mode ${MODE} local ${LOCALADDR} remote ${REMOTEADDR} ${TTL} ${TOS} ${PMTUDISC} ${BIND_DEV} ${CSUM} ${ISEQ} ${KEY} ${IKEY} ${OKEY}
99
100 elif [ "${MODE}" = "ipxip" ] || [ "${MODE}" = "ipipx" ]; then
101
102 echo "obs³uga ipxip jeszcze nie zrobiona"
103
104 fi
This page took 0.052774 seconds and 3 git commands to generate.