1 /* 2 * Copyright (c) Facebook, Inc. and its affiliates. 3 * 4 * This source code is licensed under the MIT license found in the 5 * LICENSE file in the root directory of this source tree. 6 * 7 */ 8 9 #pragma once 10 11 #include <folly/String.h> 12 #include <quic/codec/Types.h> 13 #include "quic/QuicConstants.h" 14 15 namespace quic { 16 constexpr folly::StringPiece kShortHeaderPacketType = "1RTT"; 17 constexpr auto kVersionNegotiationPacketType = "version_negotiation"; 18 constexpr auto kHTTP3ProtocolType = "QUIC_HTTP3"; 19 constexpr auto kNoError = "no error"; 20 constexpr auto kGracefulExit = "graceful exit"; 21 constexpr auto kPersistentCongestion = "persistent congestion"; 22 constexpr auto kRemoveInflight = "remove bytes in flight"; 23 constexpr auto kCubicSkipLoss = "cubic skip loss"; 24 constexpr auto kCubicLoss = "cubic loss"; 25 constexpr auto kCubicSteadyCwnd = "cubic steady cwnd"; 26 constexpr auto kCubicSkipAck = "cubic skip ack"; 27 constexpr auto kCubicInit = "cubic init"; 28 constexpr auto kCongestionPacketAck = "congestion packet ack"; 29 constexpr auto kCwndNoChange = "cwnd no change"; 30 constexpr auto kAckInQuiescence = "ack in quiescence"; 31 constexpr auto kResetTimeToOrigin = "reset time to origin"; 32 constexpr auto kResetLastReductionTime = "reset last reduction time"; 33 constexpr auto kRenoCwndEstimation = "reno cwnd estimation"; 34 constexpr auto kPacketAckedInRecovery = "packet acked in recovery"; 35 constexpr auto kCopaInit = "copa init"; 36 constexpr auto kCongestionPacketSent = "congestion on packet sent"; 37 constexpr auto kCopaCheckAndUpdateDirection = "copa check and update direction"; 38 constexpr auto kCongestionPacketLoss = "congestion packet loss"; 39 constexpr auto kAppLimited = "app limited"; 40 constexpr auto kAppUnlimited = "app unlimited"; 41 constexpr uint64_t kDefaultCwnd = 12320; 42 constexpr auto kAppIdle = "app idle"; 43 constexpr auto kMaxBuffered = "max buffered"; 44 constexpr auto kCipherUnavailable = "cipher unavailable"; 45 constexpr auto kParse = "parse"; 46 constexpr auto kNonRegular = "non regular"; 47 constexpr auto kAlreadyClosed = "already closed"; 48 constexpr auto kUdpTruncated = "udp truncated"; 49 constexpr auto kNoData = "no data"; 50 constexpr auto kUnexpectedProtectionLevel = "unexpected protection level"; 51 constexpr auto kBufferUnavailable = "buffer unavailable"; 52 constexpr auto kReset = "reset"; 53 constexpr auto kRetry = "retry"; 54 constexpr auto kPtoAlarm = "pto alarm"; 55 constexpr auto kHandshakeAlarm = "handshake alarm"; 56 constexpr auto kLossTimeoutExpired = "loss timeout expired"; 57 constexpr auto kStart = "start"; 58 constexpr auto kWriteNst = "write nst"; 59 constexpr auto kTransportReady = "transport ready"; 60 constexpr auto kDerivedZeroRttReadCipher = "derived 0-rtt read cipher"; 61 constexpr auto kDerivedOneRttReadCipher = "derived 1-rtt read cipher"; 62 constexpr auto kDerivedOneRttWriteCipher = "derived 1-rtt write cipher"; 63 constexpr auto kZeroRttRejected = "zerortt rejected"; 64 constexpr auto kZeroRttAccepted = "zerortt accepted"; 65 constexpr auto kZeroRttAttempted = "zerortt attempted"; 66 constexpr auto kRecalculateTimeToOrigin = "recalculate time to origin"; 67 constexpr auto kAbort = "abort"; 68 constexpr auto kQLogVersion = "draft-00"; 69 constexpr auto kQLogTitle = "mvfst qlog"; 70 constexpr auto kQLogDescription = "Converted from file"; 71 constexpr auto kQLogTraceTitle = "mvfst qlog from single connection"; 72 constexpr auto kQLogTraceDescription = "Generated qlog from connection"; 73 constexpr auto kQLogTimeUnits = "us"; 74 constexpr auto kQLogVersionField = "qlog_version"; 75 constexpr auto kQLogTitleField = "title"; 76 constexpr auto kQLogDescriptionField = "description"; 77 constexpr auto kQLogTraceCountField = "trace_count"; 78 constexpr auto kEOM = "eom"; 79 constexpr auto kOnEOM = "on eom"; 80 constexpr auto kStreamBlocked = "stream blocked"; 81 constexpr auto kHeaders = "headers"; 82 constexpr auto kOnHeaders = "on headers"; 83 constexpr auto kOnError = "on error"; 84 constexpr auto kPushPromise = "push promise"; 85 constexpr auto kBody = "body"; 86 87 constexpr folly::StringPiece kQLogServerVantagePoint = "server"; 88 constexpr folly::StringPiece kQLogClientVantagePoint = "client"; 89 90 using VantagePoint = QuicNodeType; 91 92 folly::StringPiece vantagePointString(VantagePoint vantagePoint) noexcept; 93 94 folly::StringPiece toQlogString(FrameType frame); 95 96 folly::StringPiece toQlogString(LongHeader::Types type); 97 98 } // namespace quic 99