# network/link.h ## class Link — public interface ### `void send_pkt(Packet &pkt, NodeId caller);` ### `void schedule_delivery_after(Packet &pkt, NodeId caller, Time after);` ### `Time next_available(NodeId sender) const noexcept;` ### `std::optional reserve(Bytes bytes, NodeId sender) noexcept;` ### `Time serialization_time(Bytes bytes) const noexcept { ... }` ### `return serialization_time(bytes, _bandwidth_gbps_cur);` ### `Time propagation_latency() const noexcept { ... }` ### `LinkId id() const noexcept { ... }` ### `LinkStatus status() const noexcept { ... }` ### `double bandwidth_gbps() const noexcept { ... }` ### `NodeId src_id() const noexcept { ... }` ### `NodeId dst_id() const noexcept { ... }` ### `PortId src_port() const noexcept { ... }` ### `PortId dst_port() const noexcept { ... }` ### `static Time serialization_time(Bytes bytes, double gbps) noexcept;`