blob: bf2a14c323d0803767eb020cca07637885199080 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef QUICHE_COMMON_QUICHE_TYPES_H_
#define QUICHE_COMMON_QUICHE_TYPES_H_
#include <cstdint>
namespace quiche {
using QuicheByteCount = uint64_t;
// The two bits in the IP header for Explicit Congestion Notification can take
// one of four values.
enum QuicheEcnCodepoint : uint8_t {
// The NOT-ECT codepoint, indicating the packet sender is not using (or the
// network has disabled) ECN.
ECN_NOT_ECT = 0,
// The ECT(1) codepoint, indicating the packet sender is using Low Latency,
// Low Loss, Scalable Throughput (L4S) ECN (RFC9330).
ECN_ECT1 = 1,
// The ECT(0) codepoint, indicating the packet sender is using classic ECN
// (RFC3168).
ECN_ECT0 = 2,
// The CE ("Congestion Experienced") codepoint, indicating the packet sender
// is using ECN, and a router is experiencing congestion.
ECN_CE = 3,
};
} // namespace quiche
#endif // QUICHE_COMMON_QUICHE_TYPES_H_