mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-29 09:33:46 +01:00 
			
		
		
		
	Finish eliminating CamelCase from net.c and other failures Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Acked-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ------------------------------------------
 | |
|  Link-local IP address auto-configuration
 | |
| ------------------------------------------
 | |
| 
 | |
| Negotiate with other link-local clients on the local network
 | |
| for an address that doesn't require explicit configuration.
 | |
| This is especially useful if a DHCP server cannot be guaranteed
 | |
| to exist in all environments that the device must operate.
 | |
| 
 | |
| This is an implementation of RFC3927.
 | |
| 
 | |
| ----------
 | |
|  Commands
 | |
| ----------
 | |
| 
 | |
| When CONFIG_CMD_LINK_LOCAL is defined in the board config file,
 | |
| the "linklocal" command is available.  This running this will
 | |
| take approximately 5 seconds while the address is negotiated.
 | |
| 
 | |
| ------------------------
 | |
|  Environment interation
 | |
| ------------------------
 | |
| 
 | |
| The "llipaddr" variable is set with the most recently
 | |
| negotiated address and is preferred in future negotiations.
 | |
| 
 | |
| The "ipaddr", "netmask", and "gatewayip" variables are set
 | |
| after successful negotiation to enable network access.
 | |
| 
 | |
| -------------
 | |
|  Limitations
 | |
| -------------
 | |
| 
 | |
| RFC3927 requires that addresses are continuously checked to
 | |
| avoid conflicts, however this can only happen when the net_loop
 | |
| is getting called.  It is possible for a conflict to go undetected
 | |
| until a command that accesses the network is executed.
 | |
| 
 | |
| Using NetConsole is one way to ensure that net_loop is always
 | |
| processing packets and monitoring for conflicts.
 | |
| 
 | |
| This is also not a concern if the feature is use to connect
 | |
| directly to another machine that may not be running a DHCP server.
 | |
| 
 | |
| ----------------
 | |
|  Example script
 | |
| ----------------
 | |
| 
 | |
| This script allows use of DHCP and/or Link-local controlled
 | |
| by env variables.  It depends on CONFIG_CMD_LINK_LOCAL, CONFIG_CMD_DHCP,
 | |
| and CONFIG_BOOTP_MAY_FAIL.
 | |
| If both fail or are disabled, static settings are used.
 | |
| 
 | |
| #define CONFIG_EXTRA_ENV_SETTINGS \
 | |
| 	"ipconfigcmd=if test \\\"$dhcpenabled\\\" -ne 0;"		\
 | |
| 		"then "							\
 | |
| 			"dhcpfail=0;dhcp || dhcpfail=1;"		\
 | |
| 		"else "							\
 | |
| 			"dhcpfail=-1;"					\
 | |
| 		"fi;"							\
 | |
| 		"if test \\\"$linklocalenabled\\\" -ne 0 -a "		\
 | |
| 			"\\\"$dhcpfail\\\" -ne 0;"			\
 | |
| 		"then "							\
 | |
| 			"linklocal;"					\
 | |
| 			"llfail=0;"					\
 | |
| 		"else "							\
 | |
| 			"llfail=-1;"					\
 | |
| 		"fi;"							\
 | |
| 		"if test \\\"$llfail\\\" -ne 0 -a "			\
 | |
| 			"\\\"$dhcpfail\\\" -ne 0; "			\
 | |
| 		"then "							\
 | |
| 			"setenv ipaddr $sipaddr; "			\
 | |
| 			"setenv netmask $snetmask; "			\
 | |
| 			"setenv gatewayip $sgatewayip; "		\
 | |
| 		"fi;\0"							\
 |