Cargo Features
[dependencies]
smoltcp = { version = "0.12.0", default-features = false, features = ["std", "alloc", "verbose", "defmt", "medium-ethernet", "medium-ip", "medium-ieee802154", "phy-raw_socket", "phy-tuntap_interface", "proto-ipv4", "proto-ipv4-fragmentation", "proto-dhcpv4", "proto-ipv6", "proto-ipv6-hbh", "proto-ipv6-fragmentation", "proto-ipv6-routing", "proto-rpl", "proto-sixlowpan", "proto-sixlowpan-fragmentation", "proto-dns", "proto-ipsec", "proto-ipsec-esp", "multicast", "socket", "socket-raw", "socket-udp", "socket-tcp", "socket-icmp", "socket-dhcpv4", "socket-dns", "socket-mdns", "socket-tcp-cubic", "socket-tcp-reno", "packetmeta-id", "async", "iface-max-addr-count-1", "iface-max-addr-count-2", "iface-max-addr-count-5", "iface-max-addr-count-8", "iface-max-multicast-group-count-2", "iface-max-multicast-group-count-3", "iface-max-multicast-group-count-4", "iface-max-multicast-group-count-6", "iface-max-multicast-group-count-8", "iface-max-multicast-group-count-32", "iface-max-multicast-group-count-128", "iface-max-multicast-group-count-512", "iface-max-multicast-group-count-1024", "iface-max-sixlowpan-address-context-count-1", "iface-max-sixlowpan-address-context-count-2", "iface-max-sixlowpan-address-context-count-3", "iface-max-sixlowpan-address-context-count-4", "iface-max-sixlowpan-address-context-count-5", "iface-max-sixlowpan-address-context-count-6", "iface-max-sixlowpan-address-context-count-7", "iface-max-sixlowpan-address-context-count-8", "iface-max-sixlowpan-address-context-count-16", "iface-max-sixlowpan-address-context-count-32", "iface-max-sixlowpan-address-context-count-64", "iface-max-sixlowpan-address-context-count-128", "iface-max-sixlowpan-address-context-count-256", "iface-max-sixlowpan-address-context-count-512", "iface-neighbor-cache-count-1", "iface-neighbor-cache-count-3", "iface-neighbor-cache-count-5", "iface-neighbor-cache-count-7", "iface-neighbor-cache-count-8", "iface-neighbor-cache-count-32", "iface-neighbor-cache-count-128", "iface-neighbor-cache-count-512", "iface-max-route-count-1", "iface-max-route-count-2", "iface-max-route-count-5", "iface-max-route-count-8", "iface-max-route-count-32", "iface-max-route-count-128", "iface-max-route-count-512", "fragmentation-buffer-size-256", "fragmentation-buffer-size-1024", "fragmentation-buffer-size-1500", "fragmentation-buffer-size-4096", "fragmentation-buffer-size-16384", "fragmentation-buffer-size-65536", "assembler-max-segment-count-2", "assembler-max-segment-count-3", "assembler-max-segment-count-4", "assembler-max-segment-count-16", "reassembly-buffer-size-256", "reassembly-buffer-size-1024", "reassembly-buffer-size-1500", "reassembly-buffer-size-4096", "reassembly-buffer-size-16384", "reassembly-buffer-size-65536", "reassembly-buffer-count-1", "reassembly-buffer-count-3", "reassembly-buffer-count-8", "reassembly-buffer-count-32", "ipv6-hbh-max-options-3", "ipv6-hbh-max-options-4", "ipv6-hbh-max-options-32", "dns-max-result-count-1", "dns-max-result-count-4", "dns-max-result-count-32", "dns-max-server-count-1", "dns-max-server-count-4", "dns-max-server-count-32", "dns-max-name-size-128", "dns-max-name-size-255", "rpl-relations-buffer-count-2", "rpl-relations-buffer-count-8", "rpl-relations-buffer-count-16", "rpl-relations-buffer-count-64", "rpl-parents-buffer-count-2", "rpl-parents-buffer-count-4", "rpl-parents-buffer-count-8", "rpl-parents-buffer-count-32", "log"] }
- std default phy-raw_socket phy-tuntap_interface = alloc
- alloc std
- verbose
- defmt
-
Enables defmt and defmt-03 of heapless
heapless:
Implement defmt::Format from defmt v0.3
- medium-ethernet default phy-tuntap_interface socket-dhcpv4 = socket
-
Affects
wire::RawHardwareAddress
,smoltcp::iface
,wire::HardwareAddress
… - medium-ip default = socket
-
Affects
smoltcp::iface
,wire::HardwareAddress
… - medium-ieee802154 default = proto-sixlowpan, socket
-
Affects
interface::Config.pan_id
,wire::ieee802154
,wire::MAX_HARDWARE_ADDRESS_LEN
,wire::RawHardwareAddress
,smoltcp::iface
,wire::HardwareAddress
… - phy-raw_socket default = libc, std
-
Affects
sys::bpf
,sys::raw_socket
… - phy-tuntap_interface default = libc, medium-ethernet, std
-
Affects
sys::tuntap_interface
… - proto-ipv4 default proto-dhcpv4 proto-ipv4-fragmentation
-
Affects
phy::ChecksumCapabilities.icmpv4
,ip::checksum.pseudo_header_v4
… - proto-ipv4-fragmentation default = proto-ipv4
- proto-dhcpv4 default socket-dhcpv4 = proto-ipv4
- proto-ipv6 default proto-ipv6-fragmentation? proto-ipv6-hbh? proto-ipv6-routing? proto-sixlowpan?
-
Affects
phy::ChecksumCapabilities.icmpv6
,ip::checksum.pseudo_header_v6
… - proto-ipv6-hbh proto-rpl? = proto-ipv6
- proto-ipv6-fragmentation = proto-ipv6
- proto-ipv6-routing proto-rpl? = proto-ipv6
- proto-rpl = proto-ipv6-hbh, proto-ipv6-routing
- proto-sixlowpan medium-ieee802154 proto-sixlowpan-fragmentation = proto-ipv6
- proto-sixlowpan-fragmentation default = proto-sixlowpan
- proto-dns default socket-dns
- proto-ipsec = proto-ipsec-ah, proto-ipsec-esp
- proto-ipsec-ah proto-ipsec-esp proto-ipsec?
- multicast default
- socket medium-ethernet medium-ieee802154 medium-ip socket-dhcpv4 socket-dns socket-icmp socket-raw socket-tcp socket-udp
-
Affects
smoltcp::socket
… - socket-raw default = socket
-
Affects
socket::raw
… - socket-udp default = socket
-
Affects
socket::udp
… - socket-tcp default = socket
-
Affects
socket::tcp
… - socket-icmp default = socket
-
Affects
socket::icmp
… - socket-dhcpv4 default = medium-ethernet, proto-dhcpv4, socket
-
Affects
socket::dhcpv4
… - socket-dns default socket-mdns = proto-dns, socket
-
Affects
socket::dns
… - socket-mdns default = socket-dns
- socket-tcp-cubic
-
Enable Cubic TCP congestion control algorithm, and it is used as a default congestion controller.
Cubic relies on double precision (
f64
) floating point operations, which may cause issues in some contexts:- Small embedded processors (such as Cortex-M0, Cortex-M1, and Cortex-M3) do not have an FPU, and floating point operations consume significant amounts of CPU time and Flash space.
- Interrupt handlers should almost always avoid floating-point operations.
- Kernel-mode code on desktop processors usually avoids FPU operations to reduce the penalty of saving and restoring FPU registers.
In all these cases,
CongestionControl::Reno
is a better choice of congestion control algorithm. - socket-tcp-reno
-
Enable Reno TCP congestion control algorithm, and it is used as a default congestion controller.
- default = async, log, medium-ethernet, medium-ieee802154, medium-ip, multicast, packetmeta-id, phy-raw_socket, phy-tuntap_interface, proto-dhcpv4, proto-dns, proto-ipv4, proto-ipv4-fragmentation, proto-ipv6, proto-sixlowpan-fragmentation, socket-dhcpv4, socket-dns, socket-icmp, socket-mdns, socket-raw, socket-tcp, socket-udp, std
-
These default features are set whenever
smoltcp
is added without
somewhere in the dependency tree.default-features = false - packetmeta-id default
-
Affects
phy::PacketMeta.id
… - async default
- iface-max-addr-count-1
-
BEGIN AUTOGENERATED CONFIG FEATURES
Generated by gen_config.py. DO NOT EDIT. - iface-max-addr-count-2
-
Default
- iface-max-addr-count-3 iface-max-addr-count-4 iface-max-addr-count-5
- iface-max-addr-count-6 iface-max-addr-count-7 iface-max-addr-count-8
- iface-max-multicast-group-count-1 iface-max-multicast-group-count-2
- iface-max-multicast-group-count-3
- iface-max-multicast-group-count-4
-
Default
- iface-max-multicast-group-count-5 iface-max-multicast-group-count-6
- iface-max-multicast-group-count-7 iface-max-multicast-group-count-8
- iface-max-multicast-group-count-16 iface-max-multicast-group-count-32
- iface-max-multicast-group-count-64 iface-max-multicast-group-count-128
- iface-max-multicast-group-count-256 iface-max-multicast-group-count-512
- iface-max-multicast-group-count-1024
- iface-max-sixlowpan-address-context-count-1
- iface-max-sixlowpan-address-context-count-2
- iface-max-sixlowpan-address-context-count-3
- iface-max-sixlowpan-address-context-count-4
-
Default
- iface-max-sixlowpan-address-context-count-5
- iface-max-sixlowpan-address-context-count-6
- iface-max-sixlowpan-address-context-count-7
- iface-max-sixlowpan-address-context-count-8
- iface-max-sixlowpan-address-context-count-16
- iface-max-sixlowpan-address-context-count-32
- iface-max-sixlowpan-address-context-count-64
- iface-max-sixlowpan-address-context-count-128
- iface-max-sixlowpan-address-context-count-256
- iface-max-sixlowpan-address-context-count-512
- iface-max-sixlowpan-address-context-count-1024 iface-neighbor-cache-count-1
- iface-neighbor-cache-count-2 iface-neighbor-cache-count-3
- iface-neighbor-cache-count-4 iface-neighbor-cache-count-5
- iface-neighbor-cache-count-6 iface-neighbor-cache-count-7
- iface-neighbor-cache-count-8
-
Default
- iface-neighbor-cache-count-16 iface-neighbor-cache-count-32
- iface-neighbor-cache-count-64 iface-neighbor-cache-count-128
- iface-neighbor-cache-count-256 iface-neighbor-cache-count-512
- iface-neighbor-cache-count-1024 iface-max-route-count-1
- iface-max-route-count-2
-
Default
- iface-max-route-count-3 iface-max-route-count-4 iface-max-route-count-5
- iface-max-route-count-6 iface-max-route-count-7 iface-max-route-count-8
- iface-max-route-count-16 iface-max-route-count-32
- iface-max-route-count-64 iface-max-route-count-128
- iface-max-route-count-256 iface-max-route-count-512
- iface-max-route-count-1024 fragmentation-buffer-size-256
- fragmentation-buffer-size-512 fragmentation-buffer-size-1024
- fragmentation-buffer-size-1500
-
Default
- fragmentation-buffer-size-2048 fragmentation-buffer-size-4096
- fragmentation-buffer-size-8192 fragmentation-buffer-size-16384
- fragmentation-buffer-size-32768 fragmentation-buffer-size-65536
- assembler-max-segment-count-1 assembler-max-segment-count-2
- assembler-max-segment-count-3
- assembler-max-segment-count-4
-
Default
- assembler-max-segment-count-8 assembler-max-segment-count-16
- assembler-max-segment-count-32 reassembly-buffer-size-256
- reassembly-buffer-size-512 reassembly-buffer-size-1024
- reassembly-buffer-size-1500
-
Default
- reassembly-buffer-size-2048 reassembly-buffer-size-4096
- reassembly-buffer-size-8192 reassembly-buffer-size-16384
- reassembly-buffer-size-32768 reassembly-buffer-size-65536
- reassembly-buffer-count-1
-
Default
- reassembly-buffer-count-2 reassembly-buffer-count-3
- reassembly-buffer-count-4 reassembly-buffer-count-8
- reassembly-buffer-count-16 reassembly-buffer-count-32
- ipv6-hbh-max-options-1 ipv6-hbh-max-options-2 ipv6-hbh-max-options-3
- ipv6-hbh-max-options-4
-
Default
- ipv6-hbh-max-options-8 ipv6-hbh-max-options-16 ipv6-hbh-max-options-32
- dns-max-result-count-1
-
Default
- dns-max-result-count-2 dns-max-result-count-3 dns-max-result-count-4
- dns-max-result-count-8 dns-max-result-count-16 dns-max-result-count-32
- dns-max-server-count-1
-
Default
- dns-max-server-count-2 dns-max-server-count-3 dns-max-server-count-4
- dns-max-server-count-8 dns-max-server-count-16 dns-max-server-count-32
- dns-max-name-size-64 dns-max-name-size-128
- dns-max-name-size-255
-
Default
- rpl-relations-buffer-count-1 rpl-relations-buffer-count-2
- rpl-relations-buffer-count-4 rpl-relations-buffer-count-8
- rpl-relations-buffer-count-16
-
Default
- rpl-relations-buffer-count-32 rpl-relations-buffer-count-64
- rpl-relations-buffer-count-128 rpl-parents-buffer-count-2
- rpl-parents-buffer-count-4
- rpl-parents-buffer-count-8
-
Default
- rpl-parents-buffer-count-16 rpl-parents-buffer-count-32
Features from optional dependencies
In crates that don't use the dep:
syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.
- log default
- libc phy-raw_socket phy-tuntap_interface