52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # IBM(c) 2011 EPL license http://www.eclipse.org/legal/epl-v10.html
 | |
| 
 | |
| #-------------------------------------------------------------------------------
 | |
| #=head1  setroute [add]
 | |
| #        [add] - The operation to manipulate the route entry. It is optional. 
 | |
| #            The default is 'replace' if ignoring it.
 | |
| #        
 | |
| #=head2  setrout command replaces/adds the routes to the node according to 
 | |
| #        what is specified in the xCAT tables. 
 | |
| #        The route name for the node is defined in noderes.routenames.
 | |
| #        The route itself is defined in the routes table.
 | |
| #=cut
 | |
| #-------------------------------------------------------------------------------
 | |
| 
 | |
| if [ -z "$NODEROUTENAMES" ]; then
 | |
|     exit 0
 | |
| fi
 | |
| 
 | |
| OP="replace"
 | |
| 
 | |
| if [ -n "$1" ] && [ "$1" = "add" ]; then
 | |
|     OP="add"
 | |
| fi
 | |
| 
 | |
| for rn in `echo "$NODEROUTENAMES" | tr "," "\n"`
 | |
| do
 | |
|     eval route_string=\$ROUTE_$rn
 | |
|     net=`echo $route_string |cut -d',' -f1`
 | |
|     mask=`echo $route_string |cut -d',' -f2`
 | |
|     gw=`echo $route_string |cut -d',' -f3`
 | |
|     ifname=`echo $route_string |cut -d',' -f4`
 | |
| 
 | |
|     # remove the suffix /64 from ipv6 net
 | |
|     if echo $net | grep "/" 2>&1 1>/dev/null
 | |
|     then
 | |
|         net=`echo $net | awk -F'/' '{print $1}'`
 | |
|     fi
 | |
| 
 | |
|     # remove the prefix "/" from ipv6 mask
 | |
|     if echo $mask | grep "/" 2>&1 1>/dev/null
 | |
|     then
 | |
|         mask=`echo $mask | awk -F'/' '{print $2}'`
 | |
|     fi
 | |
| 
 | |
|     cmd="routeop $OP $net $mask $gw $ifname"
 | |
|     result=`$cmd 2>&1`
 | |
|     echo $result
 | |
| done
 | |
| 
 | |
| exit 0
 |