lwip-1.4.1 (partial)
lwip-1_4_1/UPGRADING@1:119c4f7144c8, 2018-07-24 (annotated)
- 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?
User | Revision | Line number | New 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 |