tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ecn_marking.h (1305B)


      1 /*
      2 *  Copyright 2024 The WebRTC Project Authors. All rights reserved.
      3 *
      4 *  Use of this source code is governed by a BSD-style license
      5 *  that can be found in the LICENSE file in the root of the source
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 #ifndef API_TRANSPORT_ECN_MARKING_H_
     12 #define API_TRANSPORT_ECN_MARKING_H_
     13 
     14 namespace webrtc {
     15 
     16 // TODO: bugs.webrtc.org/42225697 - L4S support is slowly being developed.
     17 // Help is appreciated.
     18 
     19 // L4S Explicit Congestion Notification (ECN) .
     20 // https://www.rfc-editor.org/rfc/rfc9331.html ECT stands for ECN-Capable
     21 // Transport and CE stands for Congestion Experienced.
     22 
     23 // RFC-3168, Section 5
     24 // +-----+-----+
     25 // | ECN FIELD |
     26 // +-----+-----+
     27 //   ECT   CE         [Obsolete] RFC 2481 names for the ECN bits.
     28 //    0     0         Not-ECT
     29 //    0     1         ECT(1)
     30 //    1     0         ECT(0)
     31 //    1     1         CE
     32 
     33 enum class EcnMarking {
     34  kNotEct = 0,  // Not ECN-Capable Transport
     35  kEct1 = 1,    // ECN-Capable Transport
     36  kEct0 = 2,    // Not used by L4s (or webrtc.)
     37  kCe = 3,      // Congestion experienced
     38 };
     39 
     40 }  // namespace webrtc
     41 
     42 #endif  // API_TRANSPORT_ECN_MARKING_H_