Blame iscsiuio/src/uip-1.0-changelog.txt

Packit eace71
* A new API: protosockets that are similar to BSD sockets but does not
Packit eace71
  require any underlying multithreading system.
Packit eace71
Packit eace71
* Very rudimentary IPv6 support
Packit eace71
Packit eace71
* New application: DHCP client. Web server rewritten with protosockets.
Packit eace71
Packit eace71
* Removed uIP zero-copy functionality in order to simplify uIP device
Packit eace71
  driver coding: outbound packets are now *always* stored in full in
Packit eace71
  the uip_buf buffer.
Packit eace71
Packit eace71
* Checksum computation is now part of uip.c, but it still is possible
Packit eace71
  to implement them in assembly code by specifying a configuration
Packit eace71
  option. Checksum code now runs on architectures with 2-byte alignment.
Packit eace71
Packit eace71
* Added TCP persistent timer.
Packit eace71
Packit eace71
* Made all IP address representations use the new uip_ipaddr_ip
Packit eace71
  datatype for clarity.
Packit eace71
Packit eace71
* Updated window behavior so that sending to a host with a small open
Packit eace71
  window works better now.
Packit eace71
Packit eace71
* UDP API change: uip_udp_new() now takes port numbers in network byte
Packit eace71
  order like TCP functions.
Packit eace71
Packit eace71
* Allow reception of packets when no IP address is configured to make
Packit eace71
  DHCP work.
Packit eace71
Packit eace71
* Moved Ethernet address into main uIP module from ARP module.
Packit eace71
Packit eace71
* Made constants explicit #defines and moved them out of the code
Packit eace71
  (header sizes, TCP options, TCP header length field).
Packit eace71
Packit eace71
* If uip_len is less than that reported by the IP header, the packet
Packit eace71
  is discarded. If uip_len is greater than the length reported by the
Packit eace71
  IP header, uip_len is adjusted.
Packit eace71
Packit eace71
* Moved header size definitions into header file.
Packit eace71
Packit eace71
* Added uIP call for polling an application without triggering any
Packit eace71
  timer events. Removed redundant assignments of uip_len and uip_slen.
Packit eace71
Packit eace71
* Removed compiler warning about icmp_input label being defined when
Packit eace71
  UIP_PINGADDRCONF was not used.
Packit eace71
Packit eace71
* Added UIP_APPDATA_SIZE macro that holds the available buffer size
Packit eace71
  for user data.
Packit eace71
Packit eace71
* Added uip_udp_bind() call.
Packit eace71
Packit eace71
* Moved checksum code into main uIP module.
Packit eace71
Packit eace71
* Switched the TCP, UDP and IP header structures to be structs rather
Packit eace71
  than typedefs.
Packit eace71
Packit eace71
* Prefixed TCP state names with UIP_ to avoid name space
Packit eace71
  contamination.
Packit eace71
Packit eace71
* Changed declarations of uip_appdatap and friends to void * to avoid
Packit eace71
  explicit typecasts.
Packit eace71
Packit eace71
* Bugfixes
Packit eace71
Packit eace71
  o TCP: Fixed bug with high byte of peer window size.
Packit eace71
Packit eace71
  o TCP: Fixed bug that in some cases prevented concurrent reception and
Packit eace71
    transmission of TCP data.
Packit eace71
Packit eace71
  o TCP: uip_connect() didn't correctly calculate age of TIME_WAIT
Packit eace71
    connections.
Packit eace71
Packit eace71
  o TCP: Array index for uip_conns[] array was out of bounds in
Packit eace71
    comparison. Comparison changed to make index within bounds.
Packit eace71
Packit eace71
  o TCP: if the remote host crashes and tries to reestablish an old
Packit eace71
    connection, uIP should respond with an ACK with the correct
Packit eace71
    sequence and acknowledgment numbers, to which the remote host
Packit eace71
    should respond with an ACK. uIP did not respond with the correct
Packit eace71
    ACK.
Packit eace71
Packit eace71
  o TCP: Fixed check for SYNACK segment: now checks only relevant TCP
Packit eace71
    control flags and discards flags reserved for future expansion.
Packit eace71
Packit eace71
  o TCP: Fixed bug where uIP did not inform application that a connection
Packit eace71
    had been aborted during an active open.
Packit eace71
Packit eace71
  o TCP: FIN segment was accepted even though application had stopped
Packit eace71
    incoming data with uip_stop().
Packit eace71
Packit eace71
  o TCP: A FINACK segment would not always correctly acknowledge data.
Packit eace71
Packit eace71
  o UDP: checksums are now calculated after all fields have been
Packit eace71
    filled in.
Packit eace71
Packit eace71
  o UDP: network byte order on lastport in uip_udp_new().
Packit eace71
Packit eace71
  o IP: memset() bugs in IP fragment reassembly code fixed.