2 # hnbap conformation file
3 # Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
18 ProtocolIE-Field/value ProtocolIE_Field_value
19 PrivateIE-Field/value PrivateIE_Field_value
20 InitiatingMessage/value InitiatingMessage_value
21 SuccessfulOutcome/value SuccessfulOutcome_value
22 UnsuccessfulOutcome/value UnsuccessfulOutcome_value
25 InitiatingMessage/value initiatingMessagevalue
26 UnsuccessfulOutcome/value unsuccessfulOutcome_value
27 SuccessfulOutcome/value successfulOutcome_value
28 PrivateIE-Field/value private_value
29 ProtocolIE-Field/value ie_field_value
30 ProtocolIE-Field/id protocol_ie_field_id
31 PrivateIE-Field/id private_ie_field_id
32 GeographicalLocation/geographicalCoordinates geographical_location_geographical_coordinates
33 HNB-Location-Information/geographicalCoordinates hnb_location_information_geographical_coordinates
34 MacroCoverageInformation/cellIdentity macroCellID
38 ProtocolIE-ContainerList
39 ProtocolIE-Single-Container
46 #.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
47 #.FN_FTR ProtocolIE-ID
49 proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
50 val_to_str(ProtocolIE_ID, VALS(hnbap_ProtocolIE_ID_vals), "unknown (%d)"));
54 #.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
56 #.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
58 #.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
59 #.FN_FTR ProcedureCode
60 if (strcmp(val_to_str_const(ProcedureCode, hnbap_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
61 col_set_str(actx->pinfo->cinfo, COL_INFO,
63 } /* Known Procedures should be included below and broken out as ELEMENTARY names to avoid confusion */
65 #.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
67 #.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
69 #.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
71 # There is no protocol inside HNBAP so fill col info with HNBAP elementary procedure name
72 #.FN_BODY HNBRegisterRequest
73 col_set_str(actx->pinfo->cinfo, COL_INFO,
74 "HNB_REGISTER_REQUEST ");
77 #.FN_BODY HNBRegisterAccept
78 col_set_str(actx->pinfo->cinfo, COL_INFO,
79 "HNB_REGISTER_ACCEPT ");
82 #.FN_BODY HNBRegisterReject
83 col_set_str(actx->pinfo->cinfo, COL_INFO,
84 "HNB_REGISTER_REJECT ");
87 #.FN_BODY UERegisterRequest
88 col_set_str(actx->pinfo->cinfo, COL_INFO,
89 "UE_REGISTER_REQUEST ");
92 #.FN_BODY UERegisterAccept
93 col_set_str(actx->pinfo->cinfo, COL_INFO,
94 "UE_REGISTER_ACCEPT ");
97 #.FN_BODY UERegisterReject
98 col_set_str(actx->pinfo->cinfo, COL_INFO,
99 "UE_REGISTER_REJECT ");
102 #.FN_BODY UEDe-Register
103 col_set_str(actx->pinfo->cinfo, COL_INFO,
107 #.FN_BODY HNBDe-Register
108 col_set_str(actx->pinfo->cinfo, COL_INFO,
112 #.FN_BODY ErrorIndication
113 col_set_str(actx->pinfo->cinfo, COL_INFO,
114 "ERROR_INDICATION ");
115 col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
118 #.FN_BODY CSGMembershipUpdate
119 col_set_str(actx->pinfo->cinfo, COL_INFO,
120 "CSG_MEMBERSHIP_UPDATE_MESSAGE ");
123 #.FN_BODY PrivateMessage
124 col_set_str(actx->pinfo->cinfo, COL_INFO,
128 #.FN_BODY TNLUpdateRequest
129 col_set_str(actx->pinfo->cinfo, COL_INFO,
130 "TNL_UPDATE_REQUEST_MESSAGE ");
132 #.FN_BODY TNLUpdateResponse
133 col_set_str(actx->pinfo->cinfo, COL_INFO,
134 "TNL_UPDATE_RESPONSE_MESSAGE ");
136 #.FN_BODY TNLUpdateFailure
137 col_set_str(actx->pinfo->cinfo, COL_INFO,
138 "TNL_UPDATE_FAILURE_MESSAGE ");
140 #.FN_BODY HNBConfigTransferRequest
141 col_set_str(actx->pinfo->cinfo, COL_INFO,
142 "HNB_CONFIG_TRANSFER_REQUEST_MESSAGE ");
144 #.FN_BODY HNBConfigTransferResponse
145 col_set_str(actx->pinfo->cinfo, COL_INFO,
146 "HNB_CONFIG_TRANSFER_RESPONSE_MESSAGE ");
148 #.FN_BODY RelocationComplete
149 col_set_str(actx->pinfo->cinfo, COL_INFO,
150 "RELOCATION_COMPLETE_MESSAGE ");
155 #.FN_BODY IMSI VAL_PTR = ¶meter_tvb
156 tvbuff_t *parameter_tvb;
159 proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_hnbap_imsi);
160 dissect_e212_imsi(parameter_tvb, actx->pinfo, subtree, 0, tvb_reported_length(parameter_tvb), false);
163 #.FN_BODY PLMNidentity VAL_PTR = ¶meter_tvb
164 tvbuff_t *parameter_tvb;
165 struct hnbap_private_data *hnbap_data = hnbap_get_private_data(actx->pinfo);
166 e212_number_type_t number_type = hnbap_data->number_type;
167 hnbap_data->number_type = E212_NONE;
170 dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, false);
175 struct hnbap_private_data *hnbap_data = hnbap_get_private_data(actx->pinfo);
176 hnbap_data->number_type = E212_CGI;
180 struct hnbap_private_data *hnbap_data = hnbap_get_private_data(actx->pinfo);
181 /* The RAI is defined in the ASN.1 as the LAI plus the RAC; don't override
182 * the MNC/MCC field types in that case.
184 if (hnbap_data->number_type != E212_RAI) {
185 hnbap_data->number_type = E212_LAI;
190 LAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
191 #.FN_BODY LAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
192 tvbuff_t *parameter_tvb = NULL;
195 actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
199 struct hnbap_private_data *hnbap_data = hnbap_get_private_data(actx->pinfo);
200 hnbap_data->number_type = E212_RAI;
204 RAC TYPE = FT_UINT8 DISPLAY = BASE_DEC_HEX
205 #.FN_BODY RAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
206 tvbuff_t *parameter_tvb = NULL;
209 actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
213 SAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
214 #.FN_BODY SAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
215 tvbuff_t *parameter_tvb = NULL;
218 actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
221 #.ASSIGN_VALUE_TO_TYPE # HNBAP ASN.1 does not have constants assigned to types
223 id-HNBRegister ProcedureCode
224 id-HNBDe-Register ProcedureCode
225 id-UERegister ProcedureCode
226 id-UEDe-Register ProcedureCode
227 id-ErrorIndication ProcedureCode
228 id-privateMessage ProcedureCode
229 id-CSGMembershipUpdate ProcedureCode
230 id-TNLUpdate ProcedureCode
231 id-HNBConfigTransfer ProcedureCode
232 id-RelocationComplete ProcedureCode
235 id-Cause ProtocolIE-ID
236 id-CriticalityDiagnostics ProtocolIE-ID
237 id-HNB-Identity ProtocolIE-ID
238 id-Context-ID ProtocolIE-ID
239 id-UE-Identity ProtocolIE-ID
242 id-HNB-Location-Information ProtocolIE-ID
243 id-PLMNidentity ProtocolIE-ID
245 id-CellIdentity ProtocolIE-ID
246 id-Registration-Cause ProtocolIE-ID
247 id-UE-Capabilities ProtocolIE-ID
248 id-RNC-ID ProtocolIE-ID
249 id-CSG-ID ProtocolIE-ID
250 id-BackoffTimer ProtocolIE-ID
251 id-HNB-Internet-Information ProtocolIE-ID
252 id-HNB-Cell-Access-Mode ProtocolIE-ID
253 id-MuxPortNumber ProtocolIE-ID
254 id-Service-Area-For-Broadcast ProtocolIE-ID
255 id-CSGMembershipStatus ProtocolIE-ID
256 id-RABList ProtocolIE-ID
257 id-HNBConfigInfo ProtocolIE-ID
258 id-AccessResult ProtocolIE-ID
259 id-Update-cause ProtocolIE-ID
260 id-NeighbourInfoList ProtocolIE-ID
261 id-NeighbourInfoRequestList ProtocolIE-ID
262 id-Iurh-Signalling-TNL-Address ProtocolIE-ID
264 id-HNB-Cell-Identifier ProtocolIE-ID
271 Cause N hnbap.ies id-Cause
272 CriticalityDiagnostics N hnbap.ies id-CriticalityDiagnostics
273 HNB-Identity N hnbap.ies id-HNB-Identity
274 Context-ID N hnbap.ies id-Context-ID
275 UE-Identity N hnbap.ies id-UE-Identity
276 LAC N hnbap.ies id-LAC
277 RAC N hnbap.ies id-RAC
278 HNB-Location-Information N hnbap.ies id-HNB-Location-Information
279 PLMNidentity N hnbap.ies id-PLMNidentity
280 SAC N hnbap.ies id-SAC
281 CellIdentity N hnbap.ies id-CellIdentity
282 Registration-Cause N hnbap.ies id-Registration-Cause
283 UE-Capabilities N hnbap.ies id-UE-Capabilities
284 RNC-ID N hnbap.ies id-RNC-ID
285 CSG-ID N hnbap.ies id-CSG-ID
286 BackoffTimer N hnbap.ies id-BackoffTimer
287 CSGMembershipStatus N hnbap.ies id-CSGMembershipStatus
289 RABList N hnbap.ies id-RABList
292 Update-cause N hnbap.ies id-Update-cause
293 NeighbourInfoList N hnbap.ies id-NeighbourInfoList
294 NeighbourInfoRequestList N hnbap.ies id-NeighbourInfoRequestList
295 # id-HNB-Cell-Identifier
297 #HNBAP-PROTOCOL-EXTENSION
298 IP-Address N hnbap.extension id-HNB-Internet-Information
299 HNB-Cell-Access-Mode N hnbap.extension id-HNB-Cell-Access-Mode
300 MuxPortNumber N hnbap.extension id-MuxPortNumber
301 CSGMembershipStatus N hnbap.extension id-CSGMembershipStatus
302 IP-Address N hnbap.extension id-Iurh-Signalling-TNL-Address
303 PSC N hnbap.extension id-PSC
305 #HNBAP-ELEMENTARY-PROCEDURE
307 HNBRegisterRequest N hnbap.proc.imsg id-HNBRegister
308 HNBRegisterAccept N hnbap.proc.sout id-HNBRegister
309 HNBRegisterReject N hnbap.proc.uout id-HNBRegister
310 UERegisterRequest N hnbap.proc.imsg id-UERegister
311 UERegisterAccept N hnbap.proc.sout id-UERegister
312 UERegisterReject N hnbap.proc.uout id-UERegister
314 TNLUpdateRequest N hnbap.proc.imsg id-TNLUpdate
315 TNLUpdateResponse N hnbap.proc.sout id-TNLUpdate
316 TNLUpdateFailure N hnbap.proc.uout id-TNLUpdate
318 HNBConfigTransferRequest N hnbap.proc.imsg id-HNBConfigTransfer
319 HNBConfigTransferResponse N hnbap.proc.sout id-HNBConfigTransfer
321 RelocationComplete N hnbap.proc.imsg id-RelocationComplete
324 UEDe-Register N hnbap.proc.imsg id-UEDe-Register
325 HNBDe-Register N hnbap.proc.imsg id-HNBDe-Register
326 ErrorIndication N hnbap.proc.imsg id-ErrorIndication
327 CSGMembershipUpdate N hnbap.proc.imsg id-CSGMembershipUpdate
328 PrivateMessage N hnbap.proc.imsg id-privateMessage