38 lines
		
	
	
		
			729 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			729 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | #!/bin/sh | ||
|  | # | ||
|  | # Split default route into 8 smaller routes to avoid | ||
|  | # lock contention during route lookup | ||
|  | # | ||
|  | # If a default router is not specified, it will be  | ||
|  | # taken from rc.conf. | ||
|  | # | ||
|  | 
 | ||
|  | ROUTECMD="/sbin/route -q " | ||
|  | ROUTES="0.0.0.0/3 32.0.0.0/3 64.0.0.0/3 96.0.0.0/3 128.0.0.0/3 160.0.0.0/3 192.0.0.0/3 224.0.0.0/3" | ||
|  | 
 | ||
|  | if [ $# -lt 1 ]; then | ||
|  | 	echo "syntax: $0 [start|stop]" | ||
|  | 	exit 1 | ||
|  | fi | ||
|  | 
 | ||
|  | case $1 in | ||
|  | 	start) | ||
|  | 		GW=`sysrc -n defaultrouter` | ||
|  | 		echo "splitgateway: Assuming ${GW} from rc.conf..." | ||
|  | 
 | ||
|  | 		for R in ${ROUTES}; do | ||
|  | 			${ROUTECMD} add -net ${R} ${GW} | ||
|  | 		done | ||
|  | 		;; | ||
|  | 	stop) | ||
|  | 		for R in ${ROUTES}; do | ||
|  | 			${ROUTECMD} delete -net ${R} | ||
|  | 		done | ||
|  | 		;; | ||
|  | esac | ||
|  | 
 | ||
|  | 
 | ||
|  | # no need to remove default route since it will never be matched | ||
|  | #${ROUTECMD} delete default | ||
|  | 
 |