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