# network/nic/congestion_control.h ## `CongestionControl::CongestionControl` `explicit CongestionControl(Bytes init_cwnd, Bytes max_cwnd) noexcept` ## `CongestionControl::cwnd` `Bytes cwnd() const noexcept` ## `CongestionControl::cwnd_max` `Bytes cwnd_max() const noexcept` ## `CongestionControl::is_allowed_to_send` `virtual bool is_allowed_to_send(Bytes bytes_outstanding, Bytes next_bytes) const noexcept` ## `CongestionControl::update` `virtual void update(const Packet &pkt, Time rtt) noexcept = 0` ## `CongestionControl::~CongestionControl` `virtual ~CongestionControl() = default` ## `DCQCN::DCQCN` `explicit DCQCN(Bytes init_cwnd, Bytes max_cwnd) noexcept` ## `DCQCN::update` `virtual void update(const Packet &pkt, Time rtt) noexcept override` ## `NSCC::NSCC` `explicit NSCC(Bytes init_cwnd, Bytes max_cwnd) noexcept` ## `NSCC::update` `virtual void update(const Packet &pkt, Time rtt) noexcept override`