Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / asn1 / e2ap / e2ap.cnf
blobe211f7fe6e55c40641e323813da6f539e7a303e1
1 # e2ap.cnf
2 # e2ap conformation file
4 #.OPT
5 PER
6 ALIGNED
7 #.END
9 #.USE_VALS_EXT
10 ProcedureCode
11 ProtocolIE-ID
12 NI-ProtocolIE-ID
14 #.EXPORTS ONLY_VALS WS_DLL
16 #.EXPORTS
18 #.PDU
19 E2AP-PDU
21 E2SM-KPM-EventTriggerDefinition
22 E2SM-KPM-ActionDefinition
23 E2SM-KPM-IndicationHeader
24 E2SM-KPM-IndicationMessage
25 E2SM-KPM-RANfunction-Description
27 E2SM-RC-EventTrigger
28 E2SM-RC-ActionDefinition
29 E2SM-RC-RANFunctionDefinition
30 E2SM-RC-IndicationMessage
31 E2SM-RC-IndicationHeader
32 E2SM-RC-CallProcessID
33 E2SM-RC-ControlHeader
34 E2SM-RC-ControlMessage
35 E2SM-RC-ControlOutcome
36 # New for v3
37 # E2SM-RC-QueryOutcome
38 # E2SM-RC-QueryDefinition
39 # E2SM-RC-QueryHeader
42 E2SM-NI-EventTriggerDefinition
43 E2SM-NI-ActionDefinition
44 E2SM-NI-RANfunction-Description
45 E2SM-NI-IndicationMessage
46 E2SM-NI-IndicationHeader
47 E2SM-NI-CallProcessID
48 E2SM-NI-ControlHeader
49 E2SM-NI-ControlMessage
50 E2SM-NI-ControlOutcome
53 #.MAKE_ENUM
54 ProcedureCode
55 ProtocolIE-ID
58 #.NO_EMIT
60 #.OMIT_ASSIGNMENT
61 # Get rid of unused code warnings
62 ProtocolIE-FieldPair
63 ProtocolIE-ContainerList
64 ProtocolIE-ContainerPair
65 ProtocolIE-ContainerPairList
66 Presence
67 FreqBandNrItem
68 IndexToRFSP
69 EN-GNB-ID
70 SubscriberProfileIDforRFP
71 QoSID
72 GroupID
73 CoreCPID
75 #.END
78 #.TYPE_ATTR
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)
82 #.TYPE_RENAME
84 InitiatingMessage/value InitiatingMessage_value
85 SuccessfulOutcome/value SuccessfulOutcome_value
86 UnsuccessfulOutcome/value UnsuccessfulOutcome_value
88 #.FIELD_RENAME
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
99 #.FIELD_ATTR
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);
103 %(DEFAULT_BODY)s
105 #.FN_FTR ProtocolIE-ID
106   if (tree) {
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)"));
109   }
110 #.END
113 # TODO: probably not worth it
114 # #.FN_BODY E2AP-PDU VAL_PTR=&value
115 #   uint32_t value;
116 # %(DEFAULT_BODY)s
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
122 # Currently not used
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);
129 %(DEFAULT_BODY)s
130   //col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", val_to_str(e2ap_data->procedure_code, e2ap_ProcedureCode_vals, "Unknown"));
131 #.END
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 }
162 #   };
163 #   asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
164 # #.END
166 #ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, e2ap-PROTOCOL-IES-PAIR : IEsSetParam} ::=
167 # SEQUENCE (SIZE (lowerBound..upperBound)) OF
168 # ProtocolIE-ContainerPair {{IEsSetParam}}
170 # Currently not used
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 },
178 #    { NULL, 0 }
179 #  };
180 #  asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
181 # END
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);
188 # %(DEFAULT_BODY)s
189 #  asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
190 # END
192 # PduSessionResource-IE-ContainerPairList              { e2ap-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofPduSessionResources,   {IEsSetParam} }
193 # Currently not used
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);
198 #%(DEFAULT_BODY)s
199 #  asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerPairList");
200 # END
202 # Currently not used
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);
208 #%(DEFAULT_BODY)s
209 #  asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
210 # END
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);
218 # %(DEFAULT_BODY)s
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);
224 #  } else {
225 # %(DEFAULT_BODY)s
226 #  }
231 # #.FN_BODY E2AP-Message VAL_PTR = &parameter_tvb
232 #  tvbuff_t *parameter_tvb;
233 #  proto_tree *subtree;
234 #%(DEFAULT_BODY)s
235 #  if (!parameter_tvb)
236 #    return offset;
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;
244   %(DEFAULT_BODY)s
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 = &parameter_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... */
260   %(DEFAULT_BODY)s
262   /* Looking for shortName string near beginning of tvb */
263   bool found = false;
264   /* For each RAN function name.. */
265   int n, found_index;
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) {
281               best_index = d;
282             }
283           }
284           /* Use it */
285           g_ran_functions_available_dissectors[n].ran_function_dissectors[best_index]->functions.ran_function_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
286           found = true;
287           found_index = n;
288           break;
289         }
290       }
291     }
292   }
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"*/);
299     }
300   }
302   if (!found) {
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");
306   }
308 #.FN_BODY RANfunction-Name/ranFunction-ShortName VAL_PTR=&value_tvb
309   tvbuff_t *value_tvb;
310 %(DEFAULT_BODY)s
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));
315   }
317 #.FN_BODY RANfunctionOID  VAL_PTR = &parameter_tvb
318   tvbuff_t *parameter_tvb;
319   %(DEFAULT_BODY)s
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 = &parameter_tvb
330   tvbuff_t *parameter_tvb;
331   %(DEFAULT_BODY)s
332   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
333   if (dissector) {
334     if (dissector->functions.ric_control_header_dissector) {
335       dissector->functions.ric_control_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
336     }
337   }
339 #.FN_BODY RICcontrolMessage VAL_PTR = &parameter_tvb
340   tvbuff_t *parameter_tvb;
341   %(DEFAULT_BODY)s
342   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
343   if (dissector) {
344     if (dissector->functions.ric_control_message_dissector) {
345       dissector->functions.ric_control_message_dissector(parameter_tvb, actx->pinfo, tree, NULL);
346     }
347   }
349 #.FN_BODY RICcontrolOutcome VAL_PTR = &parameter_tvb
350   tvbuff_t *parameter_tvb;
351   %(DEFAULT_BODY)s
352   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
353   if (dissector) {
354     if (dissector->functions.ric_control_outcome_dissector) {
355         dissector->functions.ric_control_outcome_dissector(parameter_tvb, actx->pinfo, tree, NULL);
356     }
357   }
359 #.FN_BODY RICqueryOutcome VAL_PTR = &parameter_tvb
360   tvbuff_t *parameter_tvb;
361   %(DEFAULT_BODY)s
362   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
363   if (dissector) {
364     if (dissector->functions.ric_query_outcome_dissector) {
365       dissector->functions.ric_query_outcome_dissector(parameter_tvb, actx->pinfo, tree, NULL);
366     }
367   }
369 #.FN_BODY RICqueryDefinition VAL_PTR = &parameter_tvb
370   tvbuff_t *parameter_tvb;
371   %(DEFAULT_BODY)s
372   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
373   if (dissector) {
374     if (dissector->functions.ric_query_definition_dissector) {
375       dissector->functions.ric_query_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
376     }
377   }
379 #.FN_BODY RICqueryHeader VAL_PTR = &parameter_tvb
380   tvbuff_t *parameter_tvb;
381   %(DEFAULT_BODY)s
382   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
383   if (dissector) {
384     if (dissector->functions.ric_query_header_dissector) {
385       dissector->functions.ric_query_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
386     }
387   }
391 #.FN_BODY RICeventTriggerDefinition VAL_PTR = &parameter_tvb
392   tvbuff_t *parameter_tvb;
393   %(DEFAULT_BODY)s
394   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
395   if (dissector) {
396     if (dissector->functions.ran_event_trigger_dissector) {
397       dissector->functions.ran_event_trigger_dissector(parameter_tvb, actx->pinfo, tree, NULL);
398     }
399   }
401 #.FN_BODY RICactionDefinition VAL_PTR = &parameter_tvb
402   tvbuff_t *parameter_tvb;
403   %(DEFAULT_BODY)s
404   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
405   if (dissector) {
406     if (dissector->functions.ran_action_definition_dissector) {
407       dissector->functions.ran_action_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
408     }
409   }
411 #.FN_BODY RICindicationHeader VAL_PTR = &parameter_tvb
412   tvbuff_t *parameter_tvb;
413   %(DEFAULT_BODY)s
414   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
415   if (dissector) {
416     if (dissector->functions.ran_indication_header_dissector) {
417       dissector->functions.ran_indication_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
418     }
419   }
421 #.FN_BODY RICindicationMessage VAL_PTR = &parameter_tvb
422   tvbuff_t *parameter_tvb;
423   %(DEFAULT_BODY)s
424   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
425   if (dissector) {
426     if (dissector->functions.ran_indication_message_dissector) {
427       dissector->functions.ran_indication_message_dissector(parameter_tvb, actx->pinfo, tree, NULL);
428     }
429   }
431 #.FN_BODY RICcallProcessID VAL_PTR = &parameter_tvb
432   tvbuff_t *parameter_tvb;
433   %(DEFAULT_BODY)s
434   ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
435   if (dissector) {
436     if (dissector->functions.ran_callprocessid_dissector) {
437       dissector->functions.ran_callprocessid_dissector(parameter_tvb, actx->pinfo, tree, NULL);
438     }
439   }
440 # ################################################################################
444 #.ASSIGN_VALUE_TO_TYPE  # e2ap does not have constants assigned to types, they are pure INTEGER
445 # ProcedureCode
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
460 # New for v3
461 id-RICsubscriptionModification               ProcedureCode
462 id-RICsubscriptionModificationRequired       ProcedureCode
463 id-RICquery                                  ProcedureCode
467 # ProtocolIE-ID
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
529 # New for v3
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
566 #.END
569 #.REGISTER
571 #E2AP-PROTOCOL-IES
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
639 # New for v3
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
739   uint32_t value;
740 %(DEFAULT_BODY)s
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;
748 %(DEFAULT_BODY)s
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
759   tvbuff_t *value_tvb;
760 %(DEFAULT_BODY)s
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));
763   }
764   else {
765     proto_item_append_text(tree, " (%%s", tvb_ip6_to_str(actx->pinfo->pool, value_tvb, 0));
766   }
768 #.FN_BODY TNLinformation/tnlPort
769   proto_item_append_text(tree, ":%%u)", tvb_get_ntohs(tvb, offset/8));
770 %(DEFAULT_BODY)s
773 #.FN_BODY E2nodeComponentConfiguration/e2nodeComponentRequestPart VAL_PTR=&value_tvb
774   tvbuff_t *value_tvb;
775 %(DEFAULT_BODY)s
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);
783   }
785 #.FN_BODY E2nodeComponentConfiguration/e2nodeComponentResponsePart VAL_PTR=&value_tvb
786   tvbuff_t *value_tvb;
787 %(DEFAULT_BODY)s
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);
793   }
796 #.FN_BODY E2nodeComponentID/e2nodeComponentInterfaceTypeNG
797 %(DEFAULT_BODY)s
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
803 %(DEFAULT_BODY)s
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
809 %(DEFAULT_BODY)s
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
815 %(DEFAULT_BODY)s
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
823 %(DEFAULT_BODY)s
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
829 %(DEFAULT_BODY)s
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
966 # Local variables:
967 # c-basic-offset: 2
968 # tab-width: 8
969 # indent-tabs-mode: nil
970 # End:
972 # vi: set shiftwidth=2 tabstop=8 expandtab:
973 # :indentSize=2:tabSize=8:noTabs=true: