aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ngap.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-06-22 14:08:13 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2018-06-22 13:02:41 +0000
commite2f161adffa4e78388d38eb15629b93f475efe01 (patch)
tree45bb749ccbeb7c24def42581d6793e4fc6b0c558 /epan/dissectors/packet-ngap.c
parentff3b7c9a935e3b910e0ab988534a92e417f37ef0 (diff)
NGAP: add dissection of DataCodingScheme and WarningMessageContents IEs
Change-Id: I68346ef9988f5fe2dfe0961debf1c359269e7d32 Reviewed-on: https://code.wireshark.org/review/28387 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-ngap.c')
-rw-r--r--epan/dissectors/packet-ngap.c195
1 files changed, 116 insertions, 79 deletions
diff --git a/epan/dissectors/packet-ngap.c b/epan/dissectors/packet-ngap.c
index 8f01741377..12505d8743 100644
--- a/epan/dissectors/packet-ngap.c
+++ b/epan/dissectors/packet-ngap.c
@@ -292,7 +292,8 @@ typedef enum _ProtocolIE_ID_enum {
/* Initialize the protocol and registered fields */
static int proto_ngap = -1;
-
+static int hf_ngap_WarningMessageContents_nb_pages = -1;
+static int hf_ngap_WarningMessageContents_decoded_page = -1;
/*--- Included file: packet-ngap-hf.c ---*/
#line 1 "./asn1/ngap/packet-ngap-hf.c"
@@ -873,10 +874,12 @@ static int hf_ngap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
static int hf_ngap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-ngap-hf.c ---*/
-#line 58 "./asn1/ngap/packet-ngap-template.c"
+#line 59 "./asn1/ngap/packet-ngap-template.c"
/* Initialize the subtree pointers */
-static int ett_ngap = -1;
+static gint ett_ngap = -1;
+static gint ett_ngap_DataCodingScheme = -1;
+static gint ett_ngap_WarningMessageContents = -1;
/*--- Included file: packet-ngap-ett.c ---*/
#line 1 "./asn1/ngap/packet-ngap-ett.c"
@@ -1214,7 +1217,7 @@ static gint ett_ngap_SuccessfulOutcome = -1;
static gint ett_ngap_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-ngap-ett.c ---*/
-#line 62 "./asn1/ngap/packet-ngap-template.c"
+#line 65 "./asn1/ngap/packet-ngap-template.c"
static expert_field ei_ngap_number_pages_le15 = EI_INIT;
@@ -1243,6 +1246,7 @@ struct ngap_private_data {
guint32 protocol_extension_id;
guint32 message_type;
guint32 handover_type_value;
+ guint8 data_coding_scheme;
};
/* Global variables */
@@ -1296,7 +1300,7 @@ const value_string ngap_warningType_vals[] = {
{ 0, NULL},
};
-void
+static void
dissect_ngap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dcs, int hf_nb_pages, int hf_decoded_page)
{
guint32 offset;
@@ -3500,8 +3504,20 @@ dissect_ngap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_ngap_DataCodingScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 270 "./asn1/ngap/ngap.cnf"
+ tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
- 8, 8, FALSE, NULL, NULL);
+ 8, 8, FALSE, &parameter_tvb, NULL);
+
+ if (parameter_tvb) {
+ struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ngap_DataCodingScheme);
+ ngap_data->data_coding_scheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
+ }
+
+
return offset;
}
@@ -6645,8 +6661,20 @@ dissect_ngap_WarningAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ngap_WarningMessageContents(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 281 "./asn1/ngap/ngap.cnf"
+ tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 9600, FALSE, NULL);
+ 1, 9600, FALSE, &parameter_tvb);
+
+ if (parameter_tvb) {
+ struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ngap_WarningMessageContents);
+ dissect_ngap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, ngap_data->data_coding_scheme,
+ hf_ngap_WarningMessageContents_nb_pages, hf_ngap_WarningMessageContents_decoded_page);
+ }
+
+
+
return offset;
}
@@ -6679,7 +6707,7 @@ static const per_sequence_t PDUSessionResourceSetupRequest_sequence[] = {
static int
dissect_ngap_PDUSessionResourceSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 863 "./asn1/ngap/ngap.cnf"
+#line 883 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupRequest");
@@ -6739,7 +6767,7 @@ static const per_sequence_t PDUSessionResourceSetupResponse_sequence[] = {
static int
dissect_ngap_PDUSessionResourceSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 866 "./asn1/ngap/ngap.cnf"
+#line 886 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupResponse");
@@ -6808,7 +6836,7 @@ static const per_sequence_t PDUSessionResourceReleaseCommand_sequence[] = {
static int
dissect_ngap_PDUSessionResourceReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 857 "./asn1/ngap/ngap.cnf"
+#line 877 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseCommand");
@@ -6826,7 +6854,7 @@ static const per_sequence_t PDUSessionResourceReleaseResponse_sequence[] = {
static int
dissect_ngap_PDUSessionResourceReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 860 "./asn1/ngap/ngap.cnf"
+#line 880 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseResponse");
@@ -6844,7 +6872,7 @@ static const per_sequence_t PDUSessionResourceModifyRequest_sequence[] = {
static int
dissect_ngap_PDUSessionResourceModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 842 "./asn1/ngap/ngap.cnf"
+#line 862 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyRequest");
@@ -6903,7 +6931,7 @@ static const per_sequence_t PDUSessionResourceModifyResponse_sequence[] = {
static int
dissect_ngap_PDUSessionResourceModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 845 "./asn1/ngap/ngap.cnf"
+#line 865 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyResponse");
@@ -6961,7 +6989,7 @@ static const per_sequence_t PDUSessionResourceNotify_sequence[] = {
static int
dissect_ngap_PDUSessionResourceNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 854 "./asn1/ngap/ngap.cnf"
+#line 874 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceNotify");
@@ -7019,7 +7047,7 @@ static const per_sequence_t PDUSessionResourceModifyIndication_sequence[] = {
static int
dissect_ngap_PDUSessionResourceModifyIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 848 "./asn1/ngap/ngap.cnf"
+#line 868 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyIndication");
@@ -7077,7 +7105,7 @@ static const per_sequence_t PDUSessionResourceModifyConfirm_sequence[] = {
static int
dissect_ngap_PDUSessionResourceModifyConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 851 "./asn1/ngap/ngap.cnf"
+#line 871 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyConfirm");
@@ -7135,7 +7163,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = {
static int
dissect_ngap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 791 "./asn1/ngap/ngap.cnf"
+#line 811 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest");
@@ -7195,7 +7223,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = {
static int
dissect_ngap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 794 "./asn1/ngap/ngap.cnf"
+#line 814 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse");
@@ -7264,7 +7292,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = {
static int
dissect_ngap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 797 "./asn1/ngap/ngap.cnf"
+#line 817 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure");
@@ -7282,7 +7310,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = {
static int
dissect_ngap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 920 "./asn1/ngap/ngap.cnf"
+#line 940 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest");
@@ -7300,7 +7328,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = {
static int
dissect_ngap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 914 "./asn1/ngap/ngap.cnf"
+#line 934 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand");
@@ -7318,7 +7346,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = {
static int
dissect_ngap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 917 "./asn1/ngap/ngap.cnf"
+#line 937 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete");
@@ -7336,7 +7364,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = {
static int
dissect_ngap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 905 "./asn1/ngap/ngap.cnf"
+#line 925 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest");
@@ -7354,7 +7382,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = {
static int
dissect_ngap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 908 "./asn1/ngap/ngap.cnf"
+#line 928 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse");
@@ -7372,7 +7400,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = {
static int
dissect_ngap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 911 "./asn1/ngap/ngap.cnf"
+#line 931 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure");
@@ -7512,7 +7540,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = {
static int
dissect_ngap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 779 "./asn1/ngap/ngap.cnf"
+#line 799 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure");
@@ -7652,7 +7680,7 @@ static const per_sequence_t HandoverFailure_sequence[] = {
static int
dissect_ngap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 788 "./asn1/ngap/ngap.cnf"
+#line 808 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure");
@@ -7670,7 +7698,7 @@ static const per_sequence_t HandoverNotify_sequence[] = {
static int
dissect_ngap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 770 "./asn1/ngap/ngap.cnf"
+#line 790 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify");
@@ -7688,7 +7716,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = {
static int
dissect_ngap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 833 "./asn1/ngap/ngap.cnf"
+#line 853 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest");
@@ -7746,7 +7774,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = {
static int
dissect_ngap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 836 "./asn1/ngap/ngap.cnf"
+#line 856 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge");
@@ -7804,7 +7832,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = {
static int
dissect_ngap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 839 "./asn1/ngap/ngap.cnf"
+#line 859 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure");
@@ -7822,7 +7850,7 @@ static const per_sequence_t HandoverCancel_sequence[] = {
static int
dissect_ngap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 764 "./asn1/ngap/ngap.cnf"
+#line 784 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel");
@@ -7840,7 +7868,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = {
static int
dissect_ngap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 767 "./asn1/ngap/ngap.cnf"
+#line 787 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge");
@@ -7858,7 +7886,7 @@ static const per_sequence_t UplinkRANStatusTransfer_sequence[] = {
static int
dissect_ngap_UplinkRANStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 941 "./asn1/ngap/ngap.cnf"
+#line 961 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkRANStatusTransfer");
@@ -7876,7 +7904,7 @@ static const per_sequence_t DownlinkRANStatusTransfer_sequence[] = {
static int
dissect_ngap_DownlinkRANStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 755 "./asn1/ngap/ngap.cnf"
+#line 775 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkRANStatusTransfer");
@@ -7894,7 +7922,7 @@ static const per_sequence_t Paging_sequence[] = {
static int
dissect_ngap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 830 "./asn1/ngap/ngap.cnf"
+#line 850 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging");
@@ -7990,7 +8018,7 @@ static const per_sequence_t NASNonDeliveryIndication_sequence[] = {
static int
dissect_ngap_NASNonDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 812 "./asn1/ngap/ngap.cnf"
+#line 832 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication");
@@ -8008,7 +8036,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = {
static int
dissect_ngap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 893 "./asn1/ngap/ngap.cnf"
+#line 913 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest");
@@ -8026,7 +8054,7 @@ static const per_sequence_t NGSetupRequest_sequence[] = {
static int
dissect_ngap_NGSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 821 "./asn1/ngap/ngap.cnf"
+#line 841 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupRequest");
@@ -8044,7 +8072,7 @@ static const per_sequence_t NGSetupResponse_sequence[] = {
static int
dissect_ngap_NGSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 824 "./asn1/ngap/ngap.cnf"
+#line 844 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupResponse");
@@ -8062,7 +8090,7 @@ static const per_sequence_t NGSetupFailure_sequence[] = {
static int
dissect_ngap_NGSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 827 "./asn1/ngap/ngap.cnf"
+#line 847 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupFailure");
@@ -8080,7 +8108,7 @@ static const per_sequence_t RANConfigurationUpdate_sequence[] = {
static int
dissect_ngap_RANConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 884 "./asn1/ngap/ngap.cnf"
+#line 904 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdate");
@@ -8098,7 +8126,7 @@ static const per_sequence_t RANConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_ngap_RANConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 887 "./asn1/ngap/ngap.cnf"
+#line 907 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdateAcknowledge");
@@ -8116,7 +8144,7 @@ static const per_sequence_t RANConfigurationUpdateFailure_sequence[] = {
static int
dissect_ngap_RANConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 890 "./asn1/ngap/ngap.cnf"
+#line 910 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdateFailure");
@@ -8134,7 +8162,7 @@ static const per_sequence_t AMFConfigurationUpdate_sequence[] = {
static int
dissect_ngap_AMFConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 731 "./asn1/ngap/ngap.cnf"
+#line 751 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdate");
@@ -8243,7 +8271,7 @@ static const per_sequence_t AMFConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_ngap_AMFConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 734 "./asn1/ngap/ngap.cnf"
+#line 754 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdateAcknowledge");
@@ -8290,7 +8318,7 @@ static const per_sequence_t AMFConfigurationUpdateFailure_sequence[] = {
static int
dissect_ngap_AMFConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 737 "./asn1/ngap/ngap.cnf"
+#line 757 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdateFailure");
@@ -8308,7 +8336,7 @@ static const per_sequence_t NGReset_sequence[] = {
static int
dissect_ngap_NGReset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 815 "./asn1/ngap/ngap.cnf"
+#line 835 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGReset");
@@ -8377,7 +8405,7 @@ static const per_sequence_t NGResetAcknowledge_sequence[] = {
static int
dissect_ngap_NGResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 818 "./asn1/ngap/ngap.cnf"
+#line 838 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGResetAcknowledge");
@@ -8409,7 +8437,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_ngap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 761 "./asn1/ngap/ngap.cnf"
+#line 781 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
@@ -8427,7 +8455,7 @@ static const per_sequence_t UplinkRANConfigurationTransfer_sequence[] = {
static int
dissect_ngap_UplinkRANConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 938 "./asn1/ngap/ngap.cnf"
+#line 958 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkRANConfigurationTransfer");
@@ -8445,7 +8473,7 @@ static const per_sequence_t DownlinkRANConfigurationTransfer_sequence[] = {
static int
dissect_ngap_DownlinkRANConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 752 "./asn1/ngap/ngap.cnf"
+#line 772 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkRANConfigurationTransfer");
@@ -8463,7 +8491,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = {
static int
dissect_ngap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 947 "./asn1/ngap/ngap.cnf"
+#line 967 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest");
@@ -8481,7 +8509,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = {
static int
dissect_ngap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 950 "./asn1/ngap/ngap.cnf"
+#line 970 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse");
@@ -8500,7 +8528,7 @@ static const per_sequence_t PWSCancelRequest_sequence[] = {
static int
dissect_ngap_PWSCancelRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 872 "./asn1/ngap/ngap.cnf"
+#line 892 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelRequest");
@@ -8518,7 +8546,7 @@ static const per_sequence_t PWSCancelResponse_sequence[] = {
static int
dissect_ngap_PWSCancelResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 875 "./asn1/ngap/ngap.cnf"
+#line 895 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelResponse");
@@ -8536,7 +8564,7 @@ static const per_sequence_t PWSRestartIndication_sequence[] = {
static int
dissect_ngap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 881 "./asn1/ngap/ngap.cnf"
+#line 901 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication");
@@ -8554,7 +8582,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = {
static int
dissect_ngap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 878 "./asn1/ngap/ngap.cnf"
+#line 898 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication");
@@ -8572,7 +8600,7 @@ static const per_sequence_t DownlinkUEAssociatedNRPPaTransport_sequence[] = {
static int
dissect_ngap_DownlinkUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 758 "./asn1/ngap/ngap.cnf"
+#line 778 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedNRPPaTransport");
@@ -8590,7 +8618,7 @@ static const per_sequence_t UplinkUEAssociatedNRPPaTransport_sequence[] = {
static int
dissect_ngap_UplinkUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 944 "./asn1/ngap/ngap.cnf"
+#line 964 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedNRPPaTransport");
@@ -8608,7 +8636,7 @@ static const per_sequence_t DownlinkNonUEAssociatedNRPPaTransport_sequence[] = {
static int
dissect_ngap_DownlinkNonUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 749 "./asn1/ngap/ngap.cnf"
+#line 769 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedNRPPaTransport");
@@ -8626,7 +8654,7 @@ static const per_sequence_t UplinkNonUEAssociatedNRPPaTransport_sequence[] = {
static int
dissect_ngap_UplinkNonUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 935 "./asn1/ngap/ngap.cnf"
+#line 955 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedNRPPaTransport");
@@ -8644,7 +8672,7 @@ static const per_sequence_t TraceStart_sequence[] = {
static int
dissect_ngap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 899 "./asn1/ngap/ngap.cnf"
+#line 919 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart");
@@ -8662,7 +8690,7 @@ static const per_sequence_t TraceFailureIndication_sequence[] = {
static int
dissect_ngap_TraceFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 896 "./asn1/ngap/ngap.cnf"
+#line 916 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication");
@@ -8680,7 +8708,7 @@ static const per_sequence_t DeactivateTrace_sequence[] = {
static int
dissect_ngap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 743 "./asn1/ngap/ngap.cnf"
+#line 763 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace");
@@ -8698,7 +8726,7 @@ static const per_sequence_t CellTrafficTrace_sequence[] = {
static int
dissect_ngap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 740 "./asn1/ngap/ngap.cnf"
+#line 760 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace");
@@ -8716,7 +8744,7 @@ static const per_sequence_t LocationReportingControl_sequence[] = {
static int
dissect_ngap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 803 "./asn1/ngap/ngap.cnf"
+#line 823 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl");
@@ -8734,7 +8762,7 @@ static const per_sequence_t LocationReportingFailureIndication_sequence[] = {
static int
dissect_ngap_LocationReportingFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 806 "./asn1/ngap/ngap.cnf"
+#line 826 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication");
@@ -8752,7 +8780,7 @@ static const per_sequence_t LocationReport_sequence[] = {
static int
dissect_ngap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 809 "./asn1/ngap/ngap.cnf"
+#line 829 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport");
@@ -8770,7 +8798,7 @@ static const per_sequence_t UETNLABindingReleaseRequest_sequence[] = {
static int
dissect_ngap_UETNLABindingReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 929 "./asn1/ngap/ngap.cnf"
+#line 949 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UETNLABindingReleaseRequest");
@@ -8788,7 +8816,7 @@ static const per_sequence_t UECapabilityInfoIndication_sequence[] = {
static int
dissect_ngap_UECapabilityInfoIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 902 "./asn1/ngap/ngap.cnf"
+#line 922 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication");
@@ -8806,7 +8834,7 @@ static const per_sequence_t UERadioCapabilityCheckRequest_sequence[] = {
static int
dissect_ngap_UERadioCapabilityCheckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 923 "./asn1/ngap/ngap.cnf"
+#line 943 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityCheckRequest");
@@ -8824,7 +8852,7 @@ static const per_sequence_t UERadioCapabilityCheckResponse_sequence[] = {
static int
dissect_ngap_UERadioCapabilityCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 926 "./asn1/ngap/ngap.cnf"
+#line 946 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityCheckResponse");
@@ -8842,7 +8870,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_ngap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 869 "./asn1/ngap/ngap.cnf"
+#line 889 "./asn1/ngap/ngap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage");
@@ -10686,7 +10714,7 @@ static int dissect_PathSwitchRequestAcknowledgeTransfer_PDU(tvbuff_t *tvb _U_, p
/*--- End of included file: packet-ngap-fn.c ---*/
-#line 186 "./asn1/ngap/packet-ngap-template.c"
+#line 190 "./asn1/ngap/packet-ngap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -11014,7 +11042,7 @@ proto_reg_handoff_ngap(void)
/*--- End of included file: packet-ngap-dis-tab.c ---*/
-#line 300 "./asn1/ngap/packet-ngap-template.c"
+#line 304 "./asn1/ngap/packet-ngap-template.c"
} else {
if (SctpPort != 0) {
dissector_delete_uint("sctp.port", SctpPort, ngap_handle);
@@ -11033,7 +11061,14 @@ void proto_register_ngap(void) {
/* List of fields */
static hf_register_info hf[] = {
-
+ { &hf_ngap_WarningMessageContents_nb_pages,
+ { "Number of Pages", "ngap.WarningMessageContents.nb_pages",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ngap_WarningMessageContents_decoded_page,
+ { "Decoded Page", "ngap.WarningMessageContents.decoded_page",
+ FT_STRING, STR_UNICODE, NULL, 0,
+ NULL, HFILL }},
/*--- Included file: packet-ngap-hfarr.c ---*/
#line 1 "./asn1/ngap/packet-ngap-hfarr.c"
@@ -13339,12 +13374,14 @@ void proto_register_ngap(void) {
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-ngap-hfarr.c ---*/
-#line 320 "./asn1/ngap/packet-ngap-template.c"
+#line 331 "./asn1/ngap/packet-ngap-template.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_ngap,
+ &ett_ngap_DataCodingScheme,
+ &ett_ngap_WarningMessageContents,
/*--- Included file: packet-ngap-ettarr.c ---*/
#line 1 "./asn1/ngap/packet-ngap-ettarr.c"
@@ -13682,7 +13719,7 @@ void proto_register_ngap(void) {
&ett_ngap_UnsuccessfulOutcome,
/*--- End of included file: packet-ngap-ettarr.c ---*/
-#line 326 "./asn1/ngap/packet-ngap-template.c"
+#line 339 "./asn1/ngap/packet-ngap-template.c"
};
static ei_register_info ei[] = {