diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e499995 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,48 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +No unreleased changes yet + +## [0.7.0] - 2021-01-20 + +### New features +- tcp: Allow distinguishing between graceful (FIN) and ungraceful (RST) close. On graceful close, `recv()` now returns `Error::Finished`. On ungraceful close, `Error::Illegal` is returned, as before. (#351) +- sockets: Add support for attaching async/await Wakers to sockets. Wakers are woken on socket state changes. (#394) +- tcp: Set retransmission timeout based on an RTT estimation, instead of the previously fixed 100ms. This improves performance on high-latency links, such as mobile networks. (#406) +- tcp: add Delayed ACK support. On by default, with a 10ms delay. (#404) +- ip: Process broadcast packets directed to the subnet's broadcast address, such as 192.168.1.255. Previously broadcast packets were +only processed when directed to the 255.255.255.255 address. (#377) + +### Fixes +- udp,raw,icmp: Fix packet buffer panic caused by large payload (#332) +- dhcpv4: use offered ip in requested ip option (#310) +- dhcpv4: Re-export dhcp::clientv4::Config +- dhcpv4: Enable `proto-dhcpv4` feature by default. (#327) +- ethernet,arp: Allow for ARP retry during egress (#368) +- ethernet,arp: Only limit the neighbor cache rate after sending a request packet (#369) +- tcp: use provided ip for TcpSocket::connect instead of 0.0.0.0 (#329) +- tcp: Accept data packets in FIN_WAIT_2 state. (#350) +- tcp: Always send updated ack number in `ack_reply()`. (#353) +- tcp: allow sending ACKs in FinWait2 state. (#388) +- tcp: fix racey simultaneous close not sending FIN. (#398) +- tcp: Do not send window updates in states that shouldn't do so (#360) +- tcp: Return RST to unexpected ACK in SYN-SENT state. (#367) +- tcp: Take MTU into account during TcpSocket dispatch. (#384) +- tcp: don't send data outside the remote window (#387) +- phy: Take Ethernet header into account for MTU of RawSocket and TapInterface. (#393) +- phy: add null terminator to c-string passed to libc API (#372) + +### Quality of Life™ improvements +- Update to Rust 2018 edition (#396) +- Migrate CI to Github Actions (#390) +- Fix clippy lints, enforce clippy in CI (#395, #402, #403, #405, #407) +- Use #[non_exhaustive] for enums and structs (#409, #411) +- Simplify lifetime parameters of sockets, SocketSet, EthernetInterface (#410, #413) + +[Unreleased]: https://github.com/smoltcp-rs/smoltcp/compare/v0.7.0...HEAD +[0.7.0]: https://github.com/smoltcp-rs/smoltcp/compare/v0.6.0...v0.7.0