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