diff --git a/TypeScript/draft-01/QLog.ts b/TypeScript/draft-01/QLog.ts index 75ca89d..7dc3ed3 100644 --- a/TypeScript/draft-01/QLog.ts +++ b/TypeScript/draft-01/QLog.ts @@ -4,31 +4,25 @@ export interface IQLog { qlog_version: string, + qlog_format?: string, title?:string, description?: string, - summary?:any, - traces: Array } export interface ITraceError { error_description: string, - uri: string, + uri?: string, vantage_point?: IVantagePoint } export interface ITrace { - vantage_point: IVantagePoint, + vantage_point?: IVantagePoint, title?:string, description?: string, - - configuration?: IConfiguration, - common_fields?: ICommonFields, - event_fields: string[], - - events: Array> + events: Array } export interface IVantagePoint{ @@ -44,16 +38,6 @@ export enum VantagePointType { unknown = "unknown", } -export interface IConfiguration{ - time_units?:"ms"|"us", - time_offset?:string, - - original_uris?: Array, - - // allow additional properties. This way, we can enforce proper types for the ones defined in the spec, see other properties - [additionalUserSpecifiedProperty: string]: any -} - export interface ICommonFields{ group_id?: string | Array, protocol_type?: string, @@ -78,13 +62,21 @@ export enum IDefaultEventFieldNames { export type EventType = ConnectivityEventType | TransportEventType | SecurityEventType | RecoveryEventType | HTTP3EventType | QPACKEventType | GenericEventType; // FIXME: TODO: add something for the DATA definitions! -export type EventField = EventCategory | EventType | EventData | number | string; // number = for the time values, string = for unknown, user-specified fields +export interface IEvent { + time: number, + name: EventCategoryAndType, + data: EventData, + text?: string +} +// export type EventField = EventCategory | EventType | EventData | number | string; // number = for the time values, string = for unknown, user-specified fields // ================================================================== // // Based on QUIC draft 23 // ================================================================== // +export type EventCategoryAndType = string; // e.g., "connectivity:connection_started" + export enum EventCategory { connectivity = "connectivity", security = "security", @@ -167,8 +159,8 @@ export type EventData = IEventServerListening | IEventConnectionStarted | IEvent IEventKeyUpdated | IEventKeyRetired | IEventTransportParametersSet | IEventDatagramsReceived | IEventDatagramsSent | IEventDatagramDropped | IEventPacketReceived | IEventPacketSent | IEventPacketDropped | IEventPacketBuffered | IEventStreamStateUpdated | IEventFramesProcessed | IEventRecoveryParametersSet | IEventMetricsUpdated | IEventCongestionStateUpdated | IEventLossTimerSet | IEventLossTimerExpired | IEventPacketLost | IEventMarkedForRetransmit | - HTTP3EventData | - QPACKEventData | + HTTP3EventData | + QPACKEventData | GenericEventData ; // ================================================================== // @@ -486,7 +478,9 @@ export enum HTTP3EventType { stream_type_set = "stream_type_set", frame_created = "frame_created", frame_parsed = "frame_parsed", - data_moved = "data_moved" + data_moved = "data_moved", + datagram_received = "data_received", + dependency_update = "dependency_update" } export interface IEventH3ParametersSet { @@ -888,7 +882,7 @@ export interface IConnectionCloseFrame{ error_space:ErrorSpace; error_code:TransportError | ApplicationError | CryptoError | string | number; raw_error_code:number; - reason:string; // hex + reason:string; trigger_frame_type?:number; // TODO: should be more defined, but we don't have a FrameType enum atm... } diff --git a/TypeScript/draft-01/util.ts b/TypeScript/draft-01/util.ts index 4511109..8648644 100644 --- a/TypeScript/draft-01/util.ts +++ b/TypeScript/draft-01/util.ts @@ -60,10 +60,10 @@ export class QUtil { // if there is just one, we expect there to be a "group_id" in the common_fields // if there are more, we expect "group_id" in the event_fields // if there isn't a group_id anywhere, we currently also assume there is just 1 connection - if( trace.event_fields.indexOf("group_id") >= 0 ){ - return false; - } - else - return true; + // if( trace.event_fields.indexOf("group_id") >= 0 ){ + // return false; + // } + // else + return true; } }