start work on sdt packets, starting with JOIN

This commit is contained in:
2024-12-05 23:01:45 -06:00
parent dc2986f1eb
commit 1fe051c1b4
3 changed files with 156 additions and 0 deletions
+58
View File
@@ -19,3 +19,61 @@ export type RootLayerPDU = {
header: string;
data: Uint8Array;
};
export enum SessionDataTransportVectors {
REL_WRAP = 1,
UNREL_WRAP,
CHANNEL_PARAMS,
JOIN,
JOIN_REFUSE,
JOIN_ACCEPT,
LEAVE,
LEAVING,
CONNECT,
CONNECT_ACCEPT,
CONNECT_REFUSE,
DISCONNECT,
DISCONNECTING,
ACK,
NAK,
GET_SESSIONS,
SESSIONS,
}
export enum TransportLayerAddressTypes {
SDT_ADDR_NULL = 0,
SDT_ADDR_IPV4,
SDT_ADDR_IPV6,
}
export type SDTChannelParams = {
expiry: number;
nakOutboundFlag: number;
nakHoldoff: number;
nakModulus: number;
nakMaxWait: number;
};
export type TransportLayerAddress = {
type: TransportLayerAddressTypes;
port?: number;
address?: string;
};
export type SDTJOINData = {
componentID: string;
memberID: number;
channelNumber: number;
reciprocalChannel: number;
totalSequenceNumber: number;
reliableSequenceNumber: number;
destinationAddress: TransportLayerAddress;
channelParameters: SDTChannelParams;
adhocExpiry: number;
};
export type SessionDataTransportPDU = {
vector: SessionDataTransportVectors;
// TODO(jwetzell): cleanup these types
data: SDTJOINData | Uint8Array;
};