diff options
| author | Joe Hershberger <joe.hershberger@ni.com> | 2012-05-23 07:58:17 +0000 | 
|---|---|---|
| committer | Joe Hershberger <joe.hershberger@ni.com> | 2012-05-23 17:46:18 -0500 | 
| commit | 674bb249825aa9b0bddab046d23d43c33bb75f78 (patch) | |
| tree | 49fbeb7b7731bb655604a802af2914752ad39e0a | |
| parent | 1256793b1862dcd1a6e5ee51e155c2e214b06594 (diff) | |
| download | olio-uboot-2014.01-674bb249825aa9b0bddab046d23d43c33bb75f78.tar.xz olio-uboot-2014.01-674bb249825aa9b0bddab046d23d43c33bb75f78.zip | |
net: cosmetic: Replace magic numbers in arp.c with constants
Use field names and sizes when accessing ARP packets
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
| -rw-r--r-- | include/net.h | 6 | ||||
| -rw-r--r-- | net/arp.c | 34 | 
2 files changed, 23 insertions, 17 deletions
| diff --git a/include/net.h b/include/net.h index 730af4f16..3bf08063e 100644 --- a/include/net.h +++ b/include/net.h @@ -259,7 +259,9 @@ struct arp_hdr {  #   define ARP_ETHER	    1		/* Ethernet  hardware address	*/  	ushort		ar_pro;		/* Format of protocol address	*/  	uchar		ar_hln;		/* Length of hardware address	*/ +#   define ARP_HLEN	6  	uchar		ar_pln;		/* Length of protocol address	*/ +#   define ARP_PLEN	4  	ushort		ar_op;		/* Operation			*/  #   define ARPOP_REQUEST    1		/* Request  to resolve  address	*/  #   define ARPOP_REPLY	    2		/* Response to previous request	*/ @@ -273,6 +275,10 @@ struct arp_hdr {  	 * specific hardware/protocol combinations.  	 */  	uchar		ar_data[0]; +#define ar_sha		ar_data[0] +#define ar_spa		ar_data[ARP_HLEN] +#define ar_tha		ar_data[ARP_HLEN + ARP_PLEN] +#define ar_tpa		ar_data[ARP_HLEN + ARP_PLEN + ARP_HLEN]  #if 0  	uchar		ar_sha[];	/* Sender hardware address	*/  	uchar		ar_spa[];	/* Sender protocol address	*/ @@ -63,16 +63,16 @@ void ArpRequest(void)  	arp->ar_hrd = htons(ARP_ETHER);  	arp->ar_pro = htons(PROT_IP); -	arp->ar_hln = 6; -	arp->ar_pln = 4; +	arp->ar_hln = ARP_HLEN; +	arp->ar_pln = ARP_PLEN;  	arp->ar_op = htons(ARPOP_REQUEST);  	/* source ET addr */ -	memcpy(&arp->ar_data[0], NetOurEther, 6); +	memcpy(&arp->ar_sha, NetOurEther, ARP_HLEN);  	/* source IP addr */ -	NetWriteIP((uchar *) &arp->ar_data[6], NetOurIP); +	NetWriteIP(&arp->ar_spa, NetOurIP);  	/* dest ET addr = 0 */ -	memset(&arp->ar_data[10], '\0', 6); +	memset(&arp->ar_tha, 0, ARP_HLEN);  	if ((NetArpWaitPacketIP & NetOurSubnetMask) !=  	    (NetOurIP & NetOurSubnetMask)) {  		if (NetOurGatewayIP == 0) { @@ -85,7 +85,7 @@ void ArpRequest(void)  		NetArpWaitReplyIP = NetArpWaitPacketIP;  	} -	NetWriteIP((uchar *) &arp->ar_data[16], NetArpWaitReplyIP); +	NetWriteIP(&arp->ar_tpa, NetArpWaitReplyIP);  	(void) eth_send(NetTxPacket, (pkt - NetTxPacket) + ARP_HDR_SIZE);  } @@ -139,15 +139,15 @@ void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)  		return;  	if (ntohs(arp->ar_pro) != PROT_IP)  		return; -	if (arp->ar_hln != 6) +	if (arp->ar_hln != ARP_HLEN)  		return; -	if (arp->ar_pln != 4) +	if (arp->ar_pln != ARP_PLEN)  		return;  	if (NetOurIP == 0)  		return; -	if (NetReadIP(&arp->ar_data[16]) != NetOurIP) +	if (NetReadIP(&arp->ar_tpa) != NetOurIP)  		return;  	switch (ntohs(arp->ar_op)) { @@ -157,10 +157,10 @@ void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)  		pkt = (uchar *)et;  		pkt += NetSetEther(pkt, et->et_src, PROT_ARP);  		arp->ar_op = htons(ARPOP_REPLY); -		memcpy(&arp->ar_data[10], &arp->ar_data[0], 6); -		NetCopyIP(&arp->ar_data[16], &arp->ar_data[6]); -		memcpy(&arp->ar_data[0], NetOurEther, 6); -		NetCopyIP(&arp->ar_data[6], &NetOurIP); +		memcpy(&arp->ar_tha, &arp->ar_sha, ARP_HLEN); +		NetCopyIP(&arp->ar_tpa, &arp->ar_spa); +		memcpy(&arp->ar_sha, NetOurEther, ARP_HLEN); +		NetCopyIP(&arp->ar_spa, &NetOurIP);  		(void) eth_send((uchar *)et,  				(pkt - (uchar *)et) + ARP_HDR_SIZE);  		return; @@ -173,12 +173,12 @@ void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)  #ifdef CONFIG_KEEP_SERVERADDR  		if (NetServerIP == NetArpWaitPacketIP) {  			char buf[20]; -			sprintf(buf, "%pM", arp->ar_data); +			sprintf(buf, "%pM", arp->ar_sha);  			setenv("serveraddr", buf);  		}  #endif -		reply_ip_addr = NetReadIP(&arp->ar_data[6]); +		reply_ip_addr = NetReadIP(&arp->ar_spa);  		/* matched waiting packet's address */  		if (reply_ip_addr == NetArpWaitReplyIP) { @@ -187,14 +187,14 @@ void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)  			/* save address for later use */  			memcpy(NetArpWaitPacketMAC, -			       &arp->ar_data[0], 6); +				&arp->ar_sha, ARP_HLEN);  #ifdef CONFIG_NETCONSOLE  			NetGetHandler()(0, 0, 0, 0, 0);  #endif  			/* modify header, and transmit it */  			memcpy(((struct ethernet_hdr *)NetArpWaitTxPacket)-> -				et_dest, NetArpWaitPacketMAC, 6); +				et_dest, NetArpWaitPacketMAC, ARP_HLEN);  			(void) eth_send(NetArpWaitTxPacket,  					NetArpWaitTxPacketSize); |