xref: /nrf52832-nimble/rt-thread/components/net/uip/uip-1.0-changelog.txt (revision 104654410c56c573564690304ae786df310c91fc)
1* A new API: protosockets that are similar to BSD sockets but does not
2  require any underlying multithreading system.
3
4* Very rudimentary IPv6 support
5
6* New application: DHCP client. Web server rewritten with protosockets.
7
8* Removed uIP zero-copy functionality in order to simplify uIP device
9  driver coding: outbound packets are now *always* stored in full in
10  the uip_buf buffer.
11
12* Checksum computation is now part of uip.c, but it still is possible
13  to implement them in assembly code by specifying a configuration
14  option. Checksum code now runs on architectures with 2-byte alignment.
15
16* Added TCP persistent timer.
17
18* Made all IP address representations use the new uip_ipaddr_ip
19  datatype for clarity.
20
21* Updated window behavior so that sending to a host with a small open
22  window works better now.
23
24* UDP API change: uip_udp_new() now takes port numbers in network byte
25  order like TCP functions.
26
27* Allow reception of packets when no IP address is configured to make
28  DHCP work.
29
30* Moved Ethernet address into main uIP module from ARP module.
31
32* Made constants explicit #defines and moved them out of the code
33  (header sizes, TCP options, TCP header length field).
34
35* If uip_len is less than that reported by the IP header, the packet
36  is discarded. If uip_len is greater than the length reported by the
37  IP header, uip_len is adjusted.
38
39* Moved header size definitions into header file.
40
41* Added uIP call for polling an application without triggering any
42  timer events. Removed redundant assignments of uip_len and uip_slen.
43
44* Removed compiler warning about icmp_input label being defined when
45  UIP_PINGADDRCONF was not used.
46
47* Added UIP_APPDATA_SIZE macro that holds the available buffer size
48  for user data.
49
50* Added uip_udp_bind() call.
51
52* Moved checksum code into main uIP module.
53
54* Switched the TCP, UDP and IP header structures to be structs rather
55  than typedefs.
56
57* Prefixed TCP state names with UIP_ to avoid name space
58  contamination.
59
60* Changed declarations of uip_appdatap and friends to void * to avoid
61  explicit typecasts.
62
63* Bugfixes
64
65  o TCP: Fixed bug with high byte of peer window size.
66
67  o TCP: Fixed bug that in some cases prevented concurrent reception and
68    transmission of TCP data.
69
70  o TCP: uip_connect() didn't correctly calculate age of TIME_WAIT
71    connections.
72
73  o TCP: Array index for uip_conns[] array was out of bounds in
74    comparison. Comparison changed to make index within bounds.
75
76  o TCP: if the remote host crashes and tries to reestablish an old
77    connection, uIP should respond with an ACK with the correct
78    sequence and acknowledgment numbers, to which the remote host
79    should respond with an ACK. uIP did not respond with the correct
80    ACK.
81
82  o TCP: Fixed check for SYNACK segment: now checks only relevant TCP
83    control flags and discards flags reserved for future expansion.
84
85  o TCP: Fixed bug where uIP did not inform application that a connection
86    had been aborted during an active open.
87
88  o TCP: FIN segment was accepted even though application had stopped
89    incoming data with uip_stop().
90
91  o TCP: A FINACK segment would not always correctly acknowledge data.
92
93  o UDP: checksums are now calculated after all fields have been
94    filled in.
95
96  o UDP: network byte order on lastport in uip_udp_new().
97
98  o IP: memset() bugs in IP fragment reassembly code fixed.
99