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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
# lcsap.cnf
# lcsap conformation file
# $Id$
#.OPT
PER
ALIGNED
#.END
#.EXPORTS
#.PDU_NEW
LCS-AP-PDU
#.MAKE_ENUM
ProcedureCode
ProtocolIE-ID
#.NO_EMIT
TBCD-STRING
#.OMIT_ASSIGNMENT
# Get rid of unused code warnings
Presence
TriggeringMessage
ProtocolIE-ContainerList
Message-Identifier
#.END
#.TYPE_RENAME
InitiatingMessage/value InitiatingMessage_value
SuccessfulOutcome/value SuccessfulOutcome_value
UnsuccessfulOutcome/value UnsuccessfulOutcome_value
#.FIELD_RENAME
InitiatingMessage/value initiatingMessagevalue
UnsuccessfulOutcome/value unsuccessfulOutcome_value
SuccessfulOutcome/value successfulOutcome_value
ProtocolIE-Field/value ie_field_value
#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
#.FN_FTR ProtocolIE-ID
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lcsap_ProtocolIE_ID_vals), "unknown (%d)"));
}
#.END
#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
if (check_col(actx->pinfo->cinfo, COL_INFO))
{
guint8 tmp = tvb_get_guint8(tvb, 0);
if(tmp == 0)
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%sReq",
val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
"unknown message"));
else if(tmp == 32)
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%sResp",
val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
"unknown message"));
else
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
"unknown message"));
}
if (ProcedureCode != 0)
{
_pro_code.code = ProcedureCode;
actx->pinfo->private_data = &_pro_code;
}
#.END
#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
#--- Parameterization is not supported in asn2wrs ---
#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, LCS-AP-PROTOCOL-IES : IEsSetParam} ::=
# SEQUENCE (SIZE (lowerBound..upperBound)) OF
# ProtocolIE-Container {{IEsSetParam}}
#.END
# Currently not used
# FN_PARS ProtocolIE-ContainerPairList
#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
# FN_HDR ProtocolIE-ContainerPairList
# static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
# { "lowerBound", ASN1_PAR_INTEGER },
# { "upperBound", ASN1_PAR_INTEGER },
# { NULL, 0 }
# };
# asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
# END
# following construction is not supported by asn2wrs
# PLMN-ID ::= TBCD-STRING (SIZE (3))
# TBCD-STRING ::= OCTET STRING
#.FN_BODY PLMN-ID VAL_PTR = parameter_tvb
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3, 3, FALSE, ¶meter_tvb);
if(tvb_length(tvb)==0)
return offset;
if (!parameter_tvb)
return offset;
dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, FALSE);
#.END
#.TYPE_ATTR
ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(lcsap_ProtocolIE_ID_vals)
#.ASSIGN_VALUE_TO_TYPE # LCSAP does not have constants assigned to types, they are pure INTEGER
# ProcedureCode
id-Location-Service-Request ProcedureCode
id-Connection-Oriented-Information-Transfer ProcedureCode
id-Connectionless-Information-Transfer ProcedureCode
id-Location-Abort ProcedureCode
id-Reset ProcedureCode
# ProtocolIE-ID
id-Correlation-ID ProtocolIE-ID
id-Location-Type ProtocolIE-ID
id-E-UTRAN-Cell-Identifier ProtocolIE-ID
id-LCS-Client-Type ProtocolIE-ID
id-LCS-Priority ProtocolIE-ID
id-LCS-QOS ProtocolIE-ID
id-UE-Positioning-Capability ProtocolIE-ID
id-Include-Velocity ProtocolIE-ID
id-IMSI ProtocolIE-ID
id-IMEI ProtocolIE-ID
id-MultipleAPDUs ProtocolIE-ID
id-Positioning-Data ProtocolIE-ID
id-Velocity-Estimate ProtocolIE-ID
id-Accuracy-Fulfillment-Indicator ProtocolIE-ID
id-LCS-Cause ProtocolIE-ID
id-Payload-Type ProtocolIE-ID
id-Return-Error-Cause ProtocolIE-ID
id-APDU ProtocolIE-ID
id-Return-Error-Request ProtocolIE-ID
id-Location-Estimate ProtocolIE-ID
id-Source-Identity ProtocolIE-ID
id-Destination-ID ProtocolIE-ID
#.REGISTER_NEW
#LCS-AP-PROTOCOL-IES
Return-Error-Type N lcsap.ies id-Return-Error-Request
Network-Element N lcsap.ies id-Destination-ID
Network-Element N lcsap.ies id-Source-Identity
Geographical-Area N lcsap.ies id-Location-Estimate
Correlation-ID N lcsap.ies id-Correlation-ID
Location-Type N lcsap.ies id-Location-Type
E-CGI N lcsap.ies id-E-UTRAN-Cell-Identifier
LCS-Priority N lcsap.ies id-LCS-Priority
LCS-QoS N lcsap.ies id-LCS-QOS
LCS-Client-Type N lcsap.ies id-LCS-Client-Type
UE-Positioning-Capability N lcsap.ies id-UE-Positioning-Capability
Include-Velocity N lcsap.ies id-Include-Velocity
IMSI N lcsap.ies id-IMSI
IMEI N lcsap.ies id-IMEI
MultipleAPDUs N lcsap.ies id-MultipleAPDUs
Positioning-Data N lcsap.ies id-Positioning-Data
Velocity-Estimate N lcsap.ies id-Velocity-Estimate
Accuracy-Fulfillment-Indicator N lcsap.ies id-Accuracy-Fulfillment-Indicator
LCS-Cause N lcsap.ies id-LCS-Cause
Payload-Type N lcsap.ies id-Payload-Type
Return-Error-Cause N lcsap.ies id-Return-Error-Cause
Location-Request N lcsap.proc.imsg id-Location-Service-Request
Location-Response N lcsap.proc.sout id-Location-Service-Request
Location-Response N lcsap.proc.uout id-Location-Service-Request
Connection-Oriented-Information N lcsap.proc.imsg id-Connection-Oriented-Information-Transfer
Connectionless-Information N lcsap.proc.imsg id-Connectionless-Information-Transfer
Connectionless-Information N lcsap.proc.uout id-Connectionless-Information-Transfer
Location-Abort-Request N lcsap.proc.imsg id-Location-Abort
Location-Response N lcsap.proc.sout id-Location-Abort
Reset-Request N lcsap.proc.imsg id-Reset
Reset-Acknowledge N lcsap.proc.sout id-Reset
#.TYPE_ATTR
BitRate TYPE = FT_UINT64 DISPLAY = BASE_DEC STRINGS = NULL
#.END
|