1 |
606 |
jeremybenn |
* 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.
|