3 * Routine to dissect ISO 8327-1 OSI Session Protocol packets
5 * Yuriy Sidelnikov <YSidelnikov@hotmail.com>
7 * Wireshark - Network traffic analyzer
8 * By Gerald Combs <gerald@wireshark.org>
9 * Copyright 1998 Gerald Combs
11 * SPDX-License-Identifier: GPL-2.0-or-later
17 #define PROTO_STRING_SES "ISO 8327-1 OSI Session Protocol"
18 #define PROTO_STRING_SES_INFO "ISO 8327-1 OSI Session Protocol."
23 * Dissect ses-encapsulated data in a TCP stream.
27 #define SES_EXT_CONT 0x01
29 /* protocol versions */
30 #define PROTOCOL_VERSION_1 0x01
31 #define PROTOCOL_VERSION_2 0x02
34 #define BEGINNING_SPDU 0x01
37 #define DATA_TOKEN 0x01
38 #define RELEASE_TOKEN 0x40
39 #define SYNCHRONIZE_MINOR_TOKEN 0x04
40 #define MAJOR_ACTIVITY_TOKEN 0x10
42 /* session user req flag */
43 #define HALF_DUPLEX_FUNCTION_UNIT 0x0001
44 #define DUPLEX_FUNCTION_UNIT 0x0002
45 #define EXPEDITED_DATA_FUNCTION_UNIT 0x0004
46 #define MINOR_SYNCHRONIZE_FUNCTION_UNIT 0x0008
47 #define MAJOR_SYNCHRONIZE_FUNCTION_UNIT 0x0010
48 #define RESYNCHRONIZE_FUNCTION_UNIT 0x0020
49 #define ACTIVITY_MANAGEMENT_FUNCTION_UNIT 0x0040
50 #define NEGOTIATED_RELEASE_FUNCTION_UNIT 0x0080
51 #define CAPABILITY_DATA_FUNCTION_UNIT 0x0100
52 #define EXCEPTION_FUNCTION_UNIT 0x0200
53 #define TYPED_DATA_FUNCTION_UNIT 0x0400
54 #define SYMMETRIC_SYNCHRONIZE_FUNCTION_UNIT 0x0800
55 #define DATA_SEPARATION_FUNCTION_UNIT 0x1000
57 #define SES_EXCEPTION_REPORT 0x2000
58 /*define SES_EXCEPTION_REPORT 0 */
59 #define SES_DATA_TRANSFER 1
60 #define SES_GIVE_TOKENS 1
61 #define SES_PLEASE_TOKENS 2
62 #define SES_EXPEDITED 5
64 #define SES_NOT_FINISHED 8
66 #define SES_DISCONNECT 10
68 #define SES_CONNECTION_REQUEST 13
69 #define SES_CONNECTION_ACCEPT 14
70 #define SES_CONNECTION_DATA_OVERFLOW 15
71 #define SES_OVERFLOW_ACCEPT 16
72 #define SES_GIVE_TOKENS_CONFIRM 21
73 #define SES_GIVE_TOKENS_ACK 22
75 #define SES_ABORT_ACCEPT 26
76 /*#define SES_ACTIVITY_INTERRUPT 25
77 #define SES_ACTIVITY_INTERRUPT_ACK 26 */
78 #define SES_ACTIVITY_RESUME 29
79 #define SES_TYPED_DATA 33
80 #define SES_RESYNCHRONIZE_ACK 34
81 #define SES_MAJOR_SYNC_POINT 41
82 /*#define SES_MAJOR_SYNC_POINT 41
83 #define SES_ACTIVITY_END 41 */
84 #define SES_MAJOR_SYNC_ACK 42
85 #define SES_ACTIVITY_START 45
86 #define SES_EXCEPTION_DATA 48
87 #define SES_MINOR_SYNC_POINT 49
88 #define SES_MINOR_SYNC_ACK 50
89 #define SES_RESYNCHRONIZE 53
90 #define SES_ACTIVITY_DISCARD 57
91 #define SES_ACTIVITY_DISCARD_ACK 58
92 #define SES_CAPABILITY 61
93 #define SES_CAPABILITY_DATA_ACK 62
94 #define CLSES_UNIT_DATA 64
98 0: Rejection by called SS-user; reason not specified.
99 1: Rejection by called SS-user due to temporary congestion.
100 2: Rejection by called SS-user. Subsequent octets may be used
101 for user data up to a length of 512 octets if Protocol
102 Version 1 has been selected, and up to a length such that
103 the total length (including SI and LI) of the SPDU does
104 not exceed 65 539 octets if Protocol Version 2 has been
106 128 + 1: Session Selector unknown.
107 128 + 2: SS-user not attached to SSAP.
108 128 + 3: SPM congestion at connect time.
109 128 + 4: Proposed protocol versions not supported.
110 128 + 5: Rejection by the SPM; reason not specified.
111 128 + 6: Rejection by the SPM; implementation restriction stated in the
114 #define reason_not_specified 0
115 #define temporary_congestion 1
117 #define Session_Selector_unknown 128+1
118 #define SS_user_not_attached_to_SSAP 128+2
119 #define SPM_congestion_at_connect_time 128+3
120 #define versions_not_supported 128+4
121 #define SPM_reason_not_specified 128+5
122 #define SPM_implementation_restriction 128+6
124 #define NON_TOKENS_SPDU false
125 #define TOKENS_SPDU true
127 #define TWO_BYTE_LEN 0xff
131 #define Connection_Identifier 1
132 #define Connect_Accept_Item 5
133 #define Linking_Information 33
134 #define User_Data 193
135 #define Extended_User_Data 194
139 #define Called_SS_user_Reference 9
140 #define Calling_SS_user_Reference 10
141 #define Common_Reference 11
142 #define Additional_Reference_Information 12
144 #define Sync_Type_Item 15
145 #define Token_Item 16
146 #define Transport_Disconnect 17
148 #define Protocol_Options 19
149 #define Session_Requirement 20
150 #define TSDU_Maximum_Size 21
151 #define Version_Number 22
152 #define Initial_Serial_Number 23
153 #define Prepare_Type 24
154 #define EnclosureItem 25
155 #define Token_Setting_Item 26
156 #define Resync_Type 27
158 #define Activity_Identifier 41
159 #define Serial_Number 42
161 #define Reflect_Parameter 49
163 #define Reason_Code 50
164 #define Calling_Session_Selector 51
165 #define Called_Session_Selector 52
166 #define Second_Resync_Type 53
167 #define Second_Serial_Number 54
168 #define Second_Initial_Serial_Number 55
169 #define Upper_Limit_Serial_Number 56
170 #define Large_Initial_Serial_Number 57
171 #define Large_Second_Initial_Serial_Number 58
173 #define Data_Overflow 60
175 /* transport disconnect values */
176 #define transport_connection_is_released 0x01
177 #define user_abort 0x02
178 #define protocol_error 0x04
179 #define no_reason 0x08
180 #define implementation_restriction 0x10
182 #define SESSION_NO_ABORT 0
183 #define SESSION_USER_ABORT 1
184 #define SESSION_PROVIDER_ABORT 2
186 /* data for presentation selector */
187 struct SESSION_DATA_STRUCTURE
193 bool rtse_reassemble
;
196 extern value_string_ext ses_vals_ext
;
201 * Editor modelines - https://www.wireshark.org/tools/modelines.html
206 * indent-tabs-mode: t
209 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
210 * :indentSize=8:tabSize=8:noTabs=false: