b97cacd521
Various parts of smoltcp require an arrow of time; a monotonically increasing timestamp. Most obviously this is TCP sockets, but the tracer and the pcap writer devices also benefit from having timestamps. There are a few ways this could be implemented: 1. using a static Cell, global for the entire smoltcp crate; 2. using a static method on Device; 3. using an instance method on Device; 4. passing the current timestamp into *Interface::poll. The first two options are undesirable because they create a notion of global clock, and interfere e.g. with mocking. The third option is undesirable because not all devices are inherently tied to a particular clock, e.g. a loopback device isn't. Therefore, the timestamp is injected into both sockets and devices through the *Interface::poll method. |
||
---|---|---|
.. | ||
arp_cache.rs | ||
ethernet.rs | ||
mod.rs |