mirror of
				https://github.com/Telecominfraproject/ols-nos.git
				synced 2025-10-31 01:57:48 +00:00 
			
		
		
		
	 fec80293dd
			
		
	
	fec80293dd
	
	
	
		
			
			* ZTP infrastructure changes to support DHCP discovery provisioning data - Dynamically generate DHCP client configuration based on current ZTP state - Added support to request and process hostname when using DHCPv6 - Do not process graphservice url dhcp option if ZTP is enabled, ZTP service will process it - Generate /e/n/i file with all active interfaces seeking address assignment via DHCP. Only interfaces that are created in Linux will be added to /e/n/i. Also DHCP is started only on linked up in-band interfaces. Signed-off-by: Rajendra Dendukuri <rajendra.dendukuri@broadcom.com>
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # set classless routes based on the format specified in RFC3442
 | |
| # e.g.:
 | |
| #   new_rfc3442_classless_static_routes='24 192 168 10 192 168 1 1 8 10 10 17 66 41'
 | |
| # specifies the routes:
 | |
| #   192.168.10.0/24 via 192.168.1.1
 | |
| #   10.0.0.0/8 via 10.10.17.66.41
 | |
| 
 | |
| RUN="yes"
 | |
| 
 | |
| 
 | |
| if [ "$RUN" = "yes" ]; then
 | |
| 	if [ -n "$new_rfc3442_classless_static_routes" ]; then
 | |
| 		if [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then
 | |
| 
 | |
| 			set -- $new_rfc3442_classless_static_routes
 | |
| 
 | |
| 			while [ $# -gt 0 ]; do
 | |
| 				net_length=$1
 | |
| 				via_arg=''
 | |
| 
 | |
| 				case $net_length in
 | |
| 					32|31|30|29|28|27|26|25)
 | |
| 						net_address="${2}.${3}.${4}.${5}"
 | |
| 						gateway="${6}.${7}.${8}.${9}"
 | |
| 						shift 9
 | |
| 						;;
 | |
| 					24|23|22|21|20|19|18|17)
 | |
| 						net_address="${2}.${3}.${4}.0"
 | |
| 						gateway="${5}.${6}.${7}.${8}"
 | |
| 						shift 8
 | |
| 						;;
 | |
| 					16|15|14|13|12|11|10|9)
 | |
| 						net_address="${2}.${3}.0.0"
 | |
| 						gateway="${4}.${5}.${6}.${7}"
 | |
| 						shift 7
 | |
| 						;;
 | |
| 					8|7|6|5|4|3|2|1)
 | |
| 						net_address="${2}.0.0.0"
 | |
| 						gateway="${3}.${4}.${5}.${6}"
 | |
| 						shift 6
 | |
| 						;;
 | |
| 					0)	# default route
 | |
| 						net_address="0.0.0.0"
 | |
| 						gateway="${2}.${3}.${4}.${5}"
 | |
| 						shift 5
 | |
| 						;;
 | |
| 					*)	# error
 | |
| 						return 1
 | |
| 						;;
 | |
| 				esac
 | |
| 
 | |
| 				# take care of link-local routes
 | |
| 				if [ "${gateway}" != '0.0.0.0' ]; then
 | |
| 					via_arg="via ${gateway}"
 | |
| 				fi
 | |
| 
 | |
| 				# set route (ip detects host routes automatically)
 | |
|                                 if echo $interface | grep -v Ethernet ; then
 | |
|    				     ip -4 route add "${net_address}/${net_length}" \
 | |
| 					${via_arg} dev "${interface}" table default >/dev/null 2>&1
 | |
|                                 else
 | |
|    				     ip -4 route add "${net_address}/${net_length}" \
 | |
| 					${via_arg} dev "${interface}" >/dev/null 2>&1
 | |
|                                 fi
 | |
| 			done
 | |
| 		fi
 | |
| 	fi
 | |
| fi
 |