NGAP: Use specific MCC/MNC fields
Use the specific MCC/MNC fields in NGAP for the ECGI, NRCGI, LAI, TAI, and 5GSTAI, using E212_NONE elsewhre. (Note that NGAP refers to the 5GSTAI as just TAI, and the original TAI as EPS-TAI.)
This commit is contained in:
parent
26c3fd23a5
commit
b66bcdfedf
|
@ -426,6 +426,11 @@ RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
|
||||||
hf_ngap_WarningMessageContents_nb_pages, hf_ngap_WarningMessageContents_decoded_page);
|
hf_ngap_WarningMessageContents_nb_pages, hf_ngap_WarningMessageContents_decoded_page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#.FN_BODY EPS-TAI
|
||||||
|
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
||||||
|
ngap_data->number_type = E212_TAI;
|
||||||
|
%(DEFAULT_BODY)s
|
||||||
|
|
||||||
#.TYPE_ATTR
|
#.TYPE_ATTR
|
||||||
EPS-TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
EPS-TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
||||||
#.FN_BODY EPS-TAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
#.FN_BODY EPS-TAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||||
|
@ -437,7 +442,7 @@ EPS-TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
||||||
|
|
||||||
#.FN_BODY TAI
|
#.FN_BODY TAI
|
||||||
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
||||||
|
ngap_data->number_type = E212_5GSTAI;
|
||||||
ngap_data->tai = wmem_new0(wmem_packet_scope(), struct ngap_tai);
|
ngap_data->tai = wmem_new0(wmem_packet_scope(), struct ngap_tai);
|
||||||
%(DEFAULT_BODY)s
|
%(DEFAULT_BODY)s
|
||||||
if (!PINFO_FD_VISITED(actx->pinfo) && ngap_data->ngap_conv &&
|
if (!PINFO_FD_VISITED(actx->pinfo) && ngap_data->ngap_conv &&
|
||||||
|
@ -479,10 +484,12 @@ TAC TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX
|
||||||
tvbuff_t *parameter_tvb = NULL;
|
tvbuff_t *parameter_tvb = NULL;
|
||||||
proto_tree *subtree;
|
proto_tree *subtree;
|
||||||
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
||||||
|
e212_number_type_t number_type = ngap_data->number_type;
|
||||||
|
ngap_data->number_type = E212_NONE;
|
||||||
%(DEFAULT_BODY)s
|
%(DEFAULT_BODY)s
|
||||||
if (parameter_tvb) {
|
if (parameter_tvb) {
|
||||||
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_PLMNIdentity);
|
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_PLMNIdentity);
|
||||||
dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
|
dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, FALSE);
|
||||||
if (ngap_data->supported_ta) {
|
if (ngap_data->supported_ta) {
|
||||||
guint32 plmn = tvb_get_ntoh24(parameter_tvb, 0);
|
guint32 plmn = tvb_get_ntoh24(parameter_tvb, 0);
|
||||||
wmem_array_append_one(ngap_data->supported_ta->plmn, plmn);
|
wmem_array_append_one(ngap_data->supported_ta->plmn, plmn);
|
||||||
|
@ -565,6 +572,11 @@ TAC TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX
|
||||||
proto_tree_add_item(subtree, hf_ngap_NGRANTraceID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN);
|
proto_tree_add_item(subtree, hf_ngap_NGRANTraceID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN);
|
||||||
proto_tree_add_item(subtree, hf_ngap_NGRANTraceID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN);
|
proto_tree_add_item(subtree, hf_ngap_NGRANTraceID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN);
|
||||||
|
|
||||||
|
#.FN_BODY NR-CGI
|
||||||
|
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
||||||
|
ngap_data->number_type = E212_NRCGI;
|
||||||
|
%(DEFAULT_BODY)s
|
||||||
|
|
||||||
#.FIELD_ATTR
|
#.FIELD_ATTR
|
||||||
NR-CGI/nRCellIdentity ABBREV=NRCellIdentity TYPE=FT_UINT40 DISPLAY=BASE_HEX
|
NR-CGI/nRCellIdentity ABBREV=NRCellIdentity TYPE=FT_UINT40 DISPLAY=BASE_HEX
|
||||||
|
|
||||||
|
@ -576,6 +588,11 @@ NR-CGI/nRCellIdentity ABBREV=NRCellIdentity TYPE=FT_UINT40 DISPLAY=BASE_HEX
|
||||||
actx->created_item = proto_tree_add_uint64(tree, hf_index, cell_id_tvb, 0, 5, cell_id);
|
actx->created_item = proto_tree_add_uint64(tree, hf_index, cell_id_tvb, 0, 5, cell_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#.FN_BODY EUTRA-CGI
|
||||||
|
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
||||||
|
ngap_data->number_type = E212_ECGI;
|
||||||
|
%(DEFAULT_BODY)s
|
||||||
|
|
||||||
#.FIELD_ATTR
|
#.FIELD_ATTR
|
||||||
EUTRA-CGI/eUTRACellIdentity ABBREV=EUTRACellIdentity TYPE=FT_UINT32 DISPLAY=BASE_HEX
|
EUTRA-CGI/eUTRACellIdentity ABBREV=EUTRACellIdentity TYPE=FT_UINT32 DISPLAY=BASE_HEX
|
||||||
|
|
||||||
|
@ -1017,6 +1034,11 @@ ExtendedPacketDelayBudget DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_ExtendedPacke
|
||||||
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
|
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#.FN_BODY LAI
|
||||||
|
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
|
||||||
|
ngap_data->number_type = E212_LAI;
|
||||||
|
%(DEFAULT_BODY)s
|
||||||
|
|
||||||
#.TYPE_ATTR
|
#.TYPE_ATTR
|
||||||
LAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
LAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
||||||
#.FN_BODY LAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
#.FN_BODY LAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||||
|
|
|
@ -227,6 +227,7 @@ struct ngap_private_data {
|
||||||
struct ngap_supported_ta *supported_ta;
|
struct ngap_supported_ta *supported_ta;
|
||||||
struct ngap_tai *tai;
|
struct ngap_tai *tai;
|
||||||
guint32 ran_ue_ngap_id;
|
guint32 ran_ue_ngap_id;
|
||||||
|
e212_number_type_t number_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue