summaryrefslogtreecommitdiff
path: root/test/NMLoadModules
blob: 0dc6a486cc39bd2a49c53b75701bc9b7ddc62884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#! /bin/bash
# Load kernel modules for all network devices

CWD=`pwd`
cd /etc/sysconfig/network-scripts

# find all the interfaces besides loopback.
# ignore aliases, alternative configurations, and editor backup files
interfaces=`ls ifcfg* | LANG=C egrep -v '(ifcfg-lo|:|rpmsave|rpmorig|rpmnew)' | \
	    LANG=C egrep -v '(~|\.bak)$' | \
            LANG=C egrep 'ifcfg-[A-Za-z0-9\._-]+$' | \
            sed 's/^ifcfg-//g' |
            sed 's/[0-9]/ &/' | LANG=C sort -k 1,1 -k 2n | sed 's/ //'`

# bring up all other interfaces configured to come up at boot time
for i in $interfaces; do
	eval $(LANG=C fgrep "DEVICE=" ifcfg-$i)
	eval $(LANG=C fgrep "TYPE=" ifcfg-$i)
	eval $(LANG=C fgrep "SLAVE=" ifcfg-$i)
	eval $(LANG=C fgrep "BRIDGE=" ifcfg-$i)
		
	if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi

	if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
		unset DEVICE TYPE SLAVE BRIDGE
		continue
	fi

	if [ "$TYPE" = "xDSL" ]; then
		unset DEVICE TYPE SLAVE BRIDGE
		continue
	fi
		
	if [ -n "$BRIDGE" ]; then
		unset DEVICE TYPE SLAVE BRIDGE
		continue
	fi

	if [ "${DEVICE%%.*}" != "$DEVICE" ] ; then
		unset DEVICE TYPE SLAVE BRIDGE
		continue
	fi
		
	if [ "$SLAVE" = "yes" ]; then
		unset DEVICE TYPE SLAVE BRIDGE
		continue
	fi
	unset DEVICE TYPE SLAVE BRIDGE

	# Load the module
	LC_ALL= LANG= /sbin/ip -o link | grep -q $i
	if [ "$?" = "1" ]; then
		alias=`modprobe -c | awk "/^(alias|install)[[:space:]]+$i[[:space:]]/ { print \\$3 }"`
		if [ -n "$alias" -a "$alias" != "off" -a "$alias" != "/bin/true" ]; then
			modprobe $alias > /dev/null 2>&1
		fi
	fi
	continue
done

exit 0