1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-08-06 22:22:38 +03:00

Lowercase qlog strings.

Summary: In the spec these are now lowercase.

Reviewed By: avasylev

Differential Revision: D22104880

fbshipit-source-id: adc9bbcd7bd9e7babb1946648d2867ec7dc9336b
This commit is contained in:
Matt Joras
2020-07-14 16:11:06 -07:00
committed by Facebook GitHub Bot
parent aedfaf2af6
commit 015ff4a808
8 changed files with 257 additions and 176 deletions

View File

@@ -334,7 +334,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnection) {
for (int i = 0; i < 2; ++i) {
auto p1 = std::move(qLogger->logs[indices[i]]);
auto event = dynamic_cast<QLogPacketEvent*>(p1.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
@@ -408,9 +408,9 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionPacketSorting) {
auto event2 = dynamic_cast<QLogPacketEvent*>(l2.get());
auto event3 = dynamic_cast<QLogPacketEvent*>(l3.get());
EXPECT_EQ(event1->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event2->packetType, toString(LongHeader::Types::Initial));
EXPECT_EQ(event3->packetType, toString(LongHeader::Types::ZeroRtt));
EXPECT_EQ(event1->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event2->packetType, toQlogString(LongHeader::Types::Initial));
EXPECT_EQ(event3->packetType, toQlogString(LongHeader::Types::ZeroRtt));
EXPECT_EQ(3, conn->outstandings.packets.size());
auto& firstHeader = conn->outstandings.packets.front().packet.header;
@@ -450,7 +450,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionFinOnly) {
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
@@ -495,7 +495,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionAllBytesExceptFin) {
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
@@ -538,7 +538,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionEmptyAckWriteResult) {
EXPECT_EQ(indices.size(), 1);
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
@@ -591,7 +591,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionPureAckCounter) {
for (int i = 0; i < 2; ++i) {
auto tmp = std::move(qLogger->logs[indices[i]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->frames.size(), 1);
}
@@ -621,7 +621,7 @@ TEST_F(QuicTransportFunctionsTest, TestPaddingPureAckPacketIsStillPureAck) {
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
EXPECT_EQ(event->frames.size(), 2);
@@ -769,8 +769,8 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionHandshakeCounter) {
getQLogEventIndices(QLogEventType::PacketSent, qLogger);
EXPECT_EQ(indices.size(), 2);
std::vector<std::string> packetTypes = {
toString(LongHeader::Types::Handshake),
toString(LongHeader::Types::ZeroRtt)};
std::string(toQlogString(LongHeader::Types::Handshake)),
std::string(toQlogString(LongHeader::Types::ZeroRtt))};
for (int i = 0; i < 2; ++i) {
auto tmp = std::move(qLogger->logs[indices[i]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
@@ -838,8 +838,9 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionForOneRttCryptoData) {
std::vector<int> indices =
getQLogEventIndices(QLogEventType::PacketSent, qLogger);
EXPECT_EQ(indices.size(), 2);
std::vector<std::string> packetTypes = {kShortHeaderPacketType.str(),
toString(LongHeader::Types::ZeroRtt)};
std::vector<std::string> packetTypes = {
kShortHeaderPacketType.str(),
std::string(toQlogString(LongHeader::Types::ZeroRtt))};
for (int i = 0; i < 2; ++i) {
auto tmp = std::move(qLogger->logs[indices[i]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
@@ -895,7 +896,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionWithPureAck) {
EXPECT_EQ(indices.size(), 1);
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
// verify QLogger contains correct frame information
@@ -932,7 +933,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionWithBytesStats) {
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, 555);
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
@@ -1037,7 +1038,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionStreamWindowUpdate) {
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
@@ -1072,7 +1073,7 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionConnWindowUpdate) {
auto tmp = std::move(qLogger->logs[indices[0]]);
auto event = dynamic_cast<QLogPacketEvent*>(tmp.get());
EXPECT_EQ(event->packetType, toString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetType, toQlogString(LongHeader::Types::Handshake));
EXPECT_EQ(event->packetSize, getEncodedSize(packet));
EXPECT_EQ(event->eventType, QLogEventType::PacketSent);
// verify QLogger contains correct frame information

View File

@@ -84,7 +84,7 @@ std::unique_ptr<QLogPacketEvent> BaseQLogger::createPacketEvent(
event->packetType = kShortHeaderPacketType.toString();
} else {
event->packetType =
toString(regularPacket.header.asLong()->getHeaderType());
toQlogString(regularPacket.header.asLong()->getHeaderType()).str();
}
if (event->packetType != toString(LongHeader::Types::Retry)) {
// A Retry packet does not include a packet number.
@@ -196,7 +196,8 @@ std::unique_ptr<QLogPacketEvent> BaseQLogger::createPacketEvent(
if (shortHeader) {
event->packetType = kShortHeaderPacketType.toString();
} else {
event->packetType = toString(writePacket.header.asLong()->getHeaderType());
event->packetType =
toQlogString(writePacket.header.asLong()->getHeaderType()).str();
}
uint64_t numPaddingFrames = 0;
@@ -310,7 +311,7 @@ std::unique_ptr<QLogRetryEvent> BaseQLogger::createPacketEvent(
event->tokenSize = retryPacket.header.getToken().size();
event->eventType =
isPacketRecvd ? QLogEventType::PacketReceived : QLogEventType::PacketSent;
event->packetType = toString(retryPacket.header.getHeaderType());
event->packetType = toQlogString(retryPacket.header.getHeaderType()).str();
return event;
}

View File

@@ -388,7 +388,7 @@ folly::dynamic FileQLogger::toDynamicBase() const {
dynamicTrace["events"] = folly::dynamic::array();
dynamicTrace["event_fields"] =
folly::dynamic::array("relative_time", "CATEGORY", "EVENT_TYPE", "DATA");
folly::dynamic::array("relative_time", "category", "event", "data");
dynamicObj["traces"].push_back(dynamicTrace);

View File

@@ -18,4 +18,81 @@ folly::StringPiece vantagePointString(VantagePoint vantagePoint) noexcept {
}
folly::assume_unreachable();
}
folly::StringPiece toQlogString(FrameType frame) {
switch (frame) {
case FrameType::PADDING:
return "padding";
case FrameType::PING:
return "ping";
case FrameType::ACK:
return "ack";
case FrameType::ACK_ECN:
return "ack_ecn";
case FrameType::RST_STREAM:
return "rst_stream";
case FrameType::STOP_SENDING:
return "stop_sending";
case FrameType::CRYPTO_FRAME:
return "crypto_frame";
case FrameType::NEW_TOKEN:
return "new_token";
case FrameType::STREAM:
case FrameType::STREAM_FIN:
case FrameType::STREAM_LEN:
case FrameType::STREAM_LEN_FIN:
case FrameType::STREAM_OFF:
case FrameType::STREAM_OFF_FIN:
case FrameType::STREAM_OFF_LEN:
case FrameType::STREAM_OFF_LEN_FIN:
return "stream";
case FrameType::MAX_DATA:
return "max_data";
case FrameType::MAX_STREAM_DATA:
return "max_stream_data";
case FrameType::MAX_STREAMS_BIDI:
case FrameType::MAX_STREAMS_UNI:
return "max_streams";
case FrameType::DATA_BLOCKED:
return "data_blocked";
case FrameType::STREAM_DATA_BLOCKED:
return "stream_data_blocked";
case FrameType::STREAMS_BLOCKED_BIDI:
case FrameType::STREAMS_BLOCKED_UNI:
return "streams_blocked";
case FrameType::NEW_CONNECTION_ID:
return "new_connection_id";
case FrameType::RETIRE_CONNECTION_ID:
return "retire_connection_id";
case FrameType::PATH_CHALLENGE:
return "path_challenge";
case FrameType::PATH_RESPONSE:
return "path_response";
case FrameType::CONNECTION_CLOSE:
case FrameType::CONNECTION_CLOSE_APP_ERR:
return "connection_close";
case FrameType::MIN_STREAM_DATA:
return "min_stream_data";
case FrameType::EXPIRED_STREAM_DATA:
return "expired_stream_data";
case FrameType::HANDSHAKE_DONE:
return "handshake_done";
}
folly::assume_unreachable();
}
folly::StringPiece toQlogString(LongHeader::Types type) {
switch (type) {
case LongHeader::Types::Initial:
return "initial";
case LongHeader::Types::Retry:
return "RETRY";
case LongHeader::Types::Handshake:
return "handshake";
case LongHeader::Types::ZeroRtt:
return "0RTT";
}
folly::assume_unreachable();
}
} // namespace quic

View File

@@ -9,11 +9,12 @@
#pragma once
#include <folly/String.h>
#include <quic/codec/Types.h>
#include "quic/QuicConstants.h"
namespace quic {
constexpr folly::StringPiece kShortHeaderPacketType = "1RTT";
constexpr auto kVersionNegotiationPacketType = "VersionNegotiation";
constexpr auto kVersionNegotiationPacketType = "version_negotiation";
constexpr auto kHTTP3ProtocolType = "QUIC_HTTP3";
constexpr auto kNoError = "no error";
constexpr auto kGracefulExit = "graceful exit";
@@ -88,4 +89,8 @@ using VantagePoint = QuicNodeType;
folly::StringPiece vantagePointString(VantagePoint vantagePoint) noexcept;
folly::StringPiece toQlogString(FrameType frame);
folly::StringPiece toQlogString(LongHeader::Types type);
} // namespace quic

View File

@@ -13,14 +13,14 @@ namespace quic {
folly::dynamic PaddingFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::PADDING);
d["frame_type"] = toQlogString(FrameType::PADDING);
d["num_frames"] = numFrames;
return d;
}
folly::dynamic RstStreamFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::RST_STREAM);
d["frame_type"] = toQlogString(FrameType::RST_STREAM);
d["stream_id"] = streamId;
d["error_code"] = errorCode;
d["offset"] = offset;
@@ -35,9 +35,9 @@ folly::dynamic ConnectionCloseFrameLog::toDynamic() const {
auto isLocalErrorCode = errorCode.asLocalErrorCode();
if (isTransportErrorCode || isLocalErrorCode) {
d["frame_type"] = toString(FrameType::CONNECTION_CLOSE);
d["frame_type"] = toQlogString(FrameType::CONNECTION_CLOSE);
} else if (isApplicationErrorCode) {
d["frame_type"] = toString(FrameType::CONNECTION_CLOSE_APP_ERR);
d["frame_type"] = toQlogString(FrameType::CONNECTION_CLOSE_APP_ERR);
}
d["error_code"] = toString(errorCode);
@@ -48,14 +48,14 @@ folly::dynamic ConnectionCloseFrameLog::toDynamic() const {
folly::dynamic MaxDataFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::MAX_DATA);
d["frame_type"] = toQlogString(FrameType::MAX_DATA);
d["maximum_data"] = maximumData;
return d;
}
folly::dynamic MaxStreamDataFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::MAX_STREAM_DATA);
d["frame_type"] = toQlogString(FrameType::MAX_STREAM_DATA);
d["stream_id"] = streamId;
d["maximum_data"] = maximumData;
return d;
@@ -89,20 +89,20 @@ folly::dynamic StreamsBlockedFrameLog::toDynamic() const {
folly::dynamic PingFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::PING);
d["frame_type"] = toQlogString(FrameType::PING);
return d;
}
folly::dynamic DataBlockedFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::DATA_BLOCKED);
d["frame_type"] = toQlogString(FrameType::DATA_BLOCKED);
d["data_limit"] = dataLimit;
return d;
}
folly::dynamic StreamDataBlockedFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::STREAM_DATA_BLOCKED);
d["frame_type"] = toQlogString(FrameType::STREAM_DATA_BLOCKED);
d["stream_id"] = streamId;
d["data_limit"] = dataLimit;
return d;
@@ -114,13 +114,13 @@ folly::dynamic StreamFrameLog::toDynamic() const {
d["length"] = len;
d["fin"] = fin;
d["stream_id"] = folly::to<std::string>(streamId);
d["frame_type"] = toString(FrameType::STREAM);
d["frame_type"] = toQlogString(FrameType::STREAM);
return d;
}
folly::dynamic CryptoFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::CRYPTO_FRAME);
d["frame_type"] = toQlogString(FrameType::CRYPTO_FRAME);
d["offset"] = offset;
d["len"] = len;
return d;
@@ -128,7 +128,7 @@ folly::dynamic CryptoFrameLog::toDynamic() const {
folly::dynamic StopSendingFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::STOP_SENDING);
d["frame_type"] = toQlogString(FrameType::STOP_SENDING);
d["stream_id"] = streamId;
d["error_code"] = errorCode;
return d;
@@ -136,7 +136,7 @@ folly::dynamic StopSendingFrameLog::toDynamic() const {
folly::dynamic MinStreamDataFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::MIN_STREAM_DATA);
d["frame_type"] = toQlogString(FrameType::MIN_STREAM_DATA);
d["stream_id"] = streamId;
d["maximum_data"] = maximumData;
d["minimum_stream_offset"] = minimumStreamOffset;
@@ -145,7 +145,7 @@ folly::dynamic MinStreamDataFrameLog::toDynamic() const {
folly::dynamic ExpiredStreamDataFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::EXPIRED_STREAM_DATA);
d["frame_type"] = toQlogString(FrameType::EXPIRED_STREAM_DATA);
d["stream_id"] = streamId;
d["minimum_stream_offset"] = minimumStreamOffset;
return d;
@@ -153,21 +153,21 @@ folly::dynamic ExpiredStreamDataFrameLog::toDynamic() const {
folly::dynamic PathChallengeFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::PATH_CHALLENGE);
d["frame_type"] = toQlogString(FrameType::PATH_CHALLENGE);
d["path_data"] = pathData;
return d;
}
folly::dynamic PathResponseFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::PATH_RESPONSE);
d["frame_type"] = toQlogString(FrameType::PATH_RESPONSE);
d["path_data"] = pathData;
return d;
}
folly::dynamic NewConnectionIdFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::NEW_CONNECTION_ID);
d["frame_type"] = toQlogString(FrameType::NEW_CONNECTION_ID);
d["sequence"] = sequence;
folly::dynamic dToken = folly::dynamic::array();
@@ -181,7 +181,7 @@ folly::dynamic NewConnectionIdFrameLog::toDynamic() const {
folly::dynamic RetireConnectionIdFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::RETIRE_CONNECTION_ID);
d["frame_type"] = toQlogString(FrameType::RETIRE_CONNECTION_ID);
d["sequence"] = sequence;
return d;
}
@@ -195,7 +195,7 @@ folly::dynamic ReadAckFrameLog::toDynamic() const {
folly::dynamic::array(b.startPacket, b.endPacket));
}
d["acked_ranges"] = ackRangeDynamic;
d["frame_type"] = toString(FrameType::ACK);
d["frame_type"] = toQlogString(FrameType::ACK);
d["ack_delay"] = ackDelay.count();
return d;
}
@@ -208,20 +208,20 @@ folly::dynamic WriteAckFrameLog::toDynamic() const {
ackRangeDynamic.push_back(folly::dynamic::array(it->start, it->end));
}
d["acked_ranges"] = ackRangeDynamic;
d["frame_type"] = toString(FrameType::ACK);
d["frame_type"] = toQlogString(FrameType::ACK);
d["ack_delay"] = ackDelay.count();
return d;
}
folly::dynamic ReadNewTokenFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::NEW_TOKEN);
d["frame_type"] = toQlogString(FrameType::NEW_TOKEN);
return d;
}
folly::dynamic HandshakeDoneFrameLog::toDynamic() const {
folly::dynamic d = folly::dynamic::object();
d["frame_type"] = toString(FrameType::HANDSHAKE_DONE);
d["frame_type"] = toQlogString(FrameType::HANDSHAKE_DONE);
return d;
}
@@ -239,7 +239,7 @@ folly::dynamic QLogPacketEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -266,7 +266,7 @@ folly::dynamic QLogVersionNegotiationEvent::toDynamic() const {
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -281,7 +281,7 @@ folly::dynamic QLogVersionNegotiationEvent::toDynamic() const {
folly::dynamic QLogRetryEvent::toDynamic() const {
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -312,7 +312,7 @@ folly::dynamic QLogConnectionCloseEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"CONNECTIVITY",
"connectivity",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -356,7 +356,7 @@ folly::dynamic QLogTransportSummaryEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -396,7 +396,7 @@ folly::dynamic QLogCongestionMetricUpdateEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"METRIC_UPDATE",
"metric_update",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -464,7 +464,7 @@ folly::dynamic QLogPacingMetricUpdateEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"METRIC_UPDATE",
"metric_update",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -493,7 +493,7 @@ QLogPacingObservationEvent::QLogPacingObservationEvent(
folly::dynamic QLogPacingObservationEvent::toDynamic() const {
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"METRIC_UPDATE",
"metric_update",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -519,7 +519,7 @@ folly::dynamic QLogAppIdleUpdateEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"IDLE_UPDATE",
"idle_update",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -543,7 +543,7 @@ folly::dynamic QLogPacketDropEvent::toDynamic() const {
// creating a folly::dynamic array to hold the information corresponding to
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()), "LOSS", toString(eventType));
folly::to<std::string>(refTime.count()), "loss", toString(eventType));
folly::dynamic data = folly::dynamic::object();
data["packet_size"] = packetSize;
@@ -566,7 +566,7 @@ folly::dynamic QLogDatagramReceivedEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -594,7 +594,7 @@ folly::dynamic QLogLossAlarmEvent::toDynamic() const {
// creating a folly::dynamic array to hold the information corresponding to
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()), "LOSS", toString(eventType));
folly::to<std::string>(refTime.count()), "loss", toString(eventType));
folly::dynamic data = folly::dynamic::object();
data["largest_sent"] = largestSent;
@@ -622,7 +622,7 @@ folly::dynamic QLogPacketsLostEvent::toDynamic() const {
// creating a folly::dynamic array to hold the information corresponding to
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()), "LOSS", toString(eventType));
folly::to<std::string>(refTime.count()), "loss", toString(eventType));
folly::dynamic data = folly::dynamic::object();
data["largest_lost_packet_num"] = largestLostPacketNum;
@@ -646,7 +646,7 @@ folly::dynamic QLogTransportStateUpdateEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -673,7 +673,7 @@ folly::dynamic QLogPacketBufferedEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -699,7 +699,7 @@ folly::dynamic QLogPacketAckEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -725,7 +725,7 @@ folly::dynamic QLogMetricUpdateEvent::toDynamic() const {
// creating a folly::dynamic array to hold the information corresponding to
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()), "RECOVERY", toString(eventType));
folly::to<std::string>(refTime.count()), "recovery", toString(eventType));
folly::dynamic data = folly::dynamic::object();
data["latest_rtt"] = latestRtt.count();
@@ -788,7 +788,7 @@ folly::dynamic QLogConnectionMigrationEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -816,7 +816,7 @@ folly::dynamic QLogPathValidationEvent::toDynamic() const {
// the event fields relative_time, category, event_type, trigger, data
folly::dynamic d = folly::dynamic::array(
folly::to<std::string>(refTime.count()),
"TRANSPORT",
"transport",
toString(eventType));
folly::dynamic data = folly::dynamic::object();
@@ -830,52 +830,51 @@ folly::dynamic QLogPathValidationEvent::toDynamic() const {
return d;
}
std::string toString(QLogEventType type) {
folly::StringPiece toString(QLogEventType type) {
switch (type) {
case QLogEventType::PacketSent:
return "PACKET_SENT";
return "packet_sent";
case QLogEventType::PacketReceived:
return "PACKET_RECEIVED";
return "packet_received";
case QLogEventType::ConnectionClose:
return "CONNECTION_CLOSE";
return "connection_close";
case QLogEventType::TransportSummary:
return "TRANSPORT_SUMMARY";
return "transport_summary";
case QLogEventType::CongestionMetricUpdate:
return "CONGESTION_METRIC_UPDATE";
return "congestion_metric_update";
case QLogEventType::PacingMetricUpdate:
return "PACING_METRIC_UPDATE";
return "pacing_metric_update";
case QLogEventType::AppIdleUpdate:
return "APP_IDLE_UPDATE";
return "app_idle_update";
case QLogEventType::PacketDrop:
return "PACKET_DROP";
return "packet_drop";
case QLogEventType::DatagramReceived:
return "DATAGRAM_RECEIVED";
return "datagram_received";
case QLogEventType::LossAlarm:
return "LOSS_ALARM";
return "loss_alarm";
case QLogEventType::PacketsLost:
return "PACKETS_LOST";
return "packets_lost";
case QLogEventType::TransportStateUpdate:
return "TRANSPORT_STATE_UPDATE";
return "transport_state_update";
case QLogEventType::PacketBuffered:
return "PACKET_BUFFERED";
return "packet_buffered";
case QLogEventType::PacketAck:
return "PACKET_ACK";
return "packet_ack";
case QLogEventType::MetricUpdate:
return "METRIC_UPDATE";
return "metric_update";
case QLogEventType::StreamStateUpdate:
return "STREAM_STATE_UPDATE";
return "stream_state_update";
case QLogEventType::PacingObservation:
return "PACING_OBSERVATION";
return "pacing_observation";
case QLogEventType::AppLimitedUpdate:
return "APP_LIMITED_UPDATE";
return "app_limited_update";
case QLogEventType::BandwidthEstUpdate:
return "BANDWIDTH_EST_UPDATE";
return "bandwidth_est_update";
case QLogEventType::ConnectionMigration:
return "CONNECTION_MIGRATION";
return "connection_migration";
case QLogEventType::PathValidation:
return "PATH_VALIDATION";
return "path_validation";
}
LOG(WARNING) << "toString has unhandled QLog event type";
return "UNKNOWN";
folly::assume_unreachable();
}
} // namespace quic

View File

@@ -321,7 +321,7 @@ enum class QLogEventType : uint32_t {
PathValidation
};
std::string toString(QLogEventType type);
folly::StringPiece toString(QLogEventType type);
class QLogEvent {
public:
@@ -654,6 +654,4 @@ class QLogPathValidationEvent : public QLogEvent {
VantagePoint vantagePoint_;
};
std::string toString(QLogEventType type);
} // namespace quic

View File

@@ -293,20 +293,20 @@ TEST_F(QLoggerTest, QLoggerFollyDynamic) {
"description": "Generated qlog from connection",
"event_fields": [
"relative_time",
"CATEGORY",
"EVENT_TYPE",
"DATA"
"category",
"event",
"data"
],
"events": [
[
"31",
"TRANSPORT",
"PACKET_RECEIVED",
"transport",
"packet_received",
{
"frames": [
{
"fin": true,
"frame_type": "STREAM",
"frame_type": "stream",
"stream_id": "10",
"length": 0,
"offset": 0
@@ -350,13 +350,13 @@ TEST_F(QLoggerTest, RegularPacketFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"PACKET_RECEIVED",
"transport",
"packet_received",
{
"frames": [
{
"fin": true,
"frame_type": "STREAM",
"frame_type": "stream",
"stream_id": "10",
"length": 0,
"offset": 0
@@ -392,13 +392,13 @@ TEST_F(QLoggerTest, RegularWritePacketFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"frames": [
{
"fin": true,
"frame_type": "STREAM",
"frame_type": "stream",
"stream_id": "10",
"length": 0,
"offset": 0
@@ -408,7 +408,7 @@ TEST_F(QLoggerTest, RegularWritePacketFollyDynamic) {
"packet_number": 10,
"packet_size": 10
},
"packet_type": "INITIAL"
"packet_type": "initial"
}
]
])");
@@ -431,8 +431,8 @@ TEST_F(QLoggerTest, RegularPacketAckFrameFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"frames": [
{
@@ -447,14 +447,14 @@ TEST_F(QLoggerTest, RegularPacketAckFrameFollyDynamic) {
700
]
],
"frame_type": "ACK"
"frame_type": "ack"
}
],
"header": {
"packet_number": 100,
"packet_size": 1001
},
"packet_type": "INITIAL"
"packet_type": "initial"
}
]
])");
@@ -473,13 +473,13 @@ TEST_F(QLoggerTest, VersionPacketFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"header": {
"packet_size": 10
},
"packet_type": "VersionNegotiation",
"packet_type": "version_negotiation",
"versions": [
"VERSION_NEGOTIATION",
"MVFST"
@@ -526,20 +526,20 @@ TEST_F(QLoggerTest, AddingMultiplePacketEvents) {
"description": "Generated qlog from connection",
"event_fields": [
"relative_time",
"CATEGORY",
"EVENT_TYPE",
"DATA"
"category",
"event",
"data"
],
"events": [
[
"0",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"header": {
"packet_size": 10
},
"packet_type": "VersionNegotiation",
"packet_type": "version_negotiation",
"versions": [
"VERSION_NEGOTIATION",
"MVFST"
@@ -548,8 +548,8 @@ TEST_F(QLoggerTest, AddingMultiplePacketEvents) {
],
[
"1",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"frames": [
{
@@ -564,25 +564,25 @@ TEST_F(QLoggerTest, AddingMultiplePacketEvents) {
700
]
],
"frame_type": "ACK"
"frame_type": "ack"
}
],
"header": {
"packet_number": 100,
"packet_size": 100
},
"packet_type": "INITIAL"
"packet_type": "initial"
}
],
[
"2",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"frames": [
{
"fin": true,
"frame_type": "STREAM",
"frame_type": "stream",
"stream_id": "10",
"length": 5,
"offset": 0
@@ -642,8 +642,8 @@ TEST_F(QLoggerTest, AddingMultipleFrames) {
R"([
[
"0",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"frames": [
{
@@ -658,11 +658,11 @@ TEST_F(QLoggerTest, AddingMultipleFrames) {
200
]
],
"frame_type": "ACK"
"frame_type": "ack"
},
{
"fin": true,
"frame_type": "STREAM",
"frame_type": "stream",
"stream_id": "10",
"length": 0,
"offset": 0
@@ -672,7 +672,7 @@ TEST_F(QLoggerTest, AddingMultipleFrames) {
"packet_number": 100,
"packet_size": 10
},
"packet_type": "INITIAL"
"packet_type": "initial"
}
]
])");
@@ -701,8 +701,8 @@ TEST_F(QLoggerTest, ConnectionCloseFollyDynamic) {
folly::dynamic expected = folly::parseJson(
R"([[
"0",
"CONNECTIVITY",
"CONNECTION_CLOSE",
"connectivity",
"connection_close",
{
"drain_connection": true,
"error": "Connection reset",
@@ -725,8 +725,8 @@ TEST_F(QLoggerTest, TransportSummaryFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"TRANSPORT_SUMMARY",
"transport",
"transport_summary",
{
"total_bytes_sent": 1,
"total_bytes_recvd": 2,
@@ -755,8 +755,8 @@ TEST_F(QLoggerTest, CongestionMetricUpdateFollyDynamic) {
R"([
[
"0",
"METRIC_UPDATE",
"CONGESTION_METRIC_UPDATE",
"metric_update",
"congestion_metric_update",
{
"bytes_in_flight": 20,
"congestion_event": "persistent congestion",
@@ -784,8 +784,8 @@ TEST_F(QLoggerTest, PacingMetricUpdateFollyDynamic) {
R"([
[
"0",
"METRIC_UPDATE",
"PACING_METRIC_UPDATE",
"metric_update",
"pacing_metric_update",
{
"pacing_burst_size": 20,
"pacing_interval": 30
@@ -806,8 +806,8 @@ TEST_F(QLoggerTest, AppIdleFollyDynamic) {
R"([
[
"0",
"IDLE_UPDATE",
"APP_IDLE_UPDATE",
"idle_update",
"app_idle_update",
{
"idle_event": "app idle",
"idle": true
@@ -828,8 +828,8 @@ TEST_F(QLoggerTest, PacketDropFollyDynamic) {
R"([
[
"0",
"LOSS",
"PACKET_DROP",
"loss",
"packet_drop",
{
"drop_reason": "max buffered",
"packet_size": 100
@@ -850,8 +850,8 @@ TEST_F(QLoggerTest, DatagramReceivedFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"DATAGRAM_RECEIVED",
"transport",
"datagram_received",
{
"data_len": 8
}
@@ -871,8 +871,8 @@ TEST_F(QLoggerTest, LossAlarmFollyDynamic) {
R"([
[
"0",
"LOSS",
"LOSS_ALARM",
"loss",
"loss_alarm",
{
"largest_sent": 100,
"alarm_count": 14,
@@ -895,8 +895,8 @@ TEST_F(QLoggerTest, PacketsLostFollyDynamic) {
R"([
[
"0",
"LOSS",
"PACKETS_LOST",
"loss",
"packets_lost",
{
"largest_lost_packet_num": 10,
"lost_bytes": 9,
@@ -918,8 +918,8 @@ TEST_F(QLoggerTest, TransportStateUpdateFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"TRANSPORT_STATE_UPDATE",
"transport",
"transport_state_update",
{
"update": "transport ready"
}
@@ -939,8 +939,8 @@ TEST_F(QLoggerTest, PacketBufferedFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"PACKET_BUFFERED",
"transport",
"packet_buffered",
{
"packet_num": 10,
"protection_type": "Handshake",
@@ -962,8 +962,8 @@ TEST_F(QLoggerTest, MetricUpdateFollyDynamic) {
R"([
[
"0",
"RECOVERY",
"METRIC_UPDATE",
"recovery",
"metric_update",
{
"ack_delay": 13,
"latest_rtt": 10,
@@ -987,7 +987,7 @@ TEST_F(QLoggerTest, StreamStateUpdateFollyDynamicTTFB) {
[
"0",
"HTTP3",
"STREAM_STATE_UPDATE",
"stream_state_update",
{
"id": 10,
"ttfb": 20,
@@ -1010,7 +1010,7 @@ TEST_F(QLoggerTest, StreamStateUpdateFollyDynamicTTLB) {
[
"0",
"HTTP3",
"STREAM_STATE_UPDATE",
"stream_state_update",
{
"id": 10,
"ttlb": 20,
@@ -1035,7 +1035,7 @@ TEST_F(
[
"0",
"HTTP3",
"STREAM_STATE_UPDATE",
"stream_state_update",
{
"id": 10,
"update": "on eom"
@@ -1057,7 +1057,7 @@ TEST_F(QLoggerTest, StreamStateUpdateFollyDynamic) {
[
"0",
"HTTP3",
"STREAM_STATE_UPDATE",
"stream_state_update",
{
"id": 10,
"ms_since_creation": 20,
@@ -1079,12 +1079,12 @@ TEST_F(QLoggerTest, PaddingFramesFollyDynamic) {
R"([
[
"0",
"TRANSPORT",
"PACKET_SENT",
"transport",
"packet_sent",
{
"frames": [
{
"frame_type": "PADDING",
"frame_type": "padding",
"num_frames": 20
}
],
@@ -1092,7 +1092,7 @@ TEST_F(QLoggerTest, PaddingFramesFollyDynamic) {
"packet_number": 100,
"packet_size": 100
},
"packet_type": "INITIAL"
"packet_type": "initial"
}
]
])");
@@ -1111,8 +1111,8 @@ TEST_F(QLoggerTest, ConnectionMigration) {
R"([
[
"0",
"TRANSPORT",
"CONNECTION_MIGRATION",
"transport",
"connection_migration",
{
"intentional": true,
"type": "initiating"
@@ -1133,8 +1133,8 @@ TEST_F(QLoggerTest, PathValidation) {
R"([
[
"0",
"TRANSPORT",
"PATH_VALIDATION",
"transport",
"path_validation",
{
"success": false,
"vantagePoint": "server"
@@ -1171,20 +1171,20 @@ TEST_F(QLoggerTest, PrettyStream) {
"description": "Generated qlog from connection",
"event_fields": [
"relative_time",
"CATEGORY",
"EVENT_TYPE",
"DATA"
"category",
"event",
"data"
],
"events": [
[
"31",
"TRANSPORT",
"PACKET_RECEIVED",
"transport",
"packet_received",
{
"frames": [
{
"fin": true,
"frame_type": "STREAM",
"frame_type": "stream",
"stream_id": "10",
"length": 0,
"offset": 0
@@ -1285,20 +1285,20 @@ TEST_F(QLoggerTest, NonPrettyStream) {
"description": "Generated qlog from connection",
"event_fields": [
"relative_time",
"CATEGORY",
"EVENT_TYPE",
"DATA"
"category",
"event",
"data"
],
"events": [
[
"31",
"TRANSPORT",
"PACKET_RECEIVED",
"transport",
"packet_received",
{
"frames": [
{
"fin": true,
"frame_type": "STREAM",
"frame_type": "stream",
"stream_id": "10",
"length": 0,
"offset": 0