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