fixed bug in attaching nics to hosts, changed documentation format and generator (buggy but usable)

This commit is contained in:
2025-09-14 00:40:53 -04:00
parent 9ab64e18a4
commit c4141cd683
40 changed files with 5223 additions and 577 deletions

View File

@@ -1,19 +1,37 @@
# 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<Reservation> 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;`
## `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<Reservation> 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);`