xref: /dragonfly/etc/rc.d/routing (revision 650094e1)
1#!/bin/sh
2#
3# Configure routing and miscellaneous network tunables
4#
5# $FreeBSD: src/etc/rc.d/routing,v 1.138 2003/06/29 17:59:09 mtm Exp $
6# $DragonFly: src/etc/rc.d/routing,v 1.3 2005/11/19 21:47:32 swildner Exp $
7#
8
9# PROVIDE: routing
10# REQUIRE: netif ppp-user
11
12. /etc/rc.subr
13
14name="routing"
15start_cmd="routing_start"
16stop_cmd="routing_stop"
17extra_commands="options static change"
18static_cmd="static_start"
19change_cmd="change_start"
20options_cmd="options_start"
21
22routing_start()
23{
24	static_start
25	change_start
26	options_start
27}
28
29routing_stop()
30{
31	route -n flush
32}
33
34static_start()
35{
36	case ${defaultrouter} in
37	[Nn][Oo] | '')
38		;;
39	*)
40		static_routes="default ${static_routes}"
41		route_default="default ${defaultrouter}"
42		;;
43	esac
44
45	# Setup static routes. This should be done before router discovery.
46	#
47	if [ -n "${static_routes}" ]; then
48		for i in ${static_routes}; do
49			eval route_args=\$route_${i}
50			route add ${route_args}
51		done
52	fi
53}
54
55change_start()
56{
57	# Change routes. This should be done before router discovery.
58	#
59	if [ -n "${change_routes}" ]; then
60		for i in ${change_routes}; do
61			eval route_args=\$change_route_${i}
62			route change ${route_args}
63		done
64	fi
65}
66
67options_start()
68{
69	echo -n 'Additional routing options:'
70	case ${tcp_extensions} in
71	[Yy][Ee][Ss] | '')
72		;;
73	*)
74		echo -n ' tcp extensions=NO'
75		sysctl net.inet.tcp.rfc1323=0 >/dev/null
76		;;
77	esac
78
79	case ${icmp_bmcastecho} in
80	[Yy][Ee][Ss])
81		echo -n ' broadcast ping responses=YES'
82		sysctl net.inet.icmp.bmcastecho=1 >/dev/null
83		;;
84	esac
85
86	case ${icmp_drop_redirect} in
87	[Yy][Ee][Ss])
88		echo -n ' ignore ICMP redirect=YES'
89		sysctl net.inet.icmp.drop_redirect=1 >/dev/null
90		;;
91	esac
92
93	case ${icmp_log_redirect} in
94	[Yy][Ee][Ss])
95		echo -n ' log ICMP redirect=YES'
96		sysctl net.inet.icmp.log_redirect=1 >/dev/null
97		;;
98	esac
99
100	case ${gateway_enable} in
101	[Yy][Ee][Ss])
102		echo -n ' IP gateway=YES'
103		sysctl net.inet.ip.forwarding=1 >/dev/null
104		;;
105	esac
106
107	case ${forward_sourceroute} in
108	[Yy][Ee][Ss])
109		echo -n ' do source routing=YES'
110		sysctl net.inet.ip.sourceroute=1 >/dev/null
111		;;
112	esac
113
114	case ${accept_sourceroute} in
115	[Yy][Ee][Ss])
116		echo -n ' accept source routing=YES'
117		sysctl net.inet.ip.accept_sourceroute=1 >/dev/null
118		;;
119	esac
120
121	case ${tcp_keepalive} in
122	[Nn][Oo])
123		echo -n ' TCP keepalive=NO'
124		sysctl net.inet.tcp.always_keepalive=0 >/dev/null
125		;;
126	esac
127
128	case ${tcp_drop_synfin} in
129	[Yy][Ee][Ss])
130		echo -n ' drop SYN+FIN packets=YES'
131		sysctl net.inet.tcp.drop_synfin=1 >/dev/null
132		;;
133	esac
134
135	case ${ipxgateway_enable} in
136	[Yy][Ee][Ss])
137		echo -n ' IPX gateway=YES'
138		sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
139		;;
140	esac
141
142	case ${arpproxy_all} in
143	[Yy][Ee][Ss])
144		echo -n ' ARP proxyall=YES'
145		sysctl net.link.ether.inet.proxyall=1 >/dev/null
146		;;
147	esac
148
149	case ${ip_portrange_first} in
150	[Nn][Oo] | '')
151		;;
152	*)
153		echo -n " ip_portrange_first=$ip_portrange_first"
154		sysctl net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
155		;;
156	esac
157
158	case ${ip_portrange_last} in
159	[Nn][Oo] | '')
160		;;
161	*)
162		echo -n " ip_portrange_last=$ip_portrange_last"
163		sysctl net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
164		;;
165	esac
166
167	echo '.'
168}
169
170load_rc_config $name
171run_rc_command "$1"
172