2 * Definitions for Signalling Connection Control Part (SCCP) dissection
4 * Wireshark - Network traffic analyzer
5 * By Gerald Combs <gerald@wireshark.org>
6 * Copyright 1998 Gerald Combs
8 * SPDX-License-Identifier: GPL-2.0-or-later
11 #ifndef __PACKET_SCCP_H
12 #define __PACKET_SCCP_H
14 #include "ws_symbol_export.h"
16 #define SCCP_MSG_TYPE_CR 0x01
17 #define SCCP_MSG_TYPE_CC 0x02
18 #define SCCP_MSG_TYPE_CREF 0x03
19 #define SCCP_MSG_TYPE_RLSD 0x04
20 #define SCCP_MSG_TYPE_RLC 0x05
21 #define SCCP_MSG_TYPE_DT1 0x06
22 #define SCCP_MSG_TYPE_DT2 0x07
23 #define SCCP_MSG_TYPE_AK 0x08
24 #define SCCP_MSG_TYPE_UDT 0x09
25 #define SCCP_MSG_TYPE_UDTS 0x0a
26 #define SCCP_MSG_TYPE_ED 0x0b
27 #define SCCP_MSG_TYPE_EA 0x0c
28 #define SCCP_MSG_TYPE_RSR 0x0d
29 #define SCCP_MSG_TYPE_RSC 0x0e
30 #define SCCP_MSG_TYPE_ERR 0x0f
31 #define SCCP_MSG_TYPE_IT 0x10
32 #define SCCP_MSG_TYPE_XUDT 0x11
33 #define SCCP_MSG_TYPE_XUDTS 0x12
34 #define SCCP_MSG_TYPE_LUDT 0x13
35 #define SCCP_MSG_TYPE_LUDTS 0x14
37 WS_DLL_PUBLIC
const value_string sccp_message_type_acro_values
[];
38 WS_DLL_PUBLIC
const value_string sccp_release_cause_values
[];
39 WS_DLL_PUBLIC
const value_string sccp_return_cause_values
[];
40 WS_DLL_PUBLIC
const value_string sccp_reset_cause_values
[];
41 WS_DLL_PUBLIC
const value_string sccp_error_cause_values
[];
42 WS_DLL_PUBLIC
const value_string sccp_refusal_cause_values
[];
44 /* from packet-sua.c */
45 WS_DLL_PUBLIC
const value_string sua_co_class_type_acro_values
[];
47 typedef enum _sccp_payload_t
{
54 typedef struct _sccp_msg_info_t
{
64 struct _sccp_assoc_info_t
* assoc
;
65 struct _sccp_msg_info_t
* next
;
76 typedef struct _sccp_assoc_info_t
{
84 sccp_msg_info_t
* msgs
;
85 sccp_msg_info_t
* curr_msg
;
87 sccp_payload_t payload
;
92 uint32_t app_info
; /* used only by dissectors of protocols above SCCP */
96 typedef struct _sccp_decode_context_t
{
100 sccp_assoc_info_t
* assoc
;
101 sccp_msg_info_t
* sccp_msg
;
103 } sccp_decode_context_t
;
105 extern sccp_assoc_info_t
* get_sccp_assoc(packet_info
* pinfo
, unsigned offset
, sccp_decode_context_t
* value
);
106 extern bool looks_like_valid_sccp(uint32_t frame_num
, tvbuff_t
*tvb
, uint8_t my_mtp3_standard
);
108 #define INVALID_LR 0xffffff /* a reserved value */
110 #define GT_SIGNAL_LENGTH 1
111 #define GT_ODD_SIGNAL_MASK 0x0f
112 #define GT_EVEN_SIGNAL_MASK 0xf0
113 #define GT_EVEN_SIGNAL_SHIFT 4
114 #define GT_MAX_SIGNALS (32*7) /* it's a bit big, but it allows for adding a lot of "(spare)" and "Unknown" values (7 chars) if there are errors - e.g. ANSI vs ITU wrongly selected */
115 WS_DLL_PUBLIC
const value_string sccp_address_signal_values
[];