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