# 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, PRI_COUNT> &queues_for( PortId p) const = 0` ## `SwitchBuffer::PerPortSched::queues_for` `virtual std::array, 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