20#ifndef FREERDP_LIB_CORE_GATEWAY_RTS_SIGNATURE_H
21#define FREERDP_LIB_CORE_GATEWAY_RTS_SIGNATURE_H
25#include <winpr/wtypes.h>
26#include <freerdp/api.h>
31 UINT16 NumberOfCommands;
32 UINT32 CommandTypes[8];
45#define RTS_PDU_CONN_A 0x10000000
46#define RTS_PDU_CONN_A1 (RTS_PDU_CONN_A | 0x00000001)
47#define RTS_PDU_CONN_A2 (RTS_PDU_CONN_A | 0x00000002)
48#define RTS_PDU_CONN_A3 (RTS_PDU_CONN_A | 0x00000003)
50#define RTS_PDU_CONN_B 0x20000000
51#define RTS_PDU_CONN_B1 (RTS_PDU_CONN_B | 0x00000001)
52#define RTS_PDU_CONN_B2 (RTS_PDU_CONN_B | 0x00000002)
53#define RTS_PDU_CONN_B3 (RTS_PDU_CONN_B | 0x00000003)
55#define RTS_PDU_CONN_C 0x40000000
56#define RTS_PDU_CONN_C1 (RTS_PDU_CONN_C | 0x00000001)
57#define RTS_PDU_CONN_C2 (RTS_PDU_CONN_C | 0x00000002)
59#define RTS_PDU_IN_R1_A 0x01000000
60#define RTS_PDU_IN_R1_A1 (RTS_PDU_IN_R1_A | 0x00000001)
61#define RTS_PDU_IN_R1_A2 (RTS_PDU_IN_R1_A | 0x00000002)
62#define RTS_PDU_IN_R1_A3 (RTS_PDU_IN_R1_A | 0x00000003)
63#define RTS_PDU_IN_R1_A4 (RTS_PDU_IN_R1_A | 0x00000004)
64#define RTS_PDU_IN_R1_A5 (RTS_PDU_IN_R1_A | 0x00000005)
65#define RTS_PDU_IN_R1_A6 (RTS_PDU_IN_R1_A | 0x00000006)
67#define RTS_PDU_IN_R1_B 0x02000000
68#define RTS_PDU_IN_R1_B1 (RTS_PDU_IN_R1_B | 0x00000001)
69#define RTS_PDU_IN_R1_B2 (RTS_PDU_IN_R1_B | 0x00000002)
71#define RTS_PDU_IN_R2_A 0x04000000
72#define RTS_PDU_IN_R2_A1 (RTS_PDU_IN_R2_A | 0x00000001)
73#define RTS_PDU_IN_R2_A2 (RTS_PDU_IN_R2_A | 0x00000002)
74#define RTS_PDU_IN_R2_A3 (RTS_PDU_IN_R2_A | 0x00000003)
75#define RTS_PDU_IN_R2_A4 (RTS_PDU_IN_R2_A | 0x00000004)
76#define RTS_PDU_IN_R2_A5 (RTS_PDU_IN_R2_A | 0x00000005)
78#define RTS_PDU_OUT_R1_A 0x00100000
79#define RTS_PDU_OUT_R1_A1 (RTS_PDU_OUT_R1_A | 0x00000001)
80#define RTS_PDU_OUT_R1_A2 (RTS_PDU_OUT_R1_A | 0x00000002)
81#define RTS_PDU_OUT_R1_A3 (RTS_PDU_OUT_R1_A | 0x00000003)
82#define RTS_PDU_OUT_R1_A4 (RTS_PDU_OUT_R1_A | 0x00000004)
83#define RTS_PDU_OUT_R1_A5 (RTS_PDU_OUT_R1_A | 0x00000005)
84#define RTS_PDU_OUT_R1_A6 (RTS_PDU_OUT_R1_A | 0x00000006)
85#define RTS_PDU_OUT_R1_A7 (RTS_PDU_OUT_R1_A | 0x00000007)
86#define RTS_PDU_OUT_R1_A8 (RTS_PDU_OUT_R1_A | 0x00000008)
87#define RTS_PDU_OUT_R1_A9 (RTS_PDU_OUT_R1_A | 0x00000009)
88#define RTS_PDU_OUT_R1_A10 (RTS_PDU_OUT_R1_A | 0x0000000A)
89#define RTS_PDU_OUT_R1_A11 (RTS_PDU_OUT_R1_A | 0x0000000B)
91#define RTS_PDU_OUT_R2_A 0x00200000
92#define RTS_PDU_OUT_R2_A1 (RTS_PDU_OUT_R2_A | 0x00000001)
93#define RTS_PDU_OUT_R2_A2 (RTS_PDU_OUT_R2_A | 0x00000002)
94#define RTS_PDU_OUT_R2_A3 (RTS_PDU_OUT_R2_A | 0x00000003)
95#define RTS_PDU_OUT_R2_A4 (RTS_PDU_OUT_R2_A | 0x00000004)
96#define RTS_PDU_OUT_R2_A5 (RTS_PDU_OUT_R2_A | 0x00000005)
97#define RTS_PDU_OUT_R2_A6 (RTS_PDU_OUT_R2_A | 0x00000006)
98#define RTS_PDU_OUT_R2_A7 (RTS_PDU_OUT_R2_A | 0x00000007)
99#define RTS_PDU_OUT_R2_A8 (RTS_PDU_OUT_R2_A | 0x00000008)
101#define RTS_PDU_OUT_R2_B 0x00400000
102#define RTS_PDU_OUT_R2_B1 (RTS_PDU_OUT_R2_B | 0x00000001)
103#define RTS_PDU_OUT_R2_B2 (RTS_PDU_OUT_R2_B | 0x00000002)
104#define RTS_PDU_OUT_R2_B3 (RTS_PDU_OUT_R2_B | 0x00000003)
106#define RTS_PDU_OUT_R2_C 0x00800000
107#define RTS_PDU_OUT_R2_C1 (RTS_PDU_OUT_R2_C | 0x00000001)
109#define RTS_PDU_OUT_OF_SEQUENCE 0x00010000
110#define RTS_PDU_KEEP_ALIVE (RTS_PDU_OUT_OF_SEQUENCE | 0x00000001)
111#define RTS_PDU_PING_TRAFFIC_SENT_NOTIFY (RTS_PDU_OUT_OF_SEQUENCE | 0x00000002)
112#define RTS_PDU_ECHO (RTS_PDU_OUT_OF_SEQUENCE | 0x00000003)
113#define RTS_PDU_PING (RTS_PDU_OUT_OF_SEQUENCE | 0x00000004)
114#define RTS_PDU_FLOW_CONTROL_ACK (RTS_PDU_OUT_OF_SEQUENCE | 0x00000005)
115#define RTS_PDU_FLOW_CONTROL_ACK_WITH_DESTINATION (RTS_PDU_OUT_OF_SEQUENCE | 0x00000006)
153FREERDP_LOCAL
extern const RtsPduSignature RTS_PDU_OUT_R1_A10_SIGNATURE;
154FREERDP_LOCAL
extern const RtsPduSignature RTS_PDU_OUT_R1_A11_SIGNATURE;
171FREERDP_LOCAL
extern const RtsPduSignature RTS_PDU_KEEP_ALIVE_SIGNATURE;
172FREERDP_LOCAL
extern const RtsPduSignature RTS_PDU_PING_TRAFFIC_SENT_NOTIFY_SIGNATURE;
175FREERDP_LOCAL
extern const RtsPduSignature RTS_PDU_FLOW_CONTROL_ACK_SIGNATURE;
176FREERDP_LOCAL
extern const RtsPduSignature RTS_PDU_FLOW_CONTROL_ACK_WITH_DESTINATION_SIGNATURE;
187FREERDP_LOCAL UINT32 rts_identify_pdu_signature(
const RtsPduSignature* signature,
189FREERDP_LOCAL BOOL rts_print_pdu_signature(wLog* log, DWORD level,