# network/link.h ## `Link::Link` `Link(Simulator *const sim, LinkId id, NetworkNode *a, PortId a_port, NetworkNode *b, PortId b_port, Time latency, double bandwidth_gbps) noexcept` ## `Link::bandwidth_gbps` `double bandwidth_gbps() const noexcept` ## `Link::dst_id` `NodeId dst_id() const noexcept` ## `Link::dst_port` `PortId dst_port() const noexcept` ## `Link::id` `LinkId id() const noexcept` ## `Link::next_available` `Time next_available(NodeId sender) const noexcept` ## `Link::propagation_latency` `Time propagation_latency() const noexcept` ## `Link::reserve` `std::optional reserve(Bytes bytes, NodeId sender) noexcept` ## `Link::schedule_delivery_after` `void schedule_delivery_after(Packet &pkt, NodeId caller, Time after)` ## `Link::send_pkt` `void send_pkt(Packet &pkt, NodeId caller)` ## `Link::serialization_time` `Time serialization_time(Bytes bytes) const noexcept` ## `Link::serialization_time` `static Time serialization_time(Bytes bytes, double gbps) noexcept` ## `Link::set_status` `void set_status(LinkStatus s, Time new_latency = Time(0), double new_bandwidth_gbps = 0.0)` ## `Link::src_id` `NodeId src_id() const noexcept` ## `Link::src_port` `PortId src_port() const noexcept` ## `Link::status` `LinkStatus status() const noexcept` ## `serialization_time` `static Time serialization_time(Bytes bytes, double gbps) noexcept;` ## `set_status` `void set_status(LinkStatus s, Time new_latency = Time(0), double new_bandwidth_gbps = 0.0);`