Almost a year in the making, the highlights of the release are the migration to core::net
IP types, IPv6 multicast, TCP improvements, and many fixes. Smoltcp now connects your gadgets to the Internet better than ever.
- Minimum Supported Rust Version (MSRV) bumped to 1.80.
- iface
- IPv6 multicast (#914, #976, #988, #1009, #1012)
- Add
poll_egress()
andpoll_ingress_single()
methods for finer-grained control of what and how many packets are processed. (#954, #991, #993) - Multicast join/leave no longer requires access to device+timestamp. (#985)
- Reset expiry of entries in the neighbor cache on packet reception (#966)
- Honor
any_ip
for ARP (#880) - Honor
any_ip
for IPv6 (#900) - Use own source address for ARP and NDISC Solicitations (#984)
- fix panic when discarding HBH Option with multicast destination address (#996)
- fix panic with 6lowpan frag datagram_size < 40 (#997)
- fix panic if no suitable IPv6 src_addr is found (#895)
- Fix specific length IP packets not being fragmented (#1008)
- tcp
- Add support for congestion control (#907)
- Add support for simultaneous open (#1001)
- Add support for Timestamp option (#939)
- Send immediate ACKs after RMSS bytes of data (#1002)
- Do not ignore FIN if segment is partially outside the window. (#977)
- Correctly set internal sACK flag for client sockets (#995)
- Only reset remote_last_ts if some data is enqueued (#917)
- Don't delay ACKs for significant window updates (#935)
- Add
listen_endpoint
getter (#1005)
- socket
- phy
- wire
- Use core::net types for IP addresses. (#937, #994)
- Add missing exports in wire for DNS (#891)
- rename Scope to MulticastScope (#898)
- Re-export
dhcpv4::Flags
anddhcpv4::OpCode
(#901) - Make Address:v6() constructor const (#975)
- Ipv6RoutingHeader::clear_reserved: fix offsets for Type 2 routing headers. (#882)