Jump to content

Recommended Posts

Thinking about DHCP renewal... There are 2 times mentioned, T1 (renewal) and T2 (rebinding) times.  I think you just have to keep renewing every T1 seconds to stay in good standing.  And to simplify things, I am going to clamp T1's value to 16-bits, even though it's a 32-bit unsigned integer in the packet, so if the upper 16 bits are set then the value will just be 65535 to keep it simple.  That's 18 hours anyhow.

Share this post


Link to post
Share on other sites

Ok well, had time this morning to knock this out ;-)

 

dhcp_loop_configure() now handles both Discovers and Renewals, and its prototype is:

int dhcp_loop_configure(uint8_t *, struct DHCPrenew *);  /* Perform DHCP configuration, optionally reporting
                                                          * back DNS server, and optionally storing Lease
                                                          * information.  If lease is not NULL and its
                                                          * do_renew variable == 1, a DHCPREQUEST + DHCPACK
                                                          * will be performed, skipping DHCPDISCOVER/DHCPOFFER.
                                                          */

The new "struct DHCPrenew":

/* DHCP information struct for enabling future renewal of the lease */
struct DHCPrenew {
        uint16_t do_renew;
        uint16_t seconds;
        uint8_t dhcpserver[4];
};

You must declare this in your calling function somewhere, and pass a pointer to it as dhcp_loop_configure's new 2nd argument.  Or leave it NULL if you don't care.

When you run dhcp_loop_configure, be sure your DHCPrenew struct's "do_renew" value is set to 0 for the initial configuration, then manually set it to 1 for a renewal (otherwise it'll do a from-scratch DHCPDISCOVER+DHCPOFFER).  The "seconds" variable is completely up to you to interpret & use; it's clamped to 65535 at the maximum, which is around 18 hours.  When it's ready to renew, it's up to your application to set the do_renew member to 1 and call dhcp_loop_configure().

 

Note that during a renewal, the dnsaddr parameter will not be used (the code won't store DNS information from the DHCPACK packet even if it's there; it only has code interpreting the DHCP_OPTCODE_DOMAIN_SERVER option in the DHCPOFFER interpretation code).

 

Updated code, which performs a dhcp configure, does a 5-second wait (_delay_cycles(80000000)) and then a renew, followed by the while(1) loop from @@RobG 's original example:

robg-w5500-with-dhcplib.zip

Share this post


Link to post
Share on other sites

And example full debugging output from the discover + renewal:

Beginning:
Waiting for PHY: PHY up
dhcp_loop_configure(): Sending DHCPDISCOVER
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPOFFER
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 300, RXrecv = 308
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPOFFER
dhcp_loop_configure(): DHCP server gave us IP address 10.104.115.41
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_loop_configure(): subnetmask: 255.255.255.0
dhcp_read_option(): optcode=58, optlen=4, maxlen=8
dhcp_loop_configure(): Renewal time (T1) = 1296000 seconds, reporting 65535 to application
dhcp_read_option(): optcode=59, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 10.104.8.201
dhcp_read_option(): optcode=3, optlen=4, maxlen=8
dhcp_loop_configure(): gateway: 10.104.115.1
dhcp_read_option(): optcode=6, optlen=8, maxlen=8
dhcp_loop_configure(): DNS server: 10.104.8.201 (2 in total)
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): Sending DHCPREQUEST to 10.104.8.201 requesting IP=10.104.115.41
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPACK
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 300, RXrecv = 308
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPACK
dhcp_read_option(): optcode=58, optlen=4, maxlen=8
dhcp_read_option(): optcode=59, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 10.104.8.201
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): DHCPACK contents processed; validating
dhcp_loop_configure(): Configuring WizNet IP settings
dhcp_loop_configure(): setGAR(10.104.115.1)
dhcp_loop_configure(): setSUBR(255.255.255.0)
dhcp_loop_configure(): setSIPR(10.104.115.41)
DHCP lease information: 65535 seconds, DHCPserver = 10.104.8.201
(5 seconds later...)
PERFORMING DHCP RENEWAL
dhcp_loop_configure(): Sending DHCPREQUEST to 10.104.8.201 requesting IP=10.104.115.41
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPACK
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 300, RXrecv = 308
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPACK
dhcp_read_option(): optcode=58, optlen=4, maxlen=8
dhcp_read_option(): optcode=59, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 10.104.8.201
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): DHCPACK contents processed; validating

Share this post


Link to post
Share on other sites

Hello Robg,

 

I am interested buying one of your thernet booster pack v3, form your tindie shop. However no shipping is said to Hungary (Europe). Do you ship internationnally?

 

Also do you plan to post schematic and/or layout of your booster pack?

 

Thanks,

Laszlo

Share this post


Link to post
Share on other sites

Thing is I cannot send you a PM, before the posted I wanted to, but the same error as now: "The member RobG cannot receive any new messages"

Isn't your mailbox full?

Share this post


Link to post
Share on other sites

Alright guys, DNS is coming right up:

Beginning:
Waiting for PHY: PHY up
dhcp_loop_configure(): Sending DHCPDISCOVER
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPOFFER
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 300, RXrecv = 308
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPOFFER
dhcp_loop_configure(): DHCP server gave us IP address 10.104.115.41
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_loop_configure(): subnetmask: 255.255.255.0
dhcp_read_option(): optcode=58, optlen=4, maxlen=8
dhcp_loop_configure(): Renewal time (T1) = 1296000 seconds, reporting 65535 to application
dhcp_read_option(): optcode=59, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 10.104.8.201
dhcp_read_option(): optcode=3, optlen=4, maxlen=8
dhcp_loop_configure(): gateway: 10.104.115.1
dhcp_read_option(): optcode=6, optlen=8, maxlen=8
dhcp_loop_configure(): DNS server: 10.104.8.201 (2 in total)
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): Sending DHCPREQUEST to 10.104.8.201 requesting IP=10.104.115.41
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPACK
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 300, RXrecv = 308
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPACK
dhcp_read_option(): optcode=58, optlen=4, maxlen=8
dhcp_read_option(): optcode=59, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 10.104.8.201
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): DHCPACK contents processed; validating
dhcp_loop_configure(): Configuring WizNet IP settings
dhcp_loop_configure(): setGAR(10.104.115.1)
dhcp_loop_configure(): setSUBR(255.255.255.0)
dhcp_loop_configure(): setSIPR(10.104.115.41)
DHCP lease information: 65535 seconds, DHCPserver = 10.104.8.201
dnslib_gethostbyname("spirilis.net", ip);
dnslib_gethostbyname(): Submitting DNS A-record query for domain name (spirilis.net)
dnslib_prepare_connection(): Binding UDP port 40000 (base=0, incr=40000)
dnslib_write_header(): DNS header: ID=0, bitfields=0100, QDcount=1
dnslib_gethostbyname(): Packet received
dnslib_gethostbyname(): From 10.104.8.201:53, UDP packet length = 51
dnslib_read_header(): DNS header read; ID=0 Bitfields=8180 QDcount=1 ANcount=1 NScount=0 ARcount=0
dnslib_gethostbyname(): Valid reply packet found, analyzing-
dnslib_gethostbyname(): Flushing past original query
dnslib_gethostbyname(): Reading answer fields-
dnslib_flush_qname(): Pointer found; reading no further
dnslib_gethostbyname(): DNS A record received, IP = 74.112.203.145
IP = 74.112.203.145

Share this post


Link to post
Share on other sites

Very strange behavior in one of those lines;

dnslib_prepare_connection(): Binding UDP port 40000 (base=0, incr=40000)

 

... Base should be 40000, incr should be 0.  Moreover, the arguments ARE being listed in correct order:

wiznet_debug3_printf("%s: Binding UDP port %u (base=%u, incr=%u)\n", funcname, (DNSLIB_SRCPORT_BASE + sport_incr), DNSLIB_SRCPORT_BASE, sport_incr);

So what the hell?

 

Doesn't change the function of the library, at least...

Share this post


Link to post
Share on other sites

I left this off last time writing dnslib into the fold but forgot to release it, plus I rearranged things a bit... there's a new "rewindRXBufferFlushPacket" function to take the place of some rewinding "helpers" I had written separately for dhcplib and dnslib, so combining those into a unified function is better on flash space.

robg-w5500-dhcplib-dnslib.zip

 

Dnslib available with:

int dnslib_gethostbyname(const char *dnsname, uint8_t *ip);  // Resolve hostname to IP address -- A records only!

 

Looks up domain name in "dnsname" and stores it in the 4-byte buffer referenced by *ip.

There is an external global pointer variable "dnslib_resolver" that you must set (point to a 4-byte buffer indicating the IP address of your DNS server) ahead of time.  It is not allocated any memory by itself; it's just a global pointer:

extern uint8_t *dnslib_resolver;  // Must be configured by your app to point to a DNS resolver IP

 

You may allocate a 4-byte buffer (global, or 4-byte array in main() or whatever) and pass it as the first argument to dhcp_loop_configure(), then assign the "dnslib_resolver" global pointer to that buffer so that you use the DNS information from DHCP.

 

Example output, using both dhcplib and dnslib:

Beginning:
Waiting for PHY: PHY up
dhcp_loop_configure(): Sending DHCPDISCOVER
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPOFFER
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 300, RXrecv = 308
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPOFFER
dhcp_loop_configure(): DHCP server gave us IP address 10.104.115.41
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_loop_configure(): subnetmask: 255.255.255.0
dhcp_read_option(): optcode=58, optlen=4, maxlen=8
dhcp_loop_configure(): Renewal time (T1) = 1296000 seconds, reporting 65535 to application
dhcp_read_option(): optcode=59, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 10.104.8.201
dhcp_read_option(): optcode=3, optlen=4, maxlen=8
dhcp_loop_configure(): gateway: 10.104.115.1
dhcp_read_option(): optcode=6, optlen=8, maxlen=8
dhcp_loop_configure(): DNS server: 10.104.8.201 (2 in total)
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): Sending DHCPREQUEST to 10.104.8.201 requesting IP=10.104.115.41
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPACK
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 300, RXrecv = 308
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPACK
dhcp_read_option(): optcode=58, optlen=4, maxlen=8
dhcp_read_option(): optcode=59, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 10.104.8.201
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): DHCPACK contents processed; validating
dhcp_loop_configure(): Configuring WizNet IP settings
dhcp_loop_configure(): setGAR(10.104.115.1)
dhcp_loop_configure(): setSUBR(255.255.255.0)
dhcp_loop_configure(): setSIPR(10.104.115.41)
DHCP lease information: 65535 seconds, DHCPserver = 10.104.8.201
dnslib_gethostbyname("spirilis.net", ip);
dnslib_gethostbyname(): Submitting DNS A-record query for domain name (spirilis.net)
dnslib_prepare_connection(): Binding UDP port 40000 (base=0, incr=40000)
dnslib_write_header(): DNS header: ID=0, bitfields=0100, QDcount=1
dnslib_gethostbyname(): Packet received
dnslib_gethostbyname(): From 10.104.8.201:53, UDP packet length = 46
dnslib_read_header(): DNS header read; ID=0 Bitfields=8180 QDcount=1 ANcount=1 NScount=0 ARcount=0
dnslib_gethostbyname(): Valid reply packet found, analyzing-
dnslib_gethostbyname(): Flushing past original query
dnslib_gethostbyname(): Reading answer fields-
dnslib_flush_qname(): Pointer found; reading no further
dnslib_gethostbyname(): DNS A record received, IP = 74.112.203.145
IP = 74.112.203.145

Similar in architecture to dhcplib, there is a "#define DNSLIB_LOOP_COUNT_TIMEOUT 200" in dnslib.h, and each "iteration" is a _delay_cycles(250000).

 

In the future if I get the itch, I'll try to implement reverse DNS lookup and also Mail Exchange lookups :-)

Share this post


Link to post
Share on other sites

Hi @@spirilis,

 

First I want to say that your DHCP lib is awesome!

 

But some times it doesn't work and i dont know why, plus i had to loose all the wiznet_debug stuff couse this did not work for me (most likely i don't know how to use it)

 

Other then that i did'nt change a thing in your code and my own code starts after i get the IP address.

 

Do you have any idea why this happens?

 

P.S. i see that i get an IP address in the Router but after a second it disappear.

 

Thanks a lot,

 

Ofer. 

Share this post


Link to post
Share on other sites

Hi @@spirilis,

 

First I want to say that your DHCP lib is awesome!

 

But some times it doesn't work and i dont know why, plus i had to loose all the wiznet_debug stuff couse this did not work for me (most likely i don't know how to use it)

 

Other then that i did'nt change a thing in your code and my own code starts after i get the IP address.

 

Do you have any idea why this happens?

 

P.S. i see that i get an IP address in the Router but after a second it disappear.

 

Thanks a lot,

 

Ofer.

You should try to get that wiznet_debug_printf stuff working as it's the only way to quickly debug the library. Just set the WIZNET_DEBUG define appropriately and make sure the USCI stuff is set up correctly for the chip & baudrate.

 

Sent from my Galaxy Note 10.1

Share this post


Link to post
Share on other sites

thanks @@spirilis,

 

I got the debug working:

Beginning:           
Waiting for PHY: PHY up                       
dhcp_loop_configure(): Sending DHCPDISCOVER                                           
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00                                               
dhcp_loop_configure(): Waiting for DHCPOFFER                                            
dhcp_loop_configure(): Packet received                                      
dhcp_loop_configure(): SrcPort = 67, PktLen = 548, RXrecv = 556                                                               
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0                                                                 
dhcp_read_header(): Read XID: 3903F326                                      
dhcp_read_header(): SECS=0000, FLAGS=0000                                         
dhcp_read_option(): optcode=53, optlen=1, maxlen=8                                                  
dhcp_loop_configure(): Packet is DHCPOFFER                                          
dhcp_loop_configure(): DHCP server gave us IP address 192.168.0.70                                                                  
dhcp_read_option(): optcode=54, optlen=4, maxlen=8                                                  
dhcp_loop_configure(): DHCP server: 192.168.0.2                                               
dhcp_read_option(): optcode=1, optlen=4, maxlen=8                                                 
dhcp_loop_configure(): subnetmask: 255.255.255.0                                                
dhcp_read_option(): optcode=51, optlen=4, maxlen=8                                                  
dhcp_read_option(): optcode=52, optlen=1, maxlen=8                                                  
dhcp_read_option(): optcode=3, optlen=4, maxlen=8                                                 
dhcp_loop_configure(): gateway: 192.168.0.1                                           
dhcp_read_option(): optcode=6, optlen=8, maxlen=8                                                 
dhcp_loop_configure(): DNS server: 192.117.235.237 (2 in total)                                                               
dhcp_read_option(): optcode=255, optlen=0, maxlen=8                                                   
dhcp_loop_configure(): Sending DHCPREQUEST to 192.168.0.2 requesting IP=192.168.                                                                                
0.70    
dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00                                               
dhcp_loop_configure(): Waiting for DHCPACK                                          
dhcp_loop_configure(): Packet received                                      
dhcp_loop_configure(): SrcPort = 67, PktLen = 548, RXrecv = 1112                                                                
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0                                                                 
dhcp_read_header(): Read XID: 3903F326                                      
dhcp_read_header(): SECS=0000, FLAGS=0000                                         
dhcp_read_option(): optcode=53, optlen=1, maxlen=8                                                  
dhcp_loop_configure(): Packet is not DHCPACK; MSGTYPE=2                                                       
dhcp_loop_configure(): Packet received                                      
dhcp_loop_configure(): SrcPort = 67, PktLen = 548, RXrecv = 556                                                               
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0                                                                 
dhcp_read_header(): Read XID: 3903F326                                      
dhcp_read_header(): SECS=0000, FLAGS=0000                                         
dhcp_read_option(): optcode=53, optlen=1, maxlen=8                                                  
dhcp_loop_configure(): Packet is DHCPACK                                        
dhcp_read_option(): optcod                         
dhcp_loop_configure(): DHCP server: 192.168.0.2                                               
dhcp_read_option(): optcode=1, optlen=4, maxlen=8                                                 
dhcp_read_option(): optcode=51, optlen=4, maxlen=8                                                  
dhcp_read_option(): optcode=52, optlen=1, maxlen=8                                                  
dhcp_read_option(): optcode=255, optlen=0, maxlen=8                                                   
dhcp_loop_configure(): DHCPACK contents processed; validating                                                             
dhcp_loop_configure(): Configuring WizNet IP settings                                                     
dhcp_loop_configure(): setGAR(192.168.0.1)                                          
dhcp_loop_configure(): setSUBR(255.255.255.0)                                             
dhcp_loop_configure(): setSIPR(192.168.0.70)                                            
DHCP lease information: 54550 seconds, DHCPserver = 1.0.0.0                                                           
PERFORMING DHCP RENEWAL                       
dhcp_loop_configure(): Sending DHCPREQUEST to 1.0.0.0 requesting IP=192.168.0.70


dhcp_send_packet(): Our MAC = 00:08:DC:04:03:00
dhcp_loop_configure(): Waiting for DHCPACK
dhcp_loop_configure(): Packet received
dhcp_loop_configure(): SrcPort = 67, PktLen = 548, RXrecv = 556
dhcp_read_header(): Initial header: OP=2, HTYPE=1, HLEN=6, HOPS=0
dhcp_read_header(): Read XID: 3903F326
dhcp_read_header(): SECS=0000, FLAGS=0000
dhcp_read_option(): optcode=53, optlen=1, maxlen=8
dhcp_loop_configure(): Packet is DHCPACK
dhcp_read_option(): optcode=54, optlen=4, maxlen=8
dhcp_loop_configure(): DHCP server: 192.168.0.2
dhcp_read_option(): optcode=1, optlen=4, maxlen=8
dhcp_read_option(): optcode=51, optlen=4, maxlen=8
dhcp_read_option(): optcode=52, optlen=1, maxlen=8
dhcp_read_option(): optcode=255, optlen=0, maxlen=8
dhcp_loop_configure(): DHCPACK contents processed; validating
dhcp_loop_configure(): DHCP server IP does not match!
dhcp_loop_configure(): RXrecv = 0, virtualRXrecv = 0
dhcp_loop_configure(): RX_RD = 556, RX_WR = 556, TX_RD = 257, TX_WR = 257
dhcp_loop_configure(): Loop count 500 out of 500
dhcp_loop_configure(): TIMEOUTdhcp_loop_configure returned error: DHCPlib Timeout Waiting for Reply

what does it means?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...