1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
/* packet-fp.h
*
* Martin Mathieson
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* Channel types */
#define CHANNEL_RACH_FDD 1
#define CHANNEL_RACH_TDD 2
#define CHANNEL_FACH_FDD 3
#define CHANNEL_FACH_TDD 4
#define CHANNEL_DSCH_FDD 5 /* DSCH Downlink Shared Channel */
#define CHANNEL_DSCH_TDD 6
#define CHANNEL_USCH_TDD_384 8
#define CHANNEL_USCH_TDD_128 24
#define CHANNEL_PCH 9
#define CHANNEL_CPCH 10
#define CHANNEL_BCH 11
#define CHANNEL_DCH 12 /* DCH Dedicated Transport Channel */
#define CHANNEL_HSDSCH 13 /* HS-DSCH - High Speed Downlink Shared Channel */
#define CHANNEL_IUR_CPCHF 14
#define CHANNEL_IUR_FACH 15
#define CHANNEL_IUR_DSCH 16
#define CHANNEL_EDCH 17 /* E-DCH Enhanced DCH */
#define CHANNEL_RACH_TDD_128 18
#define CHANNEL_HSDSCH_COMMON 19 /* HS-DSCH - High Speed Downlink Shared Channel */
#define CHANNEL_HSDSCH_COMMON_T3 20
#define CHANNEL_EDCH_COMMON 21
enum fp_interface_type
{
IuB_Interface,
IuR_Interface
};
enum division_type
{
Division_FDD = 1,
Division_TDD_384 = 2,
Division_TDD_128 = 3,
Division_TDD_768 = 4
};
enum fp_hsdsch_entity
{
entity_not_specified = 0,
hs = 1,
ehs = 2
};
enum fp_link_type
{
FP_Link_Unknown,
FP_Link_ATM,
FP_Link_Ethernet
};
/* Info attached to each FP packet */
typedef struct fp_info
{
enum fp_interface_type iface_type;
enum division_type division;
guint8 release; /* e.g. 99, 4, 5, 6, 7 */
guint16 release_year; /* e.g. 2001 */
guint8 release_month; /* e.g. 12 for December */
gboolean is_uplink;
gint channel; /* see Channel types definitions above */
guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
gint paging_indications;
gint num_chans;
#define MAX_FP_CHANS 64
gint chan_tf_size[MAX_FP_CHANS];
gint chan_num_tbs[MAX_FP_CHANS];
#define MAX_EDCH_DDIS 16
gint no_ddi_entries;
guint8 edch_ddi[MAX_EDCH_DDIS];
guint edch_macd_pdu_size[MAX_EDCH_DDIS];
guint8 edch_type; /* 1 means T2 */
gint cur_tb; /* current transport block (required for dissecting of single TBs */
gint cur_chan; /* current channel, required to retrieve the correct channel configuration for UMTS MAC */
guint16 srcport, destport;
/* HSDSCH Related data */
enum fp_hsdsch_entity hsdsch_entity;
enum fp_link_type link_type;
} fp_info;
/* From NBAC-Constants.asn */
#define FP_maxNrOfTFs 32
typedef struct
{
gint num_ul_chans;
gint ul_chan_tf_size[MAX_FP_CHANS];
gint ul_chan_num_tbs[MAX_FP_CHANS];
gint num_dl_chans;
gint dl_chan_tf_size[MAX_FP_CHANS];
gint dl_chan_num_tbs[MAX_FP_CHANS];
} fp_dch_chanel_info_t;
typedef struct
{
enum fp_interface_type iface_type;
enum division_type division;
gint channel; /* see Channel types definitions above */
guint32 dl_frame_number; /* the frame where this conversation is started from CRNC */
guint32 ul_frame_number; /* the frame where this conversation is started from Node B */
address crnc_address;
guint16 crnc_port;
/* DCH's in this flow */
gint num_dch_in_flow;
gint dchs_in_flow_list[FP_maxNrOfTFs];
guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
/* DCH type chanel data */
fp_dch_chanel_info_t fp_dch_chanel_info[FP_maxNrOfTFs];
/* E-DCH related data */
gint no_ddi_entries;
guint8 edch_ddi[MAX_EDCH_DDIS];
guint edch_macd_pdu_size[MAX_EDCH_DDIS];
guint8 edch_type; /* 1 means T2 */
/* HSDSCH Related data */
enum fp_hsdsch_entity hsdsch_entity;
} umts_fp_conversation_info_t;
void set_umts_fp_conv_data(conversation_t *conversation, umts_fp_conversation_info_t *umts_fp_conversation_info);
|