ofer 0 Posted April 8, 2014 Share Posted April 8, 2014 THANK YOU @@spirilis Quote Link to post Share on other sites
spirilis 1,265 Posted April 8, 2014 Share Posted April 8, 2014 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. Quote Link to post Share on other sites
spirilis 1,265 Posted April 8, 2014 Share Posted April 8, 2014 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 RobG 1 Quote Link to post Share on other sites
spirilis 1,265 Posted April 8, 2014 Share Posted April 8, 2014 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 Quote Link to post Share on other sites
lorylaci 0 Posted April 8, 2014 Share Posted April 8, 2014 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 Quote Link to post Share on other sites
RobG 1,892 Posted April 9, 2014 Author Share Posted April 9, 2014 @@lorylaci, send me PM with your email. Quote Link to post Share on other sites
lorylaci 0 Posted April 9, 2014 Share Posted April 9, 2014 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? Quote Link to post Share on other sites
RobG 1,892 Posted April 9, 2014 Author Share Posted April 9, 2014 @@lorylaci, try again Quote Link to post Share on other sites
spirilis 1,265 Posted April 9, 2014 Share Posted April 9, 2014 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 RobG 1 Quote Link to post Share on other sites
spirilis 1,265 Posted April 9, 2014 Share Posted April 9, 2014 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... Quote Link to post Share on other sites
spirilis 1,265 Posted April 30, 2014 Share Posted April 30, 2014 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 :-) RobG and bluehash 2 Quote Link to post Share on other sites
pmcalabrese 0 Posted May 10, 2014 Share Posted May 10, 2014 Very nice job! But it would be nice also have it as Energia library. Quote Link to post Share on other sites
ofer 0 Posted May 25, 2014 Share Posted May 25, 2014 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. Quote Link to post Share on other sites
spirilis 1,265 Posted May 25, 2014 Share Posted May 25, 2014 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 Quote Link to post Share on other sites
ofer 0 Posted May 26, 2014 Share Posted May 26, 2014 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? Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.