Wireshark 4.5.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
packet-sccp.h
1/* packet-sccp.h
2 * Definitions for Signalling Connection Control Part (SCCP) dissection
3 *
4 * Wireshark - Network traffic analyzer
5 * By Gerald Combs <[email protected]>
6 * Copyright 1998 Gerald Combs
7 *
8 * SPDX-License-Identifier: GPL-2.0-or-later
9 */
10
11#ifndef __PACKET_SCCP_H
12#define __PACKET_SCCP_H
13
14#include "ws_symbol_export.h"
15
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
36
37WS_DLL_PUBLIC const value_string sccp_message_type_acro_values[];
38WS_DLL_PUBLIC const value_string sccp_release_cause_values[];
39WS_DLL_PUBLIC const value_string sccp_return_cause_values[];
40WS_DLL_PUBLIC const value_string sccp_reset_cause_values[];
41WS_DLL_PUBLIC const value_string sccp_error_cause_values[];
42WS_DLL_PUBLIC const value_string sccp_refusal_cause_values[];
43
44/* from packet-sua.c */
45WS_DLL_PUBLIC const value_string sua_co_class_type_acro_values[];
46
47typedef enum _sccp_payload_t {
48 SCCP_PLOAD_NONE,
49 SCCP_PLOAD_BSSAP,
50 SCCP_PLOAD_RANAP,
51 SCCP_PLOAD_NUM_PLOADS
52} sccp_payload_t;
53
54typedef struct _sccp_msg_info_t {
55 unsigned framenum;
56 unsigned offset;
57 unsigned type;
58
59 union {
60 struct {
61 char* label;
62 char* comment;
63 char* imsi;
64 struct _sccp_assoc_info_t* assoc;
65 struct _sccp_msg_info_t* next;
66 } co;
67 struct {
68 uint8_t* calling_gt;
69 unsigned calling_ssn;
70 uint8_t* called_gt;
71 unsigned called_ssn;
72 } ud;
73 } data;
75
76typedef struct _sccp_assoc_info_t {
77 uint32_t id;
78 uint32_t calling_dpc;
79 uint32_t called_dpc;
80 uint8_t calling_ssn;
81 uint8_t called_ssn;
82 bool has_fw_key;
83 bool has_bw_key;
84 sccp_msg_info_t* msgs;
85 sccp_msg_info_t* curr_msg;
86
87 sccp_payload_t payload;
88 char* calling_party;
89 char* called_party;
90 char* extra_info;
91 char* imsi;
92 uint32_t app_info; /* used only by dissectors of protocols above SCCP */
93
95
96typedef struct _sccp_decode_context_t {
97 uint8_t message_type;
98 unsigned dlr;
99 unsigned slr;
100 sccp_assoc_info_t* assoc;
101 sccp_msg_info_t* sccp_msg;
102
104
105extern sccp_assoc_info_t* get_sccp_assoc(packet_info* pinfo, unsigned offset, sccp_decode_context_t* value);
106extern bool looks_like_valid_sccp(uint32_t frame_num, tvbuff_t *tvb, uint8_t my_mtp3_standard);
107
108#define INVALID_LR 0xffffff /* a reserved value */
109
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 */
115WS_DLL_PUBLIC const value_string sccp_address_signal_values[];
116
117#endif
Definition packet_info.h:43
Definition packet-sccp.h:76
Definition packet-sccp.h:96
Definition packet-sccp.h:54
Definition value_string.h:25
Definition tvbuff-int.h:35