future-proof-iot / RIOT-rs

RIOT-rs is an operating system for secure, memory-safe, low-power Internet of Things, written in Rust
Apache License 2.0
32 stars 12 forks source link

Examples use IPv4 instead of IPv6 #347

Open chrysn opened 2 weeks ago

chrysn commented 2 weeks ago

Our examples are decades behind in terms of IP versions; this is embarrassing enough that I'm putting it on the Next Release milestone.

There are no open issues about this yet, all I know are chats on that IPv6 support is still severely lacking in smoltcp or embassy-net.

Do you have pointers for this? Maybe some of it is already resolved.

Copied references from chat

IIUC embassy-net and smoltcp don't do SLAAC or dhcpv6

https://github.com/smoltcp-rs/smoltcp/issues/570

Would you like to work on fixing this bug?

Yes

chrysn commented 2 weeks ago

Tried things out now -- IPv6 with static configuration works just as well as IPv4. (Granted, it's weird to do it, but then, so is IPv4 on devices that'll do 6LoWPAN); the only caveat is that when the device is preconfigured with the address of the connected PC, we can't rely on a fixed address unless we also tell the user to configure that side statically (which we do on IPv4 but it's even weirder to do that then).

@kaspar030, was there anything else that did not work with v6? Otherwise I'd suggest migrating examples to v6 as that does not require host-side configuration.

(Most of the pain of this will be in my CoAP applications, because it will break a) the client demo that tries to contact the PC at a fixed address, and b) the CoAP security settings because that requires the address of the peer to be set in the credentials file, but both those will need enhancements anyhow).