lwip-1.4.1 (partial)

Dependents:   IGLOO_board

Committer:
ua1arn
Date:
Tue Jul 24 17:36:01 2018 +0000
Revision:
1:119c4f7144c8
Parent:
0:c2ca3c5ded62
lwip 1.4.1 with necessary servers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ua1arn 0:c2ca3c5ded62 1 This file lists major changes between release versions that require
ua1arn 0:c2ca3c5ded62 2 ports or applications to be changed. Use it to update a port or an
ua1arn 0:c2ca3c5ded62 3 application written for an older version of lwIP to correctly work
ua1arn 0:c2ca3c5ded62 4 with newer versions.
ua1arn 0:c2ca3c5ded62 5
ua1arn 0:c2ca3c5ded62 6
ua1arn 0:c2ca3c5ded62 7 (CVS HEAD)
ua1arn 0:c2ca3c5ded62 8
ua1arn 0:c2ca3c5ded62 9 * [Enter new changes just after this line - do not remove this line]
ua1arn 0:c2ca3c5ded62 10
ua1arn 0:c2ca3c5ded62 11 ++ Application changes:
ua1arn 0:c2ca3c5ded62 12
ua1arn 0:c2ca3c5ded62 13 * Replaced struct ip_addr by typedef ip_addr_t (struct ip_addr is kept for
ua1arn 0:c2ca3c5ded62 14 compatibility to old applications, but will be removed in the future).
ua1arn 0:c2ca3c5ded62 15
ua1arn 0:c2ca3c5ded62 16 * Renamed mem_realloc() to mem_trim() to prevent confusion with realloc()
ua1arn 0:c2ca3c5ded62 17
ua1arn 0:c2ca3c5ded62 18 +++ Raw API:
ua1arn 0:c2ca3c5ded62 19 * Changed the semantics of tcp_close() (since it was rather a
ua1arn 0:c2ca3c5ded62 20 shutdown before): Now the application does *NOT* get any calls to the recv
ua1arn 0:c2ca3c5ded62 21 callback (aside from NULL/closed) after calling tcp_close()
ua1arn 0:c2ca3c5ded62 22
ua1arn 0:c2ca3c5ded62 23 * When calling tcp_abort() from a raw API TCP callback function,
ua1arn 0:c2ca3c5ded62 24 make sure you return ERR_ABRT to prevent accessing unallocated memory.
ua1arn 0:c2ca3c5ded62 25 (ERR_ABRT now means the applicaiton has called tcp_abort!)
ua1arn 0:c2ca3c5ded62 26
ua1arn 0:c2ca3c5ded62 27 +++ Netconn API:
ua1arn 0:c2ca3c5ded62 28 * Changed netconn_receive() and netconn_accept() to return
ua1arn 0:c2ca3c5ded62 29 err_t, not a pointer to new data/netconn.
ua1arn 0:c2ca3c5ded62 30
ua1arn 0:c2ca3c5ded62 31 +++ Socket API:
ua1arn 0:c2ca3c5ded62 32 * LWIP_SO_RCVTIMEO: when accept() or recv() time out, they
ua1arn 0:c2ca3c5ded62 33 now set errno to EWOULDBLOCK/EAGAIN, not ETIMEDOUT.
ua1arn 0:c2ca3c5ded62 34
ua1arn 0:c2ca3c5ded62 35 * Added a minimal version of posix fctl() to have a
ua1arn 0:c2ca3c5ded62 36 standardised way to set O_NONBLOCK for nonblocking sockets.
ua1arn 0:c2ca3c5ded62 37
ua1arn 0:c2ca3c5ded62 38 +++ all APIs:
ua1arn 0:c2ca3c5ded62 39 * correctly implemented SO(F)_REUSEADDR
ua1arn 0:c2ca3c5ded62 40
ua1arn 0:c2ca3c5ded62 41 ++ Port changes
ua1arn 0:c2ca3c5ded62 42
ua1arn 0:c2ca3c5ded62 43 +++ new files:
ua1arn 0:c2ca3c5ded62 44
ua1arn 0:c2ca3c5ded62 45 * Added 4 new files: def.c, timers.c, timers.h, tcp_impl.h:
ua1arn 0:c2ca3c5ded62 46
ua1arn 0:c2ca3c5ded62 47 * Moved stack-internal parts of tcp.h to tcp_impl.h, tcp.h now only contains
ua1arn 0:c2ca3c5ded62 48 the actual application programmer's API
ua1arn 0:c2ca3c5ded62 49
ua1arn 0:c2ca3c5ded62 50 * Separated timer implementation from sys.h/.c, moved to timers.h/.c;
ua1arn 0:c2ca3c5ded62 51 Added timer implementation for NO_SYS==1, set NO_SYS_NO_TIMERS==1 if you
ua1arn 0:c2ca3c5ded62 52 still want to use your own timer implementation for NO_SYS==0 (as before).
ua1arn 0:c2ca3c5ded62 53
ua1arn 0:c2ca3c5ded62 54 +++ sys layer:
ua1arn 0:c2ca3c5ded62 55
ua1arn 0:c2ca3c5ded62 56 * Converted mbox- and semaphore-functions to take pointers to sys_mbox_t/
ua1arn 0:c2ca3c5ded62 57 sys_sem_t;
ua1arn 0:c2ca3c5ded62 58
ua1arn 0:c2ca3c5ded62 59 * Converted sys_mbox_new/sys_sem_new to take pointers and return err_t;
ua1arn 0:c2ca3c5ded62 60
ua1arn 0:c2ca3c5ded62 61 * Added Mutex concept in sys_arch (define LWIP_COMPAT_MUTEX to let sys.h use
ua1arn 0:c2ca3c5ded62 62 binary semaphores instead of mutexes - as before)
ua1arn 0:c2ca3c5ded62 63
ua1arn 0:c2ca3c5ded62 64 +++ new options:
ua1arn 0:c2ca3c5ded62 65
ua1arn 0:c2ca3c5ded62 66 * Don't waste memory when chaining segments, added option TCP_OVERSIZE to
ua1arn 0:c2ca3c5ded62 67 prevent creating many small pbufs when calling tcp_write with many small
ua1arn 0:c2ca3c5ded62 68 blocks of data. Instead, pbufs are allocated larger than needed and the
ua1arn 0:c2ca3c5ded62 69 space is used for later calls to tcp_write.
ua1arn 0:c2ca3c5ded62 70
ua1arn 0:c2ca3c5ded62 71 * Added LWIP_NETIF_TX_SINGLE_PBUF to always copy to try to create single pbufs
ua1arn 0:c2ca3c5ded62 72 in tcp_write/udp_send.
ua1arn 0:c2ca3c5ded62 73
ua1arn 0:c2ca3c5ded62 74 * Added an additional option LWIP_ETHERNET to support ethernet without ARP
ua1arn 0:c2ca3c5ded62 75 (necessary for pure PPPoE)
ua1arn 0:c2ca3c5ded62 76
ua1arn 0:c2ca3c5ded62 77 * Add MEMP_SEPARATE_POOLS to place memory pools in separate arrays. This may
ua1arn 0:c2ca3c5ded62 78 be used to place these pools into user-defined memory by using external
ua1arn 0:c2ca3c5ded62 79 declaration.
ua1arn 0:c2ca3c5ded62 80
ua1arn 0:c2ca3c5ded62 81 * Added TCP_SNDQUEUELOWAT corresponding to TCP_SNDLOWAT
ua1arn 0:c2ca3c5ded62 82
ua1arn 0:c2ca3c5ded62 83 +++ new pools:
ua1arn 0:c2ca3c5ded62 84
ua1arn 0:c2ca3c5ded62 85 * Netdb uses a memp pool for allocating memory when getaddrinfo() is called,
ua1arn 0:c2ca3c5ded62 86 so MEMP_NUM_NETDB has to be set accordingly.
ua1arn 0:c2ca3c5ded62 87
ua1arn 0:c2ca3c5ded62 88 * DNS_LOCAL_HOSTLIST_IS_DYNAMIC uses a memp pool instead of the heap, so
ua1arn 0:c2ca3c5ded62 89 MEMP_NUM_LOCALHOSTLIST has to be set accordingly.
ua1arn 0:c2ca3c5ded62 90
ua1arn 0:c2ca3c5ded62 91 * Snmp-agent uses a memp pools instead of the heap, so MEMP_NUM_SNMP_* have
ua1arn 0:c2ca3c5ded62 92 to be set accordingly.
ua1arn 0:c2ca3c5ded62 93
ua1arn 0:c2ca3c5ded62 94 * PPPoE uses a MEMP pool instead of the heap, so MEMP_NUM_PPPOE_INTERFACES
ua1arn 0:c2ca3c5ded62 95 has to be set accordingly
ua1arn 0:c2ca3c5ded62 96
ua1arn 0:c2ca3c5ded62 97 * Integrated loopif into netif.c - loopif does not have to be created by the
ua1arn 0:c2ca3c5ded62 98 port any more, just define LWIP_HAVE_LOOPIF to 1.
ua1arn 0:c2ca3c5ded62 99
ua1arn 0:c2ca3c5ded62 100 * Added define LWIP_RAND() for lwip-wide randomization (needs to be defined
ua1arn 0:c2ca3c5ded62 101 in cc.h, e.g. used by igmp)
ua1arn 0:c2ca3c5ded62 102
ua1arn 0:c2ca3c5ded62 103 * Added printf-formatter X8_F to printf u8_t as hex
ua1arn 0:c2ca3c5ded62 104
ua1arn 0:c2ca3c5ded62 105 * The heap now may be moved to user-defined memory by defining
ua1arn 0:c2ca3c5ded62 106 LWIP_RAM_HEAP_POINTER as a void pointer to that memory's address
ua1arn 0:c2ca3c5ded62 107
ua1arn 0:c2ca3c5ded62 108 * added autoip_set_struct() and dhcp_set_struct() to let autoip and dhcp work
ua1arn 0:c2ca3c5ded62 109 with user-allocated structs instead of calling mem_malloc
ua1arn 0:c2ca3c5ded62 110
ua1arn 0:c2ca3c5ded62 111 * Added const char* name to mem- and memp-stats for easier debugging.
ua1arn 0:c2ca3c5ded62 112
ua1arn 0:c2ca3c5ded62 113 * Calculate the TCP/UDP checksum while copying to only fetch data once:
ua1arn 0:c2ca3c5ded62 114 Define LWIP_CHKSUM_COPY to a memcpy-like function that returns the checksum
ua1arn 0:c2ca3c5ded62 115
ua1arn 0:c2ca3c5ded62 116 * Added SO_REUSE_RXTOALL to pass received UDP broadcast/multicast packets to
ua1arn 0:c2ca3c5ded62 117 more than one pcb.
ua1arn 0:c2ca3c5ded62 118
ua1arn 0:c2ca3c5ded62 119 * Changed the semantics of ARP_QUEUEING==0: ARP_QUEUEING now cannot be turned
ua1arn 0:c2ca3c5ded62 120 off any more, if this is set to 0, only one packet (the most recent one) is
ua1arn 0:c2ca3c5ded62 121 queued (like demanded by RFC 1122).
ua1arn 0:c2ca3c5ded62 122
ua1arn 0:c2ca3c5ded62 123
ua1arn 0:c2ca3c5ded62 124 ++ Major bugfixes/improvements
ua1arn 0:c2ca3c5ded62 125
ua1arn 0:c2ca3c5ded62 126 * Implemented tcp_shutdown() to only shut down one end of a connection
ua1arn 0:c2ca3c5ded62 127 * Implemented shutdown() at socket- and netconn-level
ua1arn 0:c2ca3c5ded62 128 * Added errorset support to select() + improved select speed overhead
ua1arn 0:c2ca3c5ded62 129 * Merged pppd to v2.3.11 (including some backported bugfixes from 2.4.x)
ua1arn 0:c2ca3c5ded62 130 * Added timer implementation for NO_SYS==1 (may be disabled with NO_SYS_NO_TIMERS==1
ua1arn 0:c2ca3c5ded62 131 * Use macros defined in ip_addr.h to work with IP addresses
ua1arn 0:c2ca3c5ded62 132 * Implemented many nonblocking socket/netconn functions
ua1arn 0:c2ca3c5ded62 133 * Fixed ARP input processing: only add a new entry if a request was directed as us
ua1arn 0:c2ca3c5ded62 134 * mem_realloc() to mem_trim() to prevent confusion with realloc()
ua1arn 0:c2ca3c5ded62 135 * Some improvements for AutoIP (don't route/forward link-local addresses, don't break
ua1arn 0:c2ca3c5ded62 136 existing connections when assigning a routable address)
ua1arn 0:c2ca3c5ded62 137 * Correctly handle remote side overrunning our rcv_wnd in ooseq case
ua1arn 0:c2ca3c5ded62 138 * Removed packing from ip_addr_t, the packed version is now only used in protocol headers
ua1arn 0:c2ca3c5ded62 139 * Corrected PBUF_POOL_BUFSIZE for ports where ETH_PAD_SIZE > 0
ua1arn 0:c2ca3c5ded62 140 * Added support for static ARP table entries
ua1arn 0:c2ca3c5ded62 141
ua1arn 0:c2ca3c5ded62 142 (STABLE-1.3.2)
ua1arn 0:c2ca3c5ded62 143
ua1arn 0:c2ca3c5ded62 144 * initial version of this file