net: cosmetic: Replace magic numbers in arp.c with constants
authorJoe Hershberger <joe.hershberger@ni.com>
Wed, 23 May 2012 07:58:17 +0000 (07:58 +0000)
committerJoe Hershberger <joe.hershberger@ni.com>
Wed, 23 May 2012 22:46:18 +0000 (17:46 -0500)
Use field names and sizes when accessing ARP packets

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
include/net.h
net/arp.c

index 730af4f1653b53788d17fe9cc6034a8196d8cd14..3bf08063e9091689b3969c4641319143b136b811 100644 (file)
@@ -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      */
index d36a642c5498b62066b40a2b52fca1fb4c08d0e4..5ed875ca707cfbe0ca5d5cb3dad6d983e51c58cb 100644 (file)
--- a/net/arp.c
+++ b/net/arp.c
@@ -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);