Skip to content

v0.12.0

Latest
Compare
Choose a tag to compare
@Dirbaio Dirbaio released this 28 Nov 00:26
· 2 commits to main since this release

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() and poll_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
    • UDP,ICMP,raw: Add send_queue/recv_queue (#1003)
    • ICMP: split ICMPv4/v6 accept and process (#887)
    • UDP: Store local and use local address in metadata (#904)
    • DNS: fix panic if server list is too long (#986)
    • DNS: fix panic if no valid source address is found (#987)
  • phy
    • Change mutability of RxToken's consume argument. (#924)
    • Add support for NetBSD (#883)
    • Add minimum support for iOS (#896)
    • Add BPF support for FreeBSD (#906)
    • disable checksums on loopback (#919)
  • 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 and dhcpv4::OpCode (#901)
    • Make Address:v6() constructor const (#975)
    • Ipv6RoutingHeader::clear_reserved: fix offsets for Type 2 routing headers. (#882)