2 # e2ap conformation file
14 #.EXPORTS ONLY_VALS WS_DLL
21 E2SM-KPM-EventTriggerDefinition
22 E2SM-KPM-ActionDefinition
23 E2SM-KPM-IndicationHeader
24 E2SM-KPM-IndicationMessage
25 E2SM-KPM-RANfunction-Description
28 E2SM-RC-ActionDefinition
29 E2SM-RC-RANFunctionDefinition
30 E2SM-RC-IndicationMessage
31 E2SM-RC-IndicationHeader
34 E2SM-RC-ControlMessage
35 E2SM-RC-ControlOutcome
37 # E2SM-RC-QueryOutcome
38 # E2SM-RC-QueryDefinition
42 E2SM-NI-EventTriggerDefinition
43 E2SM-NI-ActionDefinition
44 E2SM-NI-RANfunction-Description
45 E2SM-NI-IndicationMessage
46 E2SM-NI-IndicationHeader
49 E2SM-NI-ControlMessage
50 E2SM-NI-ControlOutcome
61 # Get rid of unused code warnings
63 ProtocolIE-ContainerList
64 ProtocolIE-ContainerPair
65 ProtocolIE-ContainerPairList
70 SubscriberProfileIDforRFP
79 #E2SM-KPM-IndicationMessage DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationMessage_vals)
80 #E2SM-KPM-IndicationHeader DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationHeader_vals)
84 InitiatingMessage/value InitiatingMessage_value
85 SuccessfulOutcome/value SuccessfulOutcome_value
86 UnsuccessfulOutcome/value UnsuccessfulOutcome_value
90 InitiatingMessage/value initiatingMessagevalue
91 UnsuccessfulOutcome/value unsuccessfulOutcome_value
92 SuccessfulOutcome/value successfulOutcome_value
94 GlobalenGNB-ID/gNB-ID eNGNB-ID-choice
95 ENGNB-ID/gNB-ID gnb-id-bit-string
96 GlobalGNB-ID/gNB-ID gNB-ID-choice
97 E2SM-NI-CallProcessID-Format2/callProcess-ID callProcess-ID-format2
101 #.FN_BODY ProtocolIE-ID VAL_PTR=&e2ap_data->protocol_ie_id
102 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
105 #.FN_FTR ProtocolIE-ID
107 proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
108 val_to_str_ext(e2ap_data->protocol_ie_id, &e2ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
113 # TODO: probably not worth it
114 # #.FN_BODY E2AP-PDU VAL_PTR=&value
117 # col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(value, e2ap_E2AP_PDU_vals, "Unknown"));
121 #.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
123 # FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
124 # FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
127 #.FN_BODY ProcedureCode VAL_PTR = &e2ap_data->procedure_code
128 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
130 //col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", val_to_str(e2ap_data->procedure_code, e2ap_ProcedureCode_vals, "Unknown"));
135 #.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
136 #.FN_HDR InitiatingMessage/value
137 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
138 e2ap_data->message_type = INITIATING_MESSAGE;
139 #.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
140 #.FN_HDR SuccessfulOutcome/value
141 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
142 e2ap_data->message_type = SUCCESSFUL_OUTCOME;
143 #.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
144 #.FN_HDR UnsuccessfulOutcome/value
145 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
146 e2ap_data->message_type = UNSUCCESSFUL_OUTCOME;
148 #--- Parameterization is not supported in asn2wrs ---
150 #ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, e2ap-PROTOCOL-IES : IEsSetParam} ::=
151 # SEQUENCE (SIZE (lowerBound..upperBound)) OF
152 # ProtocolIE-Container {{IEsSetParam}}
154 # #.FN_PARS ProtocolIE-ContainerList
155 # MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
156 # MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
157 # #.FN_HDR ProtocolIE-ContainerList
158 # static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
159 # { "lowerBound", ASN1_PAR_INTEGER },
160 # { "upperBound", ASN1_PAR_INTEGER },
161 # { NULL, (asn1_par_type)0 }
163 # asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
166 #ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, e2ap-PROTOCOL-IES-PAIR : IEsSetParam} ::=
167 # SEQUENCE (SIZE (lowerBound..upperBound)) OF
168 # ProtocolIE-ContainerPair {{IEsSetParam}}
171 # FN_PARS ProtocolIE-ContainerPairList
172 #MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
173 #MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
174 # FN_HDR ProtocolIE-ContainerPairList
175 # static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
176 # { "lowerBound", ASN1_PAR_INTEGER },
177 # { "upperBound", ASN1_PAR_INTEGER },
180 # asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
183 #PduSessionResource-IE-ContainerList { e2ap-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofPduSessionResources, {IEsSetParam} }
184 # FN_BODY PduSessionResource-IE-ContainerList
185 # asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
186 # asn1_param_push_integer(%(ACTX)s, 1);
187 # asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
189 # asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
192 # PduSessionResource-IE-ContainerPairList { e2ap-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofPduSessionResources, {IEsSetParam} }
194 # FN_BODY SAEB-IE-ContainerPairList
195 # asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerPairList");
196 # asn1_param_push_integer(%(ACTX)s, 1);
197 # asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
199 # asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerPairList");
203 # ProtocolError-IE-ContainerList { e2ap-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofPduSessionResources, {IEsSetParam} }
204 # FN_BODY ProtocolError-IE-ContainerList
205 # asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
206 # asn1_param_push_integer(%(ACTX)s, 1);
207 # asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
209 # asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
212 # .FN_HDR PrivateIE-ID
213 # struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
214 # e2ap_data->obj_id = NULL;
216 # FN_BODY PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &e2ap_data->obj_id
217 # struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
220 # FN_BODY PrivateIE-Field/value
221 # struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
222 # if (e2ap_data->obj_id) {
223 # offset = call_per_oid_callback(e2ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index);
231 # #.FN_BODY E2AP-Message VAL_PTR = ¶meter_tvb
232 # tvbuff_t *parameter_tvb;
233 # proto_tree *subtree;
235 # if (!parameter_tvb)
238 # subtree = proto_item_add_subtree(actx->created_item, ett_e2ap_e2ap_Message);
239 # col_set_fence(actx->pinfo->cinfo, COL_INFO);
240 # call_dissector(e2ap_handle, parameter_tvb, actx->pinfo, subtree);
242 #.FN_BODY E2SM-KPM-IndicationHeader-Format1/colletStartTime
243 int ts_offset = offset;
245 /* Add as a generated field the timestamp decoded */
246 const char *time_str = tvb_ntp_fmt_ts_sec(tvb, (ts_offset+7)/8);
247 proto_item *ti = proto_tree_add_string(tree, hf_e2ap_timestamp_string, tvb, (ts_offset+7)/8, 4, time_str);
248 proto_item_set_generated(ti);
251 # ################################################################################
252 # Calling in-depth definitions of E2AP OCTET STRING fields.
254 #.FN_BODY RANfunctionDefinition VAL_PTR = ¶meter_tvb
255 tvbuff_t *parameter_tvb;
257 /* We know that the next thing is a RANFunction-Name, but it's wrapped up in a sequence,
258 so can't silently/hiddenly call ranFunctionName here... */
262 /* Looking for shortName string near beginning of tvb */
264 /* For each RAN function name.. */
266 for (n=KPM_RANFUNCTIONS; n<MAX_RANFUNCTIONS && !found; n++) {
267 uint32_t tvb_len = tvb_captured_length(parameter_tvb);
268 unsigned name_len = (int)strlen(g_ran_function_name_table[n]);
269 /* For each of several byte positions.. */
270 for (int m=0; (m<30) && ((m+name_len+1))<tvb_len; m++) {
271 /* Have we found a match on the name? */
272 if (tvb_strneql(parameter_tvb, m, g_ran_function_name_table[n], name_len) == 0) {
273 /* We don't yet know the OID (should be OK),
274 so for now, call with the last/only available dissector for this RAN Function name */
276 if (g_ran_functions_available_dissectors[n].num_available_dissectors) {
277 /* Choose the one with the highest major version number */
278 unsigned best_index=0, highest_version=0;
279 for (unsigned d=0; d < g_ran_functions_available_dissectors[n].num_available_dissectors; d++) {
280 if (g_ran_functions_available_dissectors[n].ran_function_dissectors[d]->major_version > highest_version) {
285 g_ran_functions_available_dissectors[n].ran_function_dissectors[best_index]->functions.ran_function_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
294 if (found && (found_index==CCC_RANFUNCTIONS)) {
295 // ranFunctionName, for this ranFunction, is inside the JSON. Rather than try to retrive it,
296 // just use this proxy that ought to appear at the start... OID should get set in the normal way.
297 if (!actx->pinfo->fd->visited) {
298 e2ap_store_ran_function_mapping(actx->pinfo, tree, parameter_tvb, "{" /*"ORAN-E2SM-CCC"*/);
303 proto_item *ti = proto_tree_add_item(tree, hf_e2ap_ran_function_name_not_recognised, tvb, 0, 0, ENC_NA);
304 expert_add_info_format(actx->pinfo, ti, &ei_e2ap_ran_function_names_no_match,
305 "ShortName does not match any known Service Model");
308 #.FN_BODY RANfunction-Name/ranFunction-ShortName VAL_PTR=&value_tvb
311 if (!actx->pinfo->fd->visited) {
312 /* N.B. too early to work out exact dissector, as don't have OID yet */
313 e2ap_store_ran_function_mapping(actx->pinfo, tree, value_tvb,
314 tvb_get_string_enc(actx->pinfo->pool, value_tvb, 0, tvb_captured_length(value_tvb), ENC_ASCII));
317 #.FN_BODY RANfunctionOID VAL_PTR = ¶meter_tvb
318 tvbuff_t *parameter_tvb;
320 /* Now complete mapping with OID string */
321 e2ap_update_ran_function_mapping(actx->pinfo, tree, parameter_tvb,
322 tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0,
323 tvb_captured_length(parameter_tvb), ENC_ASCII));
327 # TODO: for these IEs, report as expert info if have RAN Function dissector, but it lacks that IE!
329 #.FN_BODY RICcontrolHeader VAL_PTR = ¶meter_tvb
330 tvbuff_t *parameter_tvb;
332 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
334 if (dissector->functions.ric_control_header_dissector) {
335 dissector->functions.ric_control_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
339 #.FN_BODY RICcontrolMessage VAL_PTR = ¶meter_tvb
340 tvbuff_t *parameter_tvb;
342 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
344 if (dissector->functions.ric_control_message_dissector) {
345 dissector->functions.ric_control_message_dissector(parameter_tvb, actx->pinfo, tree, NULL);
349 #.FN_BODY RICcontrolOutcome VAL_PTR = ¶meter_tvb
350 tvbuff_t *parameter_tvb;
352 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
354 if (dissector->functions.ric_control_outcome_dissector) {
355 dissector->functions.ric_control_outcome_dissector(parameter_tvb, actx->pinfo, tree, NULL);
359 #.FN_BODY RICqueryOutcome VAL_PTR = ¶meter_tvb
360 tvbuff_t *parameter_tvb;
362 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
364 if (dissector->functions.ric_query_outcome_dissector) {
365 dissector->functions.ric_query_outcome_dissector(parameter_tvb, actx->pinfo, tree, NULL);
369 #.FN_BODY RICqueryDefinition VAL_PTR = ¶meter_tvb
370 tvbuff_t *parameter_tvb;
372 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
374 if (dissector->functions.ric_query_definition_dissector) {
375 dissector->functions.ric_query_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
379 #.FN_BODY RICqueryHeader VAL_PTR = ¶meter_tvb
380 tvbuff_t *parameter_tvb;
382 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
384 if (dissector->functions.ric_query_header_dissector) {
385 dissector->functions.ric_query_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
391 #.FN_BODY RICeventTriggerDefinition VAL_PTR = ¶meter_tvb
392 tvbuff_t *parameter_tvb;
394 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
396 if (dissector->functions.ran_event_trigger_dissector) {
397 dissector->functions.ran_event_trigger_dissector(parameter_tvb, actx->pinfo, tree, NULL);
401 #.FN_BODY RICactionDefinition VAL_PTR = ¶meter_tvb
402 tvbuff_t *parameter_tvb;
404 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
406 if (dissector->functions.ran_action_definition_dissector) {
407 dissector->functions.ran_action_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
411 #.FN_BODY RICindicationHeader VAL_PTR = ¶meter_tvb
412 tvbuff_t *parameter_tvb;
414 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
416 if (dissector->functions.ran_indication_header_dissector) {
417 dissector->functions.ran_indication_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
421 #.FN_BODY RICindicationMessage VAL_PTR = ¶meter_tvb
422 tvbuff_t *parameter_tvb;
424 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
426 if (dissector->functions.ran_indication_message_dissector) {
427 dissector->functions.ran_indication_message_dissector(parameter_tvb, actx->pinfo, tree, NULL);
431 #.FN_BODY RICcallProcessID VAL_PTR = ¶meter_tvb
432 tvbuff_t *parameter_tvb;
434 ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
436 if (dissector->functions.ran_callprocessid_dissector) {
437 dissector->functions.ran_callprocessid_dissector(parameter_tvb, actx->pinfo, tree, NULL);
440 # ################################################################################
444 #.ASSIGN_VALUE_TO_TYPE # e2ap does not have constants assigned to types, they are pure INTEGER
447 id-E2setup ProcedureCode
448 id-ErrorIndication ProcedureCode
449 id-Reset ProcedureCode
450 id-RICcontrol ProcedureCode
451 id-RICindication ProcedureCode
452 id-RICserviceQuery ProcedureCode
453 id-RICserviceUpdate ProcedureCode
454 id-RICsubscription ProcedureCode
455 id-RICsubscriptionDelete ProcedureCode
456 id-E2nodeConfigurationUpdate ProcedureCode
457 id-E2connectionUpdate ProcedureCode
458 id-RICsubscriptionDeleteRequired ProcedureCode
459 id-E2removal ProcedureCode
461 id-RICsubscriptionModification ProcedureCode
462 id-RICsubscriptionModificationRequired ProcedureCode
463 id-RICquery ProcedureCode
468 id-Cause ProtocolIE-ID
469 id-CriticalityDiagnostics ProtocolIE-ID
470 id-GlobalE2node-ID ProtocolIE-ID
471 id-GlobalRIC-ID ProtocolIE-ID
472 id-RANfunctionID ProtocolIE-ID
473 id-RANfunctionID-Item ProtocolIE-ID
474 id-RANfunctionIEcause-Item ProtocolIE-ID
475 id-RANfunction-Item ProtocolIE-ID
476 id-RANfunctionsAccepted ProtocolIE-ID
477 id-RANfunctionsAdded ProtocolIE-ID
478 id-RANfunctionsDeleted ProtocolIE-ID
479 id-RANfunctionsModified ProtocolIE-ID
480 id-RANfunctionsRejected ProtocolIE-ID
481 id-RICaction-Admitted-Item ProtocolIE-ID
482 id-RICactionID ProtocolIE-ID
483 id-RICaction-NotAdmitted-Item ProtocolIE-ID
484 id-RICactions-Admitted ProtocolIE-ID
485 id-RICactions-NotAdmitted ProtocolIE-ID
486 id-RICaction-ToBeSetup-Item ProtocolIE-ID
487 id-RICcallProcessID ProtocolIE-ID
488 id-RICcontrolAckRequest ProtocolIE-ID
489 id-RICcontrolHeader ProtocolIE-ID
490 id-RICcontrolMessage ProtocolIE-ID
491 id-RICcontrolStatus ProtocolIE-ID
492 id-RICindicationHeader ProtocolIE-ID
493 id-RICindicationMessage ProtocolIE-ID
494 id-RICindicationSN ProtocolIE-ID
495 id-RICindicationType ProtocolIE-ID
496 id-RICrequestID ProtocolIE-ID
497 id-RICsubscriptionDetails ProtocolIE-ID
498 id-TimeToWait ProtocolIE-ID
499 id-RICcontrolOutcome ProtocolIE-ID
501 id-E2nodeComponentConfigUpdate ProtocolIE-ID
502 id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID
503 id-E2nodeComponentConfigUpdateAck ProtocolIE-ID
504 id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID
505 id-E2connectionSetup ProtocolIE-ID
506 id-E2connectionSetupFailed ProtocolIE-ID
507 id-E2connectionSetupFailed-Item ProtocolIE-ID
508 id-E2connectionFailed-Item ProtocolIE-ID
509 id-E2connectionUpdate-Item ProtocolIE-ID
510 id-E2connectionUpdateAdd ProtocolIE-ID
511 id-E2connectionUpdateModify ProtocolIE-ID
512 id-E2connectionUpdateRemove ProtocolIE-ID
513 id-E2connectionUpdateRemove-Item ProtocolIE-ID
514 id-TNLinformation ProtocolIE-ID
515 id-TransactionID ProtocolIE-ID
517 id-E2nodeComponentConfigAddition ProtocolIE-ID
518 id-E2nodeComponentConfigAddition-Item ProtocolIE-ID
519 id-E2nodeComponentConfigAdditionAck ProtocolIE-ID
520 id-E2nodeComponentConfigAdditionAck-Item ProtocolIE-ID
521 id-E2nodeComponentConfigRemoval ProtocolIE-ID
522 id-E2nodeComponentConfigRemoval-Item ProtocolIE-ID
523 id-E2nodeComponentConfigRemovalAck ProtocolIE-ID
524 id-E2nodeComponentConfigRemovalAck-Item ProtocolIE-ID
525 id-E2nodeTNLassociationRemoval ProtocolIE-ID
526 id-E2nodeTNLassociationRemoval-Item ProtocolIE-ID
527 id-RICsubscriptionToBeRemoved ProtocolIE-ID
528 id-RICsubscription-withCause-Item ProtocolIE-ID
530 id-RICsubscriptionStartTime ProtocolIE-ID
531 id-RICsubscriptionEndTime ProtocolIE-ID
532 id-RICeventTriggerDefinitionToBeModified ProtocolIE-ID
533 id-RICactionsToBeRemovedForModification-List ProtocolIE-ID
534 id-RICaction-ToBeRemovedForModification-Item ProtocolIE-ID
535 id-RICactionsToBeModifiedForModification-List ProtocolIE-ID
536 id-RICaction-ToBeModifiedForModification-Item ProtocolIE-ID
537 id-RICactionsToBeAddedForModification-List ProtocolIE-ID
538 id-RICaction-ToBeAddedForModification-Item ProtocolIE-ID
539 id-RICactionsRemovedForModification-List ProtocolIE-ID
540 id-RICaction-RemovedForModification-Item ProtocolIE-ID
541 id-RICactionsFailedToBeRemovedForModification-List ProtocolIE-ID
542 id-RICaction-FailedToBeRemovedForModification-Item ProtocolIE-ID
543 id-RICactionsModifiedForModification-List ProtocolIE-ID
544 id-RICaction-ModifiedForModification-Item ProtocolIE-ID
545 id-RICactionsFailedToBeModifiedForModification-List ProtocolIE-ID
546 id-RICaction-FailedToBeModifiedForModification-Item ProtocolIE-ID
547 id-RICactionsAddedForModification-List ProtocolIE-ID
548 id-RICaction-AddedForModification-Item ProtocolIE-ID
549 id-RICactionsFailedToBeAddedForModification-List ProtocolIE-ID
550 id-RICaction-FailedToBeAddedForModification-Item ProtocolIE-ID
551 id-RICactionsRequiredToBeModified-List ProtocolIE-ID
552 id-RICaction-RequiredToBeModified-Item ProtocolIE-ID
553 id-RICactionsRequiredToBeRemoved-List ProtocolIE-ID
554 id-RICaction-RequiredToBeRemoved-Item ProtocolIE-ID
555 id-RICactionsConfirmedForModification-List ProtocolIE-ID
556 id-RICaction-ConfirmedForModification-Item ProtocolIE-ID
557 id-RICactionsRefusedToBeModified-List ProtocolIE-ID
558 id-RICaction-RefusedToBeModified-Item ProtocolIE-ID
559 id-RICactionsConfirmedForRemoval-List ProtocolIE-ID
560 id-RICaction-ConfirmedForRemoval-Item ProtocolIE-ID
561 id-RICactionsRefusedToBeRemoved-List ProtocolIE-ID
562 id-RICaction-RefusedToBeRemoved-Item ProtocolIE-ID
563 id-RICqueryHeader ProtocolIE-ID
564 id-RICqueryDefinition ProtocolIE-ID
565 id-RICqueryOutcome ProtocolIE-ID
573 Cause N e2ap.ies id-Cause
574 CriticalityDiagnostics N e2ap.ies id-CriticalityDiagnostics
575 GlobalE2node-ID N e2ap.ies id-GlobalE2node-ID
576 GlobalRIC-ID N e2ap.ies id-GlobalRIC-ID
577 RANfunctionID N e2ap.ies id-RANfunctionID
578 RANfunctionID-Item N e2ap.ies id-RANfunctionID-Item
579 RANfunctionIDcause-Item N e2ap.ies id-RANfunctionIEcause-Item
580 RANfunction-Item N e2ap.ies id-RANfunction-Item
581 RANfunctionsID-List N e2ap.ies id-RANfunctionsAccepted
582 RANfunctions-List N e2ap.ies id-RANfunctionsAdded
583 RANfunctionsID-List N e2ap.ies id-RANfunctionsDeleted
584 RANfunctions-List N e2ap.ies id-RANfunctionsModified
585 RANfunctionsIDcause-List N e2ap.ies id-RANfunctionsRejected
586 RICaction-Admitted-Item N e2ap.ies id-RICaction-Admitted-Item
587 RICactionID N e2ap.ies id-RICactionID
588 RICaction-NotAdmitted-Item N e2ap.ies id-RICaction-NotAdmitted-Item
589 RICaction-Admitted-List N e2ap.ies id-RICactions-Admitted
590 RICaction-ToBeSetup-Item N e2ap.ies id-RICaction-ToBeSetup-Item
591 RICcallProcessID N e2ap.ies id-RICcallProcessID
592 RICaction-NotAdmitted-List N e2ap.ies id-RICactions-NotAdmitted
593 RICcontrolAckRequest N e2ap.ies id-RICcontrolAckRequest
594 RICcontrolHeader N e2ap.ies id-RICcontrolHeader
595 RICcontrolMessage N e2ap.ies id-RICcontrolMessage
596 RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
597 #RICcontrolStatus N e2ap.ies id-RICcontrolStatus
598 RICindicationHeader N e2ap.ies id-RICindicationHeader
599 RICindicationMessage N e2ap.ies id-RICindicationMessage
600 RICindicationSN N e2ap.ies id-RICindicationSN
601 RICindicationType N e2ap.ies id-RICindicationType
602 RICrequestID N e2ap.ies id-RICrequestID
603 RICsubscriptionDetails N e2ap.ies id-RICsubscriptionDetails
604 #RICcontrolHeader N e2ap.ies id-RICcontrolHeader
605 #RICcontrolMessage N e2ap.ies id-RICcontrolMessage
607 TimeToWait N e2ap.ies id-TimeToWait
608 #RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
610 E2nodeComponentConfigUpdate-List N e2ap.ies id-E2nodeComponentConfigUpdate
611 E2nodeComponentConfigUpdate-Item N e2ap.ies id-E2nodeComponentConfigUpdate-Item
612 E2nodeComponentConfigUpdateAck-List N e2ap.ies id-E2nodeComponentConfigUpdateAck
613 E2nodeComponentConfigUpdateAck-Item N e2ap.ies id-E2nodeComponentConfigUpdateAck-Item
614 E2connectionUpdate-List N e2ap.ies id-E2connectionSetup
615 E2connectionSetupFailed-List N e2ap.ies id-E2connectionSetupFailed
616 E2connectionSetupFailed-Item N e2ap.ies id-E2connectionSetupFailed-Item
617 #E2connectionSetupFailed-Item N e2ap.ies id-E2connectionFailed-Item
618 E2connectionUpdate-Item N e2ap.ies id-E2connectionUpdate-Item
619 E2connectionUpdate-List N e2ap.ies id-E2connectionUpdateAdd
620 E2connectionUpdate-List N e2ap.ies id-E2connectionUpdateModify
621 E2connectionUpdateRemove-List N e2ap.ies id-E2connectionUpdateRemove
622 E2connectionUpdateRemove-Item N e2ap.ies id-E2connectionUpdateRemove-Item
623 TNLinformation N e2ap.ies id-TNLinformation
624 TransactionID N e2ap.ies id-TransactionID
626 E2nodeComponentConfigAddition-List N e2ap.ies id-E2nodeComponentConfigAddition
627 E2nodeComponentConfigAddition-Item N e2ap.ies id-E2nodeComponentConfigAddition-Item
628 E2nodeComponentConfigAdditionAck-List N e2ap.ies id-E2nodeComponentConfigAdditionAck
629 E2nodeComponentConfigAdditionAck-Item N e2ap.ies id-E2nodeComponentConfigAdditionAck-Item
630 E2nodeComponentConfigRemoval-List N e2ap.ies id-E2nodeComponentConfigRemoval
631 E2nodeComponentConfigRemoval-Item N e2ap.ies id-E2nodeComponentConfigRemoval-Item
632 E2nodeComponentConfigRemovalAck-List N e2ap.ies id-E2nodeComponentConfigRemovalAck
633 E2nodeComponentConfigRemovalAck-Item N e2ap.ies id-E2nodeComponentConfigRemovalAck-Item
634 E2nodeTNLassociationRemoval-List N e2ap.ies id-E2nodeTNLassociationRemoval
635 E2nodeTNLassociationRemoval-Item N e2ap.ies id-E2nodeTNLassociationRemoval-Item
636 RICsubscription-List-withCause N e2ap.ies id-RICsubscriptionToBeRemoved
637 RICsubscription-withCause-Item N e2ap.ies id-RICsubscription-withCause-Item
640 RICsubscriptionTime N e2ap.ies id-RICsubscriptionStartTime
641 RICsubscriptionTime N e2ap.ies id-RICsubscriptionEndTime
642 RICeventTriggerDefinition N e2ap.ies id-RICeventTriggerDefinitionToBeModified
643 RICactions-ToBeRemovedForModification-List N e2ap.ies id-RICactionsToBeRemovedForModification-List
644 RICaction-ToBeRemovedForModification-Item N e2ap.ies id-RICaction-ToBeRemovedForModification-Item
645 RICactions-ToBeModifiedForModification-List N e2ap.ies id-RICactionsToBeModifiedForModification-List
646 RICaction-ToBeModifiedForModification-Item N e2ap.ies id-RICaction-ToBeModifiedForModification-Item
647 RICactions-ToBeAddedForModification-List N e2ap.ies id-RICactionsToBeAddedForModification-List
648 RICaction-ToBeAddedForModification-Item N e2ap.ies id-RICaction-ToBeAddedForModification-Item
649 RICactions-RemovedForModification-List N e2ap.ies id-RICactionsRemovedForModification-List
650 RICaction-RemovedForModification-Item N e2ap.ies id-RICaction-RemovedForModification-Item
651 RICactions-FailedToBeRemovedForModification-List N e2ap.ies id-RICactionsFailedToBeRemovedForModification-List
652 RICaction-FailedToBeRemovedForModification-Item N e2ap.ies id-RICaction-FailedToBeRemovedForModification-Item
653 RICactions-ModifiedForModification-List N e2ap.ies id-RICactionsModifiedForModification-List
654 RICaction-ModifiedForModification-Item N e2ap.ies id-RICaction-ModifiedForModification-Item
655 RICactions-FailedToBeModifiedForModification-List N e2ap.ies id-RICactionsFailedToBeModifiedForModification-List
656 RICaction-FailedToBeModifiedForModification-Item N e2ap.ies id-RICaction-FailedToBeModifiedForModification-Item
657 RICactions-AddedForModification-List N e2ap.ies id-RICactionsAddedForModification-List
658 RICaction-AddedForModification-Item N e2ap.ies id-RICaction-AddedForModification-Item
659 RICactions-FailedToBeAddedForModification-List N e2ap.ies id-RICactionsFailedToBeAddedForModification-List
660 RICaction-FailedToBeAddedForModification-Item N e2ap.ies id-RICaction-FailedToBeAddedForModification-Item
661 RICactions-RequiredToBeModified-List N e2ap.ies id-RICactionsRequiredToBeModified-List
662 RICaction-RequiredToBeModified-Item N e2ap.ies id-RICaction-RequiredToBeModified-Item
663 RICactions-RequiredToBeRemoved-List N e2ap.ies id-RICactionsRequiredToBeRemoved-List
664 RICaction-RequiredToBeRemoved-Item N e2ap.ies id-RICaction-RequiredToBeRemoved-Item
665 RICactions-ConfirmedForModification-List N e2ap.ies id-RICactionsConfirmedForModification-List
666 RICaction-ConfirmedForModification-Item N e2ap.ies id-RICaction-ConfirmedForModification-Item
667 RICactions-RefusedToBeModified-List N e2ap.ies id-RICactionsRefusedToBeModified-List
668 RICaction-RefusedToBeModified-Item N e2ap.ies id-RICaction-RefusedToBeModified-Item
669 RICactions-ConfirmedForRemoval-List N e2ap.ies id-RICactionsConfirmedForRemoval-List
670 RICaction-ConfirmedForRemoval-Item N e2ap.ies id-RICaction-ConfirmedForRemoval-Item
671 RICactions-RefusedToBeRemoved-List N e2ap.ies id-RICactionsRefusedToBeRemoved-List
672 RICaction-RefusedToBeRemoved-Item N e2ap.ies id-RICaction-RefusedToBeRemoved-Item
673 RICqueryHeader N e2ap.ies id-RICqueryHeader
674 RICqueryDefinition N e2ap.ies id-RICqueryDefinition
675 RICqueryOutcome N e2ap.ies id-RICqueryOutcome
677 #e2ap-PROTOCOL-EXTENSION
679 #E2AP-ELEMENTARY-PROCEDURE
681 E2connectionUpdate N e2ap.proc.imsg id-E2connectionUpdate
682 E2connectionUpdateAcknowledge N e2ap.proc.sout id-E2connectionUpdate
683 E2connectionUpdateFailure N e2ap.proc.uout id-E2connectionUpdate
685 E2nodeConfigurationUpdate N e2ap.proc.imsg id-E2nodeConfigurationUpdate
686 E2nodeConfigurationUpdateAcknowledge N e2ap.proc.sout id-E2nodeConfigurationUpdate
687 E2nodeConfigurationUpdateFailure N e2ap.proc.uout id-E2nodeConfigurationUpdate
689 E2setupFailure N e2ap.proc.uout id-E2setup
690 E2setupRequest N e2ap.proc.imsg id-E2setup
691 E2setupResponse N e2ap.proc.sout id-E2setup
693 ErrorIndication N e2ap.proc.imsg id-ErrorIndication
695 ResetRequest N e2ap.proc.imsg id-Reset
696 ResetResponse N e2ap.proc.sout id-Reset
698 RICcontrolAcknowledge N e2ap.proc.sout id-RICcontrol
699 RICcontrolFailure N e2ap.proc.uout id-RICcontrol
700 RICcontrolRequest N e2ap.proc.imsg id-RICcontrol
702 RICindication N e2ap.proc.imsg id-RICindication
704 RICserviceQuery N e2ap.proc.imsg id-RICserviceQuery
706 RICserviceUpdate N e2ap.proc.imsg id-RICserviceUpdate
707 RICserviceUpdateAcknowledge N e2ap.proc.sout id-RICserviceUpdate
708 RICserviceUpdateFailure N e2ap.proc.uout id-RICserviceUpdate
710 RICsubscriptionFailure N e2ap.proc.uout id-RICsubscription
711 RICsubscriptionRequest N e2ap.proc.imsg id-RICsubscription
712 RICsubscriptionResponse N e2ap.proc.sout id-RICsubscription
714 RICsubscriptionDeleteFailure N e2ap.proc.uout id-RICsubscriptionDelete
715 RICsubscriptionDeleteRequest N e2ap.proc.imsg id-RICsubscriptionDelete
716 RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDelete
718 RICsubscriptionDeleteRequired N e2ap.proc.sout id-RICsubscriptionDeleteRequired
720 E2RemovalFailure N e2ap.proc.uout id-E2removal
721 E2RemovalRequest N e2ap.proc.imsg id-E2removal
722 E2RemovalResponse N e2ap.proc.sout id-E2removal
724 RICsubscriptionModificationFailure N e2ap.proc.uout id-RICsubscriptionModification
725 RICsubscriptionModificationRequest N e2ap.proc.imsg id-RICsubscriptionModification
726 RICsubscriptionModificationResponse N e2ap.proc.sout id-RICsubscriptionModification
728 RICsubscriptionModificationRefuse N e2ap.proc.uout id-RICsubscriptionModificationRequired
729 RICsubscriptionModificationRequired N e2ap.proc.imsg id-RICsubscriptionModificationRequired
730 RICsubscriptionModificationConfirm N e2ap.proc.sout id-RICsubscriptionModificationRequired
732 RICQueryFailure N e2ap.proc.uout id-RICquery
733 RICQueryRequest N e2ap.proc.imsg id-RICquery
734 RICQueryResponse N e2ap.proc.sout id-RICquery
738 #.FN_BODY RANfunctionID VAL_PTR=&value
741 /* Store value in packet-private data */
742 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
743 e2ap_data->ran_function_id = value;
746 #.FN_BODY GlobalgNB-ID/gnb-id
747 int start_offset = offset;
749 /* Store value in packet-private data */
750 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
751 /* Limit length, but really can't be > 5 bytes.. */
752 e2ap_data->gnb_id_len = MIN((offset-start_offset)/8, MAX_GNB_ID_BYTES);
753 tvb_memcpy(tvb, &e2ap_data->gnb_id_bytes, start_offset/8, e2ap_data->gnb_id_len);
754 update_conversation_from_gnb_id(actx);
758 #.FN_BODY TNLinformation/tnlAddress VAL_PTR=&value_tvb
761 if (tvb_captured_length(value_tvb)==4) {
762 proto_item_append_text(tree, " (%%s", tvb_ip_to_str(actx->pinfo->pool, value_tvb, 0));
765 proto_item_append_text(tree, " (%%s", tvb_ip6_to_str(actx->pinfo->pool, value_tvb, 0));
768 #.FN_BODY TNLinformation/tnlPort
769 proto_item_append_text(tree, ":%%u)", tvb_get_ntohs(tvb, offset/8));
773 #.FN_BODY E2nodeComponentConfiguration/e2nodeComponentRequestPart VAL_PTR=&value_tvb
776 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
777 if (e2ap_data->component_configuration_dissector) {
778 col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "|");
779 col_set_fence(actx->pinfo->cinfo, COL_PROTOCOL);
780 col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
781 call_dissector(e2ap_data->component_configuration_dissector, value_tvb, actx->pinfo, tree);
782 col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
785 #.FN_BODY E2nodeComponentConfiguration/e2nodeComponentResponsePart VAL_PTR=&value_tvb
788 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
789 if (e2ap_data->component_configuration_dissector) {
790 col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
791 call_dissector(e2ap_data->component_configuration_dissector, value_tvb, actx->pinfo, tree);
792 col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
796 #.FN_BODY E2nodeComponentID/e2nodeComponentInterfaceTypeNG
798 /* Store value in packet-private data */
799 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
800 e2ap_data->component_configuration_dissector = find_dissector("ngap");
802 #.FN_BODY E2nodeComponentID/e2nodeComponentInterfaceTypeXn
804 /* Store value in packet-private data */
805 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
806 e2ap_data->component_configuration_dissector = find_dissector("xnap");
808 #.FN_BODY E2nodeComponentID/e2nodeComponentInterfaceTypeE1
810 /* Store value in packet-private data */
811 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
812 e2ap_data->component_configuration_dissector = find_dissector("e1ap");
814 #.FN_BODY E2nodeComponentID/e2nodeComponentInterfaceTypeF1
816 /* Store value in packet-private data */
817 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
818 e2ap_data->component_configuration_dissector = find_dissector("f1ap");
820 # There is not yet a dissector for W1AP..
822 #.FN_BODY E2nodeComponentID/e2nodeComponentInterfaceTypeS1
824 /* Store value in packet-private data */
825 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
826 e2ap_data->component_configuration_dissector = find_dissector("s1ap");
828 #.FN_BODY E2nodeComponentID/e2nodeComponentInterfaceTypeX2
830 /* Store value in packet-private data */
831 struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
832 e2ap_data->component_configuration_dissector = find_dissector("x2ap");
836 # Set labels and update stats for the various message types
838 #.FN_HDR E2connectionUpdate
839 set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE);
840 set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE);
843 #.FN_HDR E2connectionUpdateAcknowledge
844 set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE_ACK);
845 set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE_ACK);
847 #.FN_HDR E2connectionUpdateFailure
848 set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE_FAIL);
849 set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE_FAIL);
852 #.FN_HDR E2nodeConfigurationUpdate
853 set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE);
854 set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE);
857 #.FN_HDR E2nodeConfigurationUpdateAcknowledge
858 set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE_ACK);
859 set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE_ACK);
861 #.FN_HDR E2nodeConfigurationUpdateFailure
862 set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
863 set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
866 #.FN_HDR E2setupFailure
867 set_message_label(actx, MTYPE_E2_SETUP_FAIL);
868 set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_FAIL);
870 #.FN_HDR E2setupRequest
871 set_message_label(actx, MTYPE_E2_SETUP_REQUEST);
872 set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_REQUEST);
874 #.FN_HDR E2setupResponse
875 set_message_label(actx, MTYPE_E2_SETUP_RESPONSE);
876 set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_RESPONSE);
878 #.FN_HDR ErrorIndication
879 set_message_label(actx, MTYPE_ERROR_INDICATION);
880 set_stats_message_type(actx->pinfo, MTYPE_ERROR_INDICATION);
882 #.FN_HDR ResetRequest
883 set_message_label(actx, MTYPE_RESET_REQUEST);
884 set_stats_message_type(actx->pinfo, MTYPE_RESET_REQUEST);
886 #.FN_HDR ResetResponse
887 set_message_label(actx, MTYPE_RESET_RESPONSE);
888 set_stats_message_type(actx->pinfo, MTYPE_RESET_RESPONSE);
890 #.FN_HDR RICcontrolAcknowledge
891 set_message_label(actx, MTYPE_RIC_CONTROL_ACK);
892 set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_ACK);
894 #.FN_HDR RICcontrolFailure
895 set_message_label(actx, MTYPE_RIC_CONTROL_FAIL);
896 set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_FAIL);
898 #.FN_HDR RICcontrolRequest
899 set_message_label(actx, MTYPE_RIC_CONTROL_REQUEST);
900 set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_REQUEST);
902 #.FN_HDR RICindication
903 set_message_label(actx, MTYPE_RIC_IND);
904 set_stats_message_type(actx->pinfo, MTYPE_RIC_IND);
906 #.FN_HDR RICQueryRequest
907 set_message_label(actx, MTYPE_RIC_QUERY_REQUEST);
908 set_stats_message_type(actx->pinfo, MTYPE_RIC_QUERY_REQUEST);
910 #.FN_HDR RICQueryResponse
911 set_message_label(actx, MTYPE_RIC_QUERY_RESPONSE);
912 set_stats_message_type(actx->pinfo, MTYPE_RIC_QUERY_RESPONSE);
914 #.FN_HDR RICQueryFailure
915 set_message_label(actx, MTYPE_RIC_QUERY_FAILURE);
916 set_stats_message_type(actx->pinfo, MTYPE_RIC_QUERY_FAILURE);
918 #.FN_HDR RICserviceQuery
919 set_message_label(actx, MTYPE_RIC_SERVICE_QUERY);
920 set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_QUERY);
922 #.FN_HDR RICserviceUpdate
923 set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE);
924 set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE);
926 #.FN_HDR RICserviceUpdateAcknowledge
927 set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE_ACK);
928 set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE_ACK);
930 #.FN_HDR RICserviceUpdateFailure
931 set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE_FAIL);
932 set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE_FAIL);
934 #.FN_HDR RICsubscriptionFailure
935 set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_FAIL);
936 set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_FAIL);
938 #.FN_HDR RICsubscriptionRequest
939 set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_REQUEST);
940 set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_REQUEST);
942 #.FN_HDR RICsubscriptionResponse
943 set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_RESPONSE);
944 set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_RESPONSE);
946 #.FN_HDR RICsubscriptionDeleteFailure
947 set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL);
948 set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL);
950 #.FN_HDR RICsubscriptionDeleteRequest
951 set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST);
952 set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST);
954 #.FN_HDR RICsubscriptionDeleteResponse
955 set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE);
956 set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE);
958 #.FN_HDR RICsubscriptionDeleteRequired
959 set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED);
960 set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED);
964 # Editor modelines - https://www.wireshark.org/tools/modelines.html
969 # indent-tabs-mode: nil
972 # vi: set shiftwidth=2 tabstop=8 expandtab:
973 # :indentSize=2:tabSize=8:noTabs=true: