Files
dofs/docs/network/switch/switch_buffer.md

2.8 KiB

network/switch/switch_buffer.h

SwitchBuffer::PerPortSched::drain_once

void drain_once(PortId port)

SwitchBuffer::PerPortSched::drain_one_common

bool drain_one_common(PortId port)

SwitchBuffer::PerPortSched::on_dequeue_commit

virtual void on_dequeue_commit(PortId port, Bytes sz) = 0

SwitchBuffer::PerPortSched::on_enqueue_cap_check

virtual bool on_enqueue_cap_check(PortId port, Bytes sz) = 0

SwitchBuffer::PerPortSched::on_enqueue_commit

virtual void on_enqueue_commit(PortId port, Bytes sz) = 0

SwitchBuffer::PerPortSched::queued_bytes_port

Bytes queued_bytes_port(PortId p) const noexcept

SwitchBuffer::PerPortSched::queued_bytes_total

Bytes queued_bytes_total() const noexcept

SwitchBuffer::PerPortSched::queues_for

virtual const std::array<std::deque<Queued>, PRI_COUNT> &queues_for( PortId p) const = 0

SwitchBuffer::PerPortSched::queues_for

virtual std::array<std::deque<Queued>, PRI_COUNT> &queues_for(PortId p) = 0

SwitchBuffer::PerPortSched::schedule_drain_if_needed

void schedule_drain_if_needed(PortId port)

SwitchBuffer::PerPortSched::try_reserve_and_send

std::optional<Time> try_reserve_and_send(PortId port, Queued &q)

SwitchBuffer::buffer_size

Bytes buffer_size() const noexcept

SwitchBuffer::drain_one

virtual bool drain_one(PortId port) = 0

SwitchBuffer::enqueue_packet

virtual bool enqueue_packet(const Packet &pkt, PortId egress, FlowPriority prio) = 0

SwitchBuffer::owner

const NetworkSwitch *owner() const noexcept

SwitchBuffer::port_buffered

Bytes port_buffered(PortId p) const noexcept

SwitchBuffer::port_cnt

uint16_t port_cnt() const noexcept

SwitchBuffer::ports_buffered

const std::vector<Bytes> &ports_buffered() const noexcept

void set_egress_links(const std::vector<Link*> &links)

SwitchBuffer::set_share_ctrl

void set_share_ctrl(uint8_t pct) noexcept

SwitchBuffer::set_share_elephant

void set_share_elephant(uint8_t pct) noexcept

SwitchBuffer::set_share_mice

void set_share_mice(uint8_t pct) noexcept

SwitchBuffer::share_ctrl

uint8_t share_ctrl() const noexcept

SwitchBuffer::share_elephant

uint8_t share_elephant() const noexcept

SwitchBuffer::share_mice

uint8_t share_mice() const noexcept

SwitchBuffer::simulator

const Simulator *simulator() const noexcept

SwitchBuffer::type

SwitchBufferType type() const noexcept

SwitchBuffer::~SwitchBuffer

virtual ~SwitchBuffer() = default

drain_once

void drain_once(PortId port);

drain_one_common

bool drain_one_common(PortId port);

schedule_drain_if_needed

void schedule_drain_if_needed(PortId port);

try_reserve_and_send

std::optional<Time> try_reserve_and_send(PortId port, Queued &q);