]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - net/bootp.c
net: new utility functions for working with enetaddr's
[karo-tx-uboot.git] / net / bootp.c
index 5121caa51baf13253905e90ed99e56102d7b01a0..d1cbd39c2b032743b9d86338b12012eaa3e881bb 100644 (file)
@@ -33,7 +33,7 @@
 
 #if defined(CONFIG_CMD_NET)
 
-#define TIMEOUT                5UL             /* Seconds before trying BOOTP again    */
+#define TIMEOUT                5000UL  /* Milliseconds before trying BOOTP again */
 #ifndef CONFIG_NET_RETRY_COUNT
 # define TIMEOUT_COUNT 5               /* # of timeouts before giving up  */
 #else
@@ -271,17 +271,11 @@ static void BootpVendorProcess (u8 * ext, int size)
 
 #ifdef DEBUG_BOOTP_EXT
        puts ("[BOOTP] Received fields: \n");
-       if (NetOurSubnetMask) {
-               puts ("NetOurSubnetMask : ");
-               print_IPaddr (NetOurSubnetMask);
-               putc ('\n');
-       }
+       if (NetOurSubnetMask)
+               printf ("NetOurSubnetMask : %pI4\n", &NetOurSubnetMask);
 
-       if (NetOurGatewayIP) {
-               puts ("NetOurGatewayIP  : ");
-               print_IPaddr (NetOurGatewayIP);
-               putc ('\n');
-       }
+       if (NetOurGatewayIP)
+               printf ("NetOurGatewayIP        : %pI4", &NetOurGatewayIP);
 
        if (NetBootFileSize) {
                printf ("NetBootFileSize : %d\n", NetBootFileSize);
@@ -371,7 +365,7 @@ BootpTimeout(void)
                puts ("\nRetry count exceeded; starting again\n");
                NetStartAgain ();
        } else {
-               NetSetTimeout (TIMEOUT * CFG_HZ, BootpTimeout);
+               NetSetTimeout (TIMEOUT, BootpTimeout);
                BootpRequest ();
        }
 }
@@ -671,7 +665,7 @@ BootpRequest (void)
        bp->bp_htype = HWT_ETHER;
        bp->bp_hlen = HWL_ETHER;
        bp->bp_hops = 0;
-       bp->bp_secs = htons(get_timer(0) / CFG_HZ);
+       bp->bp_secs = htons(get_timer(0) / 1000);
        NetWriteIP(&bp->bp_ciaddr, 0);
        NetWriteIP(&bp->bp_yiaddr, 0);
        NetWriteIP(&bp->bp_siaddr, 0);
@@ -688,7 +682,7 @@ BootpRequest (void)
 
        /*
         *      Bootp ID is the lower 4 bytes of our ethernet address
-        *      plus the current time in HZ.
+        *      plus the current time in ms.
         */
        BootpID = ((ulong)NetOurEther[2] << 24)
                | ((ulong)NetOurEther[3] << 16)
@@ -705,7 +699,7 @@ BootpRequest (void)
        pktlen = BOOTP_SIZE - sizeof(bp->bp_vend) + ext_len;
        iplen = BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + ext_len;
        NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);
-       NetSetTimeout(SELECT_TIMEOUT * CFG_HZ, BootpTimeout);
+       NetSetTimeout(SELECT_TIMEOUT, BootpTimeout);
 
 #if defined(CONFIG_CMD_DHCP)
        dhcp_state = SELECTING;
@@ -849,7 +843,7 @@ static void DhcpSendRequestPkt(Bootp_t *bp_offer)
        bp->bp_htype = HWT_ETHER;
        bp->bp_hlen = HWL_ETHER;
        bp->bp_hops = 0;
-       bp->bp_secs = htons(get_timer(0) / CFG_HZ);
+       bp->bp_secs = htons(get_timer(0) / 1000);
        /* Do not set the client IP, your IP, or server IP yet, since it hasn't been ACK'ed by
         * the server yet */
 
@@ -912,11 +906,11 @@ DhcpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)
                 * OFFER from a server we want.
                 */
                debug ("DHCP: state=SELECTING bp_file: \"%s\"\n", bp->bp_file);
-#ifdef CFG_BOOTFILE_PREFIX
+#ifdef CONFIG_SYS_BOOTFILE_PREFIX
                if (strncmp(bp->bp_file,
-                           CFG_BOOTFILE_PREFIX,
-                           strlen(CFG_BOOTFILE_PREFIX)) == 0 ) {
-#endif /* CFG_BOOTFILE_PREFIX */
+                           CONFIG_SYS_BOOTFILE_PREFIX,
+                           strlen(CONFIG_SYS_BOOTFILE_PREFIX)) == 0 ) {
+#endif /* CONFIG_SYS_BOOTFILE_PREFIX */
 
                        debug ("TRANSITIONING TO REQUESTING STATE\n");
                        dhcp_state = REQUESTING;
@@ -924,11 +918,11 @@ DhcpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)
                        if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))
                                DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);
 
-                       NetSetTimeout(TIMEOUT * CFG_HZ, BootpTimeout);
+                       NetSetTimeout(TIMEOUT, BootpTimeout);
                        DhcpSendRequestPkt(bp);
-#ifdef CFG_BOOTFILE_PREFIX
+#ifdef CONFIG_SYS_BOOTFILE_PREFIX
                }
-#endif /* CFG_BOOTFILE_PREFIX */
+#endif /* CONFIG_SYS_BOOTFILE_PREFIX */
 
                return;
                break;
@@ -942,9 +936,7 @@ DhcpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)
                                DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);
                        BootpCopyNetParams(bp); /* Store net params from reply */
                        dhcp_state = BOUND;
-                       puts ("DHCP client bound to address ");
-                       print_IPaddr(NetOurIP);
-                       putc ('\n');
+                       printf ("DHCP client bound to address %pI4\n", &NetOurIP);
 
                        /* Obey the 'autoload' setting */
                        if ((s = getenv("autoload")) != NULL) {
@@ -969,6 +961,9 @@ DhcpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)
                        return;
                }
                break;
+       case BOUND:
+               /* DHCP client bound to address */
+               break;
        default:
                puts ("DHCP: INVALID STATE\n");
                break;