Skip to content
This repository has been archived by the owner on Aug 11, 2020. It is now read-only.

Commit

Permalink
quic: use constants for QuicSocket stats
Browse files Browse the repository at this point in the history
PR-URL: #213
Reviewed-By: Anna Henningsen <[email protected]>
  • Loading branch information
jasnell authored and addaleax committed Dec 11, 2019
1 parent 9772656 commit ed6a4d0
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 9 deletions.
28 changes: 19 additions & 9 deletions lib/internal/quic/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,16 @@ const {
IDX_QUIC_STREAM_STATS_BYTES_RECEIVED,
IDX_QUIC_STREAM_STATS_BYTES_SENT,
IDX_QUIC_STREAM_STATS_MAX_OFFSET,
IDX_QUIC_SOCKET_STATS_CREATED_AT,
IDX_QUIC_SOCKET_STATS_BOUND_AT,
IDX_QUIC_SOCKET_STATS_LISTEN_AT,
IDX_QUIC_SOCKET_STATS_BYTES_RECEIVED,
IDX_QUIC_SOCKET_STATS_BYTES_SENT,
IDX_QUIC_SOCKET_STATS_PACKETS_RECEIVED,
IDX_QUIC_SOCKET_STATS_PACKETS_IGNORED,
IDX_QUIC_SOCKET_STATS_PACKETS_SENT,
IDX_QUIC_SOCKET_STATS_SERVER_SESSIONS,
IDX_QUIC_SOCKET_STATS_CLIENT_SESSIONS,
ERR_INVALID_REMOTE_TRANSPORT_PARAMS,
ERR_INVALID_TLS_SESSION_TICKET,
NGTCP2_PATH_VALIDATION_RESULT_FAILURE,
Expand Down Expand Up @@ -1337,39 +1347,39 @@ class QuicSocket extends EventEmitter {
get duration() {
const now = process.hrtime.bigint();
const stats = this.#stats || this[kHandle].stats;
return now - stats[0];
return now - stats[IDX_QUIC_SOCKET_STATS_CREATED_AT];
}

get boundDuration() {
const now = process.hrtime.bigint();
const stats = this.#stats || this[kHandle].stats;
return now - stats[1];
return now - stats[IDX_QUIC_SOCKET_STATS_BOUND_AT];
}

get listenDuration() {
const now = process.hrtime.bigint();
const stats = this.#stats || this[kHandle].stats;
return now - stats[2];
return now - stats[IDX_QUIC_SOCKET_STATS_LISTEN_AT];
}

get bytesReceived() {
const stats = this.#stats || this[kHandle].stats;
return stats[3];
return stats[IDX_QUIC_SOCKET_STATS_BYTES_RECEIVED];
}

get bytesSent() {
const stats = this.#stats || this[kHandle].stats;
return stats[4];
return stats[IDX_QUIC_SOCKET_STATS_BYTES_SENT];
}

get packetsReceived() {
const stats = this.#stats || this[kHandle].stats;
return stats[5];
return stats[IDX_QUIC_SOCKET_STATS_PACKETS_RECEIVED];
}

get packetsSent() {
const stats = this.#stats || this[kHandle].stats;
return stats[6];
return stats[IDX_QUIC_SOCKET_STATS_PACKETS_SENT];
}

get serverBusy() {
Expand All @@ -1378,12 +1388,12 @@ class QuicSocket extends EventEmitter {

get serverSessions() {
const stats = this.#stats || this[kHandle].stats;
return stats[7];
return stats[IDX_QUIC_SOCKET_STATS_SERVER_SESSIONS];
}

get clientSessions() {
const stats = this.#stats || this[kHandle].stats;
return stats[8];
return stats[IDX_QUIC_SOCKET_STATS_CLIENT_SESSIONS];
}

setDiagnosticPacketLoss(options) {
Expand Down
11 changes: 11 additions & 0 deletions src/node_quic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,17 @@ void Initialize(Local<Object> target,
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_STREAM_STATS_BYTES_SENT);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_STREAM_STATS_MAX_OFFSET);

NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_CREATED_AT);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_BOUND_AT);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_LISTEN_AT);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_BYTES_RECEIVED);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_BYTES_SENT);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_PACKETS_RECEIVED);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_PACKETS_IGNORED);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_PACKETS_SENT);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_SERVER_SESSIONS);
NODE_DEFINE_CONSTANT(constants, IDX_QUIC_SOCKET_STATS_CLIENT_SESSIONS);

NODE_DEFINE_CONSTANT(constants, IDX_HTTP3_QPACK_MAX_TABLE_CAPACITY);
NODE_DEFINE_CONSTANT(constants, IDX_HTTP3_QPACK_BLOCKED_STREAMS);
NODE_DEFINE_CONSTANT(constants, IDX_HTTP3_MAX_HEADER_LIST_SIZE);
Expand Down
13 changes: 13 additions & 0 deletions src/node_quic_socket.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,19 @@ enum QuicSocketOptions : uint32_t {
QUICSOCKET_OPTIONS_VALIDATE_ADDRESS_LRU = 0x2,
};

enum QuicSocketStatsIdx : int {
IDX_QUIC_SOCKET_STATS_CREATED_AT,
IDX_QUIC_SOCKET_STATS_BOUND_AT,
IDX_QUIC_SOCKET_STATS_LISTEN_AT,
IDX_QUIC_SOCKET_STATS_BYTES_RECEIVED,
IDX_QUIC_SOCKET_STATS_BYTES_SENT,
IDX_QUIC_SOCKET_STATS_PACKETS_RECEIVED,
IDX_QUIC_SOCKET_STATS_PACKETS_IGNORED,
IDX_QUIC_SOCKET_STATS_PACKETS_SENT,
IDX_QUIC_SOCKET_STATS_SERVER_SESSIONS,
IDX_QUIC_SOCKET_STATS_CLIENT_SESSIONS
};

class QuicSocket;

// This is the generic interface for objects that control QuicSocket
Expand Down

0 comments on commit ed6a4d0

Please sign in to comment.