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