Преглед изворни кода

Add ACD to several documents

Dirk Ziegelmeier пре 7 година
родитељ
комит
1f554efcbb
3 измењених фајлова са 54 додато и 50 уклоњено
  1. 50 47
      CHANGELOG
  2. 1 1
      FEATURES
  3. 3 2
      README

+ 50 - 47
CHANGELOG

@@ -6,6 +6,9 @@ HISTORY
 
   * [Enter new changes just after this line - do not remove this line]
 
+  2018-10-04: Jasper Verschueren
+  * Implement IPv4 ACD (Address Conflict Detection)
+
   2018-10-02: Dirk Ziegelmeier
   * Integrate contrib repository into main lwIP rep, tag STABLE-2_1_0_RELEASE
 
@@ -125,7 +128,7 @@ HISTORY
 
   2017-01-20: Joel Cunningham
   * sockets: add interface name/index APIs (task #14314)
-  
+
   2017-01-08: David van Moolenbroek
   * Extensions to RAW API (patch #9208)
     - Connected RAW PCBs
@@ -214,7 +217,7 @@ HISTORY
 
   2017-08-02: Abroz Bizjak/Simon Goldschmidt
   * multiple fixes in IPv4 reassembly (leading to corrupted datagrams received)
-  
+
   2017-03-30: Simon Goldschmidt
   * dhcp.c: return ERR_VAL instead of asserting on offset-out-of-pbuf
 
@@ -359,7 +362,7 @@ HISTORY
 
   2016-11-14: Joel Cunningham
   * tcp_out.c: fixed bug #49533 (start persist timer when unsent seg can't fit
-    in window) 
+    in window)
 
   2016-11-16: Roberto Barbieri Carrera
   * autoip.c: fixed bug #49610 (sometimes AutoIP fails to reuse the same address)
@@ -634,7 +637,7 @@ HISTORY
       implementation which is under a BSD-ish license.
     - Also switched to PolarSSL MD4,MD5,SHA1 implementations, which are meant to be
       used in embedded devices with reduced memory footprint.
-    - Removed PPP configuration file parsing support. 
+    - Removed PPP configuration file parsing support.
     - Added macro definition EAP_SUPPORT to make EAP support optional.
     - Added macro definition CHAP_SUPPORT to make CHAP support optional.
     - Added macro definition MSCHAP_SUPPORT to make MSCHAP support optional.
@@ -1166,7 +1169,7 @@ HISTORY
   2012-03-25: Simon Goldschmidt (idea by Mason)
   * posix/*: added posix-compatibility include files posix/netdb.h and posix/sys/socket.h
     which are a simple wrapper to the correct lwIP include files.
- 
+
   2012-01-16: Simon Goldschmidt
   * opt.h, icmp.c: Added option CHECKSUM_GEN_ICMP
 
@@ -1248,10 +1251,10 @@ HISTORY
 
   2012-03-22: Simon Goldschmidt
   * ip4.c: fixed bug #35927: missing refragmentaion in ip_forward
- 
+
   2012-03-20: Simon Goldschmidt (patch by Mason)
   * netdb.c: fixed bug #35907: lwip_gethostbyname_r returns an invalid h_addr_list
- 
+
   2012-03-12: Simon Goldschmidt (patch by Bostjan Meglic)
   * ppp.c: fixed bug #35809: PPP GetMask(): Compiler warning on big endian,
     possible bug on little endian system
@@ -1706,7 +1709,7 @@ HISTORY
   2011-03-27: Simon Goldschmidt
   * sockets.c: Fixed bug #32906: lwip_connect+lwip_send did not work for udp and
     raw pcbs with LWIP_TCPIP_CORE_LOCKING==1.
-  
+
   2011-03-27: Simon Goldschmidt
   * tcp_out.c: Fixed bug #32820 (Outgoing TCP connections created before route
     is present never times out) by starting retransmission timer before checking
@@ -1759,7 +1762,7 @@ HISTORY
   2010-11-23: Simon Goldschmidt
   * tcp_in.c: Fixed bug #30577: tcp_input: don't discard ACK-only packets after
     refusing 'refused_data' again.
-  
+
   2010-11-22: Simon Goldschmidt
   * sockets.c: Fixed bug #31590: getsockopt(... SO_ERROR ...) gives EINPROGRESS
     after a successful nonblocking connection.
@@ -1804,21 +1807,21 @@ HISTORY
   2010-08-01: Simon Goldschmidt (patch by Greg Renda)
   * ppp.c: Applied patch #7264 (PPP protocols are rejected incorrectly on big
     endian architectures)
-  
+
   2010-07-28: Simon Goldschmidt
   * api_lib.c, api_msg.c, sockets.c, mib2.c: Fixed compilation with TCP or UDP
     disabled.
-  
+
   2010-07-27: Simon Goldschmidt
   * tcp.c: Fixed bug #30565 (tcp_connect() check bound list): that check did no
     harm but never did anything
-  
+
   2010-07-21: Simon Goldschmidt
   * ip.c: Fixed invalid fix for bug #30402 (CHECKSUM_GEN_IP_INLINE does not
     add IP options)
 
   2010-07-16: Kieran Mansley
-  * msg_in.c: Fixed SNMP ASN constant defines to not use ! operator 
+  * msg_in.c: Fixed SNMP ASN constant defines to not use ! operator
 
   2010-07-10: Simon Goldschmidt
   * ip.c: Fixed bug #30402: CHECKSUM_GEN_IP_INLINE does not add IP options
@@ -1922,7 +1925,7 @@ HISTORY
 
   2010-03-05: Simon Goldschmidt
   * api_msg.c: Correctly set TCP_WRITE_FLAG_MORE when netconn_write is split
-    into multiple calls to tcp_write.    
+    into multiple calls to tcp_write.
 
   2010-02-21: Simon Goldschmidt
   * opt.h, mem.h, dns.c: task #10140: Remove DNS_USES_STATIC_BUF (keep
@@ -2382,7 +2385,7 @@ HISTORY
     sent to mbox
 
   2009-06-25 Kieran Mansley
-  * api_msg.c api.h: BUG26722: initialise netconn write variables 
+  * api_msg.c api.h: BUG26722: initialise netconn write variables
     in netconn_alloc
 
   2009-06-25 Kieran Mansley
@@ -2390,7 +2393,7 @@ HISTORY
 
   2009-06-25 Kieran Mansley
   * tcp.c, tcp_in.c, tcp_out.c, tcp.h: BUG26301 and BUG26267: correct
-    simultaneous close behaviour, and make snd_nxt have the same meaning 
+    simultaneous close behaviour, and make snd_nxt have the same meaning
     as in the RFCs.
 
   2009-05-12 Simon Goldschmidt
@@ -2526,7 +2529,7 @@ HISTORY
   * tcp.c, tcp_in.c, tcp.h: add tcp_abandon() to cope with dropping
     connections where no reset required (bug #25622)
 
-  * tcp_out.c: set TCP_ACK flag on keepalive and zero window probes 
+  * tcp_out.c: set TCP_ACK flag on keepalive and zero window probes
     (bug #20779)
 
   2009-02-18 Simon Goldschmidt (Jonathan Larmour and Bill Auerbach)
@@ -2562,7 +2565,7 @@ HISTORY
     out of pool pbufs.
 
   2008-12-19 Simon Goldschmidt
-  * many files: patch #6699: fixed some warnings on platform where sizeof(int) == 2 
+  * many files: patch #6699: fixed some warnings on platform where sizeof(int) == 2
 
   2008-12-10 Tamas Somogyi, Frédéric Bernon
   * sockets.c: fixed bug #25051: lwip_recvfrom problem with udp: fromaddr and
@@ -2647,7 +2650,7 @@ HISTORY
     made from lwipopts.h. Fix comment on how to override LWIP_CHKSUM.
 
   2008-01-22 Frédéric Bernon
-  * tcp.c, tcp_in.c, tcp.h, opt.h: Rename LWIP_CALCULATE_EFF_SEND_MSS in 
+  * tcp.c, tcp_in.c, tcp.h, opt.h: Rename LWIP_CALCULATE_EFF_SEND_MSS in
     TCP_CALCULATE_EFF_SEND_MSS to have coherent TCP options names.
 
   2008-01-14 Frédéric Bernon
@@ -2657,7 +2660,7 @@ HISTORY
 
   2008-01-14 Frédéric Bernon, Marc Chaland
   * ip.c: Integrate patch #6369" ip_input : checking before realloc".
-  
+
   2008-01-12 Frédéric Bernon
   * tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field
     netconn::sem per netconn::op_completed like suggested for the task #7490
@@ -2683,8 +2686,8 @@ HISTORY
     Introduce changes for task #7490 "Add return value to sys_mbox_post" with some
     modifications in the sys_mbox api: sys_mbox_new take a "size" parameters which
     indicate the number of pointers query by the mailbox. There is three defines
-    in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox, and for the 
-    netconn::acceptmbox. Port maintainers, you can decide to just add this new 
+    in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox, and for the
+    netconn::acceptmbox. Port maintainers, you can decide to just add this new
     parameter in your implementation, but to ignore it to keep the previous behavior.
     The new sys_mbox_trypost function return a value to know if the mailbox is
     full or if the message is posted. Take a look to sys_arch.txt for more details.
@@ -2808,7 +2811,7 @@ HISTORY
     Note that previous "copy" parameter for "write" APIs is now called "apiflags".
 
   2007-10-24 Frédéric Bernon
-  * api.h, api_lib.c, api_msg.c: Add macro API_EVENT in the same spirit than 
+  * api.h, api_lib.c, api_msg.c: Add macro API_EVENT in the same spirit than
     TCP_EVENT_xxx macros to get a code more readable. It could also help to remove
     some code (like we have talk in "patch #5919 : Create compile switch to remove
     select code"), but it could be done later.
@@ -2828,7 +2831,7 @@ HISTORY
     all netifs (or ports) can use it.
 
   2007-10-05 Frédéric Bernon
-  * netifapi.h, netifapi.c: add function netifapi_netif_set_default. Change the 
+  * netifapi.h, netifapi.c: add function netifapi_netif_set_default. Change the
     common function to reduce a little bit the footprint (for all functions using
     only the "netif" parameter).
 
@@ -2852,7 +2855,7 @@ HISTORY
     or snmp_add_sysuptime(), and to define the SNMP_GET_SYSUPTIME(sysuptime) macro.
     This one is undefined by default in mib2.c. SNMP_GET_SYSUPTIME is called inside
     snmp_get_sysuptime(u32_t *value), and enable to change "sysuptime" value only
-    when it's queried (any direct call to "sysuptime" is changed by a call to 
+    when it's queried (any direct call to "sysuptime" is changed by a call to
     snmp_get_sysuptime).
 
   2007-09-09 Frédéric Bernon, Bill Florac
@@ -2933,7 +2936,7 @@ HISTORY
   2007-08-26 Marc Boucher
   * api_msg.c: do_close_internal(): Reset the callbacks and arg (conn) to NULL
     since they can under certain circumstances be called with an invalid conn
-    pointer after the connection has been closed (and conn has been freed). 
+    pointer after the connection has been closed (and conn has been freed).
 
   2007-08-25 Frédéric Bernon (Artem Migaev's Patch)
   * netif.h, netif.c: Integrate "patch #6163 : Function to check if link layer is up".
@@ -2945,11 +2948,11 @@ HISTORY
 
   2007-08-22 Frédéric Bernon
   * tcpip.h, tcpip.c, ethernetif.c, opt.h: remove options ETHARP_TCPIP_INPUT &
-    ETHARP_TCPIP_ETHINPUT, now, only "ethinput" code is supported, even if the 
+    ETHARP_TCPIP_ETHINPUT, now, only "ethinput" code is supported, even if the
     name is tcpip_input (we keep the name of 1.2.0 function).
 
   2007-08-17 Jared Grubb
-  * memp_std.h, memp.h, memp.c, mem.c, stats.c: (Task #7136) Centralize mempool 
+  * memp_std.h, memp.h, memp.c, mem.c, stats.c: (Task #7136) Centralize mempool
     settings into new memp_std.h and optional user file lwippools.h. This adds
     more dynamic mempools, and allows the user to create an arbitrary number of
     mempools for mem_malloc.
@@ -3156,32 +3159,32 @@ HISTORY
     snmp_set_sysname.
 
   2007-03-28 Frédéric Bernon
-  * netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to allow to 
+  * netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to allow to
     initialize a network interface's flag with. It tell this interface is an ethernet
     device, and we can use ARP with it to do a "gratuitous ARP" (RFC 3220 "IP Mobility
     Support for IPv4" section 4.6) when interface is "up" with netif_set_up().
 
   2007-03-26 Frédéric Bernon, Jonathan Larmour
   * opt.h, tcpip.c: New configuration option LWIP_ARP allow to disable ARP init at build
-    time if you only use PPP or SLIP. The default is enable. Note we don't have to call 
+    time if you only use PPP or SLIP. The default is enable. Note we don't have to call
     etharp_init in your port's initilization sequence if you use tcpip.c, because this call
     is done in tcpip_init function.
 
   2007-03-22 Frédéric Bernon
   * stats.h, stats.c, msg_in.c: Stats counters can be change to u32_t if necessary with the
     new option LWIP_STATS_LARGE. If you need this option, define LWIP_STATS_LARGE to 1 in
-    your lwipopts.h. More, unused counters are not defined in the stats structs, and not 
+    your lwipopts.h. More, unused counters are not defined in the stats structs, and not
     display by stats_display(). Note that some options (SYS_STATS and RAW_STATS) are defined
     but never used. Fix msg_in.c with the correct #if test for a stat display.
 
   2007-03-21 Kieran Mansley
-  * netif.c, netif.h: Apply patch#4197 with some changes (originator: rireland@hmgsl.com). 
+  * netif.c, netif.h: Apply patch#4197 with some changes (originator: rireland@hmgsl.com).
     Provides callback on netif up/down state change.
 
   2007-03-11 Frédéric Bernon, Mace Gael, Steve Reynolds
   * sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, igmp.h, igmp.c,
     ip.c, netif.h, tcpip.c, opt.h:
-    New configuration option LWIP_IGMP to enable IGMP processing. Based on only one 
+    New configuration option LWIP_IGMP to enable IGMP processing. Based on only one
     filter per all network interfaces. Declare a new function in netif to enable to
     control the MAC filter (to reduce lwIP traffic processing).
 
@@ -3204,7 +3207,7 @@ HISTORY
   * snmp_msg.h, msg_in.c: SNMP UDP ports can be configured at compile time.
 
   2007-03-06 Frédéric Bernon
-  * api.h, api_lib.c, sockets.h, sockets.c, tcpip.c, sys.h, sys.c, err.h: 
+  * api.h, api_lib.c, sockets.h, sockets.c, tcpip.c, sys.h, sys.c, err.h:
     Implement SO_RCVTIMEO on UDP sockets/netconn.
 
   2007-02-28 Kieran Mansley (based on patch from Simon Goldschmidt)
@@ -3246,7 +3249,7 @@ HISTORY
   and/or warnings on some systems where mem_size_t and size_t differ.
   * pbuf.c, ppp.c: Fix warnings on some systems with mem_malloc.
 
-  2008-03-04 Kieran Mansley (contributions by others) 
+  2008-03-04 Kieran Mansley (contributions by others)
   * Numerous small compiler error/warning fixes from contributions to
     mailing list after 1.3.0 release candidate made.
 
@@ -3363,7 +3366,7 @@ HISTORY
     type change. Any compiler should cause an error without any changes in
     yours netconn_peer calls (so, it can't be a "silent change"). It also
     reduce a little bit the footprint for socket layer (lwip_getpeername &
-    lwip_getsockname use now a common lwip_getaddrname function since 
+    lwip_getsockname use now a common lwip_getaddrname function since
     netconn_peer & netconn_addr have the same parameters).
 
   2007-09-20 Simon Goldschmidt
@@ -3383,13 +3386,13 @@ HISTORY
     if they are not defined in cc.h, in the same spirit than "lwip/opt.h" for lwipopts.h.
 
   2007-08-30 Frédéric Bernon
-  * igmp.h, igmp.c: Some changes to remove some redundant code, add some traces, 
+  * igmp.h, igmp.c: Some changes to remove some redundant code, add some traces,
     and fix some coding style.
 
   2007-08-28 Frédéric Bernon
   * tcpip.c: Fix TCPIP_MSG_INPKT processing: now, tcpip_input can be used for any
-    kind of packets. These packets are considered like Ethernet packets (payload 
-    pointing to ethhdr) if the netif got the NETIF_FLAG_ETHARP flag. Else, packets 
+    kind of packets. These packets are considered like Ethernet packets (payload
+    pointing to ethhdr) if the netif got the NETIF_FLAG_ETHARP flag. Else, packets
     are considered like IP packets (payload pointing to iphdr).
 
   2007-08-27 Frédéric Bernon
@@ -3487,7 +3490,7 @@ HISTORY
   2007-06-28 Frédéric Bernon
   * netifapi.h, netifapi.c, tcpip.h, tcpip.c: Update code to handle the option
     LWIP_TCPIP_CORE_LOCKING, and do some changes to be coherent with last modifications
-    in api_lib/api_msg (use pointers and not type with table, etc...) 
+    in api_lib/api_msg (use pointers and not type with table, etc...)
 
   2007-06-26 Simon Goldschmidt
   * udp.h: Fixed bug #20259: struct udp_hdr was lacking the packin defines.
@@ -3589,7 +3592,7 @@ HISTORY
 
   2007-05-16 Frédéric Bernon
   * tcpip.c, igmp.h, igmp.c: Fixed bug "#19800 : IGMP: igmp_tick() will not work
-    with NO_SYS=1". Note that igmp_init is always in tcpip_thread (and not in 
+    with NO_SYS=1". Note that igmp_init is always in tcpip_thread (and not in
     tcpip_init) because we have to be sure that network interfaces are already
     added (mac filter is updated only in igmp_init for the moment).
 
@@ -3736,7 +3739,7 @@ HISTORY
 
   2007-03-20 Frédéric Bernon
   * tcpip.c: Initialize tcpip's mbox, and verify if initialized in tcpip_input,
-    tcpip_ethinput, tcpip_callback, tcpip_apimsg, to fix a init problem with 
+    tcpip_ethinput, tcpip_callback, tcpip_apimsg, to fix a init problem with
     network interfaces. Also fix a compiler warning.
 
   2007-03-20 Kieran Mansley
@@ -3828,13 +3831,13 @@ HISTORY
   * rawapi.txt: Fix documentation mismatch with etharp.h about etharp_tmr's call
     interval.
 
-  2007-02-28 Kieran Mansley 
+  2007-02-28 Kieran Mansley
   * pbuf.c: Fix BUG#17645 - ensure pbuf payload pointer is not moved
     outside the region of the pbuf by pbuf_header()
 
-  2007-02-28 Kieran Mansley 
+  2007-02-28 Kieran Mansley
   * sockets.c: Fix BUG#19161 - ensure milliseconds timeout is non-zero
-    when supplied timeout is also non-zero 
+    when supplied timeout is also non-zero
 
 (STABLE-1.2.0)
 
@@ -3918,7 +3921,7 @@ HISTORY
     in accept() by Kevin Lawson.
 
   2006-05-26 Christiaan Simons
-  * api_lib.c: Removed conn->sem creation and destruction 
+  * api_lib.c: Removed conn->sem creation and destruction
     from netconn_write() and added sys_sem_new to netconn_new_*.
 
 (STABLE-1_1_1)
@@ -3988,7 +3991,7 @@ HISTORY
   * dhcp.c: Decline messages were not multicast but unicast.
   * etharp.c: ETHARP_CREATE is renamed to ETHARP_TRY_HARD.
     Do not try hard to insert arbitrary packet's source address,
-    etharp_ip_input() now calls etharp_update() without ETHARP_TRY_HARD. 
+    etharp_ip_input() now calls etharp_update() without ETHARP_TRY_HARD.
     etharp_query() now always DOES call ETHARP_TRY_HARD so that users
     querying an address will see it appear in the cache (DHCP could
     suffer from this when a server invalidly gave an in-use address.)

+ 1 - 1
FEATURES

@@ -4,7 +4,7 @@ The focus of the lwIP TCP/IP implementation is to reduce resource usage while st
 
 Main features include:
 - Protocols: IP, IPv6, ICMP, ND, MLD, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, 6LowPAN (via IEEE 802.15.4, BLE or ZEP; since v2.1.0)
-- DHCP client, stateless DHCPv6 (since v2.1.0), DNS client (incl. mDNS hostname resolver), AutoIP/APIPA (Zeroconf), SNMP agent (v1, v2c, v3 (since v2.1.0), private MIB support & MIB compiler)
+- DHCP client, stateless DHCPv6 (since v2.1.0), DNS client (incl. mDNS hostname resolver), AutoIP/APIPA (Zeroconf), ACD (Address Conflict Detection), SNMP agent (v1, v2c, v3 (since v2.1.0), private MIB support & MIB compiler)
 - APIs: specialized APIs for enhanced performance & zero copy, optional Berkeley-alike socket API
 - Extended features: IP forwarding over multiple network interfaces
 - Extended TCP features: congestion control, RTT estimation and fast recovery/fast retransmit, sending SACKs (since v2.1.0), "altcp": nearly transparent TLS for any tcp pcb (since v2.1.0)

+ 3 - 2
README

@@ -17,12 +17,13 @@ FEATURES
     multiple network interfaces
   * ICMP (Internet Control Message Protocol) for network maintenance and debugging
   * IGMP (Internet Group Management Protocol) for multicast traffic management
-  * MLD (Multicast listener discovery for IPv6). Aims to be compliant with 
+  * MLD (Multicast listener discovery for IPv6). Aims to be compliant with
     RFC 2710. No support for MLDv2
   * ND (Neighbor discovery and stateless address autoconfiguration for IPv6).
     Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862
     (Address autoconfiguration)
-  * DHCP, AutoIP/APIPA (Zeroconf) and (stateless) DHCPv6
+  * DHCP, AutoIP/APIPA (Zeroconf), ACD (Address Conflict Detection)
+    and (stateless) DHCPv6
   * UDP (User Datagram Protocol) including experimental UDP-lite extensions
   * TCP (Transmission Control Protocol) with congestion control, RTT estimation
     fast recovery/fast retransmit and sending SACKs