aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-json.c
diff options
context:
space:
mode:
authorJoakim Karlsson <oakimk@gmail.com>2022-05-30 09:47:40 +0200
committerAndersBroman <a.broman58@gmail.com>2022-10-04 10:48:08 +0000
commit00f4f4ee7d2346a05865e6be985d855bf45ff90d (patch)
tree073110d93d30621410de5b8082302a635c4b3a07 /epan/dissectors/packet-json.c
parent0239242fb1bf3b60140e3e0072a7bc3f52072d97 (diff)
JSON: add seperate 3GPP file
Moving specific 3GPP keys handle to its own file This will also enable custom JSON string dissector
Diffstat (limited to 'epan/dissectors/packet-json.c')
-rw-r--r--epan/dissectors/packet-json.c957
1 files changed, 4 insertions, 953 deletions
diff --git a/epan/dissectors/packet-json.c b/epan/dissectors/packet-json.c
index 9965ada90e..fb23cb292a 100644
--- a/epan/dissectors/packet-json.c
+++ b/epan/dissectors/packet-json.c
@@ -26,19 +26,16 @@
#include "packet-http.h"
#include "packet-acdr.h"
-#include "packet-gtpv2.h"
-#include "packet-gsm_a_common.h"
+#include "packet-json.h"
void proto_register_json(void);
void proto_reg_handoff_json(void);
static char* json_string_unescape(tvbparse_elem_t *tok, gboolean enclose_in_quotation_marks);
-
static dissector_handle_t json_handle;
static dissector_handle_t json_file_handle;
static int proto_json = -1;
-static int proto_json_3gpp = -1;
//Used to get AC DR proto data
static int proto_acdr = -1;
@@ -72,139 +69,6 @@ static gint ett_json_compact = -1;
static gint ett_json_array_compact = -1;
static gint ett_json_object_compact = -1;
static gint ett_json_member_compact = -1;
-static gint ett_json_base64decoded_eps_ie = -1;
-static gint ett_json_base64decoded_nas5g_ie = -1;
-static gint ett_json_3gpp_data = -1;
-
-static int hf_json_3gpp_ueepspdnconnection = -1;
-static int hf_json_3gpp_bearerlevelqos = -1;
-static int hf_json_3gpp_epsbearersetup = -1;
-static int hf_json_3gpp_forwardingbearercontexts = -1;
-static int hf_json_3gpp_forwardingfteid = -1;
-static int hf_json_3gpp_pgwnodename = -1;
-static int hf_json_3gpp_pgws8cfteid = -1;
-static int hf_json_3gpp_pgws8ufteid = -1;
-static int hf_json_3gpp_qosrules = -1;
-static int hf_json_3gpp_qosflowdescription = -1;
-static int hf_json_3gpp_suppFeat = -1;
-
-static int hf_json_3gpp_suppfeat = -1;
-static int hf_json_3gpp_suppfeat_npcf_1_tsc = -1;
-static int hf_json_3gpp_suppfeat_npcf_2_resshare = -1;
-static int hf_json_3gpp_suppfeat_npcf_3_3gpppsdataoff = -1;
-static int hf_json_3gpp_suppfeat_npcf_4_adc = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_5_umc = -1;
-static int hf_json_3gpp_suppfeat_npcf_6_netloc = -1;
-static int hf_json_3gpp_suppfeat_npcf_7_rannascause = -1;
-static int hf_json_3gpp_suppfeat_npcf_8_provafsignalflow = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_9_pcscfrestorationenhancement = -1;
-static int hf_json_3gpp_suppfeat_npcf_10_pra = -1;
-static int hf_json_3gpp_suppfeat_npcf_11_ruleversioning = -1;
-static int hf_json_3gpp_suppfeat_npcf_12_sponsoredconnectivity = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_13_ransupportinfo = -1;
-static int hf_json_3gpp_suppfeat_npcf_14_policyupdatewhenuesuspends = -1;
-static int hf_json_3gpp_suppfeat_npcf_15_accesstypecondition = -1;
-static int hf_json_3gpp_suppfeat_npcf_16_multiipv6addrprefix = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_17_sessionruleerrorhandling = -1;
-static int hf_json_3gpp_suppfeat_npcf_18_af_charging_identifier = -1;
-static int hf_json_3gpp_suppfeat_npcf_19_atsss = -1;
-static int hf_json_3gpp_suppfeat_npcf_20_pendingtransaction = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_21_urllc = -1;
-static int hf_json_3gpp_suppfeat_npcf_22_macaddressrange = -1;
-static int hf_json_3gpp_suppfeat_npcf_23_wwc = -1;
-static int hf_json_3gpp_suppfeat_npcf_24_qosmonitoring = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_25_authorizationwithrequiredqos = -1;
-static int hf_json_3gpp_suppfeat_npcf_26_enhancedbackgrounddatatransfer = -1;
-static int hf_json_3gpp_suppfeat_npcf_27_dn_authorization = -1;
-static int hf_json_3gpp_suppfeat_npcf_28_pdusessionrelcause = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_29_samepcf = -1;
-static int hf_json_3gpp_suppfeat_npcf_30_adcmultiredirection = -1;
-static int hf_json_3gpp_suppfeat_npcf_31_respbasedsessionrel = -1;
-static int hf_json_3gpp_suppfeat_npcf_32_timesensitivenetworking = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_33_emdbv = -1;
-static int hf_json_3gpp_suppfeat_npcf_34_dnnselectionmode = -1;
-static int hf_json_3gpp_suppfeat_npcf_35_epsfallbackreport = -1;
-static int hf_json_3gpp_suppfeat_npcf_36_policydecisionerrorhandling = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_37_ddneventpolicycontrol = -1;
-static int hf_json_3gpp_suppfeat_npcf_38_reallocationofcredit = -1;
-static int hf_json_3gpp_suppfeat_npcf_39_bdtpolicyrenegotiation = -1;
-static int hf_json_3gpp_suppfeat_npcf_40_extpolicydecisionerrorhandling = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_41_immediatetermination = -1;
-static int hf_json_3gpp_suppfeat_npcf_42_aggregateduelocchanges = -1;
-static int hf_json_3gpp_suppfeat_npcf_43_es3xx = -1;
-static int hf_json_3gpp_suppfeat_npcf_44_groupidlistchange = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_45_disableuenotification = -1;
-static int hf_json_3gpp_suppfeat_npcf_46_offlinechonly = -1;
-static int hf_json_3gpp_suppfeat_npcf_47_dual_connectivity_redundant_up_paths = -1;
-static int hf_json_3gpp_suppfeat_npcf_48_ddneventpolicycontrol2 = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_49_vplmn_qos_control = -1;
-static int hf_json_3gpp_suppfeat_npcf_50_2g3giwk = -1;
-static int hf_json_3gpp_suppfeat_npcf_51_timesensitivecommunication = -1;
-static int hf_json_3gpp_suppfeat_npcf_52_enedge = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_53_satbackhaulcategorychg = -1;
-static int hf_json_3gpp_suppfeat_npcf_54_chfsetsupport = -1;
-static int hf_json_3gpp_suppfeat_npcf_55_enatssss = -1;
-static int hf_json_3gpp_suppfeat_npcf_56_mpsfordts = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_57_routinginforemoval = -1;
-static int hf_json_3gpp_suppfeat_npcf_58_epra = -1;
-static int hf_json_3gpp_suppfeat_npcf_59_aminfluence = -1;
-static int hf_json_3gpp_suppfeat_npcf_60_pvssupport = -1;
-
-static int hf_json_3gpp_suppfeat_npcf_61_enena = -1;
-static int hf_json_3gpp_suppfeat_62_biumr = -1;
-static int hf_json_3gpp_suppfeat_npcf_63_easipreplacement = -1;
-static int hf_json_3gpp_suppfeat_64_exposuretoeas = -1;
-
-static int hf_json_3gpp_suppfeat_65_simultconnectivity = -1;
-static int hf_json_3gpp_suppfeat_66_sgwrest = -1;
-static int hf_json_3gpp_suppfeat_67_releasetoreactivate = -1;
-static int hf_json_3gpp_suppfeat_68_easdiscovery = -1;
-
-static int hf_json_3gpp_suppfeat_69_accnetchargid_string = -1;
-
-
-
-
-
-
-
-
-/* json data decoding function XXXX only works for the compact form.
- * Callback function to further dissect json data
- * The first implementation is a 3GPP json element which carry an Base64 encoded GTPv2 IE
- * https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/15.01.00_60/ts_129502v150100p.pdf
- */
-typedef void(*json_data_decoder_func)(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo, int offset, int len, char* key_str, gboolean use_compact);
-
-/* Array of functions to dissect IEs
-*/
-typedef struct _json_ie {
- void(*json_data_decoder_func)(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo, int offset, int len, char* key_str, gboolean use_compact);
-} json_ie_t;
-
-/* A struct to hold the hf and callback function stored in a hastable with the json key as key.
- * If the callback is null NULL the filter will be used useful to create filterable items in json.
- * XXX Todo: Implement hte UAT from the http dissector to enable the users to create filters? and/or
- * read config from file, similar to Diameter(filter only)?
- */
-typedef struct {
- int *hf_id;
- json_data_decoder_func json_data_decoder;
-} json_data_decoder_t;
/* Preferences */
static gboolean json_compact = FALSE;
@@ -555,7 +419,7 @@ json_string_unescape(tvbparse_elem_t* tok, gboolean enclose_in_quotation_marks)
return output_string;
}
-static GHashTable* header_fields_hash = NULL;
+GHashTable* json_header_fields_hash;
static proto_item*
json_key_lookup(proto_tree* tree, tvbparse_elem_t* tok, char* key_str, packet_info* pinfo, gboolean use_compact)
@@ -563,7 +427,7 @@ json_key_lookup(proto_tree* tree, tvbparse_elem_t* tok, char* key_str, packet_in
proto_item* ti;
int hf_id = -1;
- json_data_decoder_t* json_data_decoder_rec = (json_data_decoder_t*)g_hash_table_lookup(header_fields_hash, key_str);
+ json_data_decoder_t* json_data_decoder_rec = (json_data_decoder_t*)g_hash_table_lookup(json_header_fields_hash, key_str);
if (json_data_decoder_rec == NULL) {
return NULL;
}
@@ -1220,451 +1084,11 @@ dissect_json_acdr_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
return FALSE;
}
-/* Functions to sub dissect json content */
-static void
-dissect_base64decoded_eps_ie(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo, int offset, int len, char* key_str _U_, gboolean use_compact _U_)
-{
- /* base64-encoded characters, encoding the
- * EPS IE specified in 3GPP TS 29.274.
- */
- proto_item* ti;
- proto_tree* sub_tree;
- tvbuff_t* bin_tvb = base64_tvb_to_new_tvb(tvb, offset, len);
- int bin_tvb_length = tvb_reported_length(bin_tvb);
- add_new_data_source(pinfo, bin_tvb, "Base64 decoded");
- ti = proto_tree_add_item(tree, hf_json_binary_data, bin_tvb, 0, bin_tvb_length, ENC_NA);
- sub_tree = proto_item_add_subtree(ti, ett_json_base64decoded_eps_ie);
- dissect_gtpv2_ie_common(bin_tvb, pinfo, sub_tree, 0, 0/* Message type 0, Reserved */, NULL);
-}
-
-static void
-dissect_base64decoded_nas5g_ie(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo, int offset, int len, char* key_str, gboolean use_compact _U_)
-{
- /* base64-encoded characters, encoding the
- * NAS-5G IE specified in 3GPP TS 24.501.
- */
- proto_item* ti;
- proto_tree* sub_tree;
- tvbuff_t* bin_tvb = base64_tvb_to_new_tvb(tvb, offset, len);
- int bin_tvb_length = tvb_reported_length(bin_tvb);
- add_new_data_source(pinfo, bin_tvb, "Base64 decoded");
- ti = proto_tree_add_item(tree, hf_json_binary_data, bin_tvb, 0, bin_tvb_length, ENC_NA);
- sub_tree = proto_item_add_subtree(ti, ett_json_base64decoded_nas5g_ie);
-
- if (strcmp(key_str, "qosRules") == 0) {
- /* qosRules
- * This IE shall contain the QoS Rule(s) associated to the QoS flow to be sent to the UE.
- * It shall be encoded as the Qos rules IE specified in clause 9.11.4.13 of 3GPP TS 24.501 (starting from octet 4).
- */
- de_nas_5gs_sm_qos_rules(bin_tvb, sub_tree, pinfo, 0, bin_tvb_length, NULL, 0);
- }
- else if (strcmp(key_str, "qosFlowDescription") == 0) {
- /* qosFlowDescription
- * When present, this IE shall contain the description of the QoS Flow level Qos parameters to be sent to the UE.
- * It shall be encoded as the Qos flow descriptions IE specified in clause 9.11.4.12 of 3GPP TS 24.501 (starting from octet 1),
- * encoding one single Qos flow description for the QoS flow to be set up.
- */
- elem_telv(bin_tvb, sub_tree, pinfo, (guint8) 0x79, 18 /* NAS_5GS_PDU_TYPE_SM */, 11 /* DE_NAS_5GS_SM_QOS_FLOW_DES */, 0, bin_tvb_length, NULL);
- }
-
-}
-
-static void
-dissect_3gpp_supportfeatures(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo _U_, int offset, int len, char* key_str _U_, gboolean use_compact)
-{
- /* TS 29.571 ch5.2.2
- * A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500 [25].
- * The string shall contain a bitmask indicating supported features in hexadecimal representation:
- * Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and
- * shall represent the support of 4 features as described in table 5.2.2-3.
- * The most significant character representing the highest-numbered features shall appear first in the string,
- * and the character representing features 1 to 4 shall appear last in the string.
- * The list of features and their numbering (starting with 1) are defined separately for each API.
- * If the string contains a lower number of characters than there are defined features for an API,
- * all features that would be represented by characters that are not present in the string are not supported.
- */
- proto_item* ti;
- proto_tree* sub_tree;
- tvbuff_t *suppfeat_tvb;
-
- /* Skip quotation marks */
- if (!use_compact) {
- offset++;
- len = len-2;
- }
-
- ti = proto_tree_add_item(tree, hf_json_3gpp_suppfeat, tvb, offset, len, ENC_ASCII);
- sub_tree = proto_item_add_subtree(ti, ett_json_3gpp_data);
- suppfeat_tvb = tvb_new_subset_length(tvb, offset, len);
-
- int offset_reverse = len - 1;
-
- /* TODO add handling of different API
- * Idea: fetch "HTTP2 header path: /{NF}"
- */
-
- static int * const json_3gpp_suppfeat_npcf_list_1[] = {
- &hf_json_3gpp_suppfeat_npcf_1_tsc,
- &hf_json_3gpp_suppfeat_npcf_2_resshare,
- &hf_json_3gpp_suppfeat_npcf_3_3gpppsdataoff,
- &hf_json_3gpp_suppfeat_npcf_4_adc,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_1, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_2[] = {
- &hf_json_3gpp_suppfeat_npcf_5_umc,
- &hf_json_3gpp_suppfeat_npcf_6_netloc,
- &hf_json_3gpp_suppfeat_npcf_7_rannascause,
- &hf_json_3gpp_suppfeat_npcf_8_provafsignalflow,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_2, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_3[] = {
- &hf_json_3gpp_suppfeat_npcf_9_pcscfrestorationenhancement,
- &hf_json_3gpp_suppfeat_npcf_10_pra,
- &hf_json_3gpp_suppfeat_npcf_11_ruleversioning,
- &hf_json_3gpp_suppfeat_npcf_12_sponsoredconnectivity,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_3, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_4[] = {
- &hf_json_3gpp_suppfeat_npcf_13_ransupportinfo,
- &hf_json_3gpp_suppfeat_npcf_14_policyupdatewhenuesuspends,
- &hf_json_3gpp_suppfeat_npcf_15_accesstypecondition,
- &hf_json_3gpp_suppfeat_npcf_16_multiipv6addrprefix,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_4, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_5[] = {
- &hf_json_3gpp_suppfeat_npcf_17_sessionruleerrorhandling,
- &hf_json_3gpp_suppfeat_npcf_18_af_charging_identifier,
- &hf_json_3gpp_suppfeat_npcf_19_atsss,
- &hf_json_3gpp_suppfeat_npcf_20_pendingtransaction,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_5, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_6[] = {
- &hf_json_3gpp_suppfeat_npcf_21_urllc,
- &hf_json_3gpp_suppfeat_npcf_22_macaddressrange,
- &hf_json_3gpp_suppfeat_npcf_23_wwc,
- &hf_json_3gpp_suppfeat_npcf_24_qosmonitoring,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_6, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_7[] = {
- &hf_json_3gpp_suppfeat_npcf_25_authorizationwithrequiredqos,
- &hf_json_3gpp_suppfeat_npcf_26_enhancedbackgrounddatatransfer,
- &hf_json_3gpp_suppfeat_npcf_27_dn_authorization,
- &hf_json_3gpp_suppfeat_npcf_28_pdusessionrelcause,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_7, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_8[] = {
- &hf_json_3gpp_suppfeat_npcf_29_samepcf,
- &hf_json_3gpp_suppfeat_npcf_30_adcmultiredirection,
- &hf_json_3gpp_suppfeat_npcf_31_respbasedsessionrel,
- &hf_json_3gpp_suppfeat_npcf_32_timesensitivenetworking,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_8, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_9[] = {
- &hf_json_3gpp_suppfeat_npcf_33_emdbv,
- &hf_json_3gpp_suppfeat_npcf_34_dnnselectionmode,
- &hf_json_3gpp_suppfeat_npcf_35_epsfallbackreport,
- &hf_json_3gpp_suppfeat_npcf_36_policydecisionerrorhandling,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_9, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_10[] = {
- &hf_json_3gpp_suppfeat_npcf_37_ddneventpolicycontrol,
- &hf_json_3gpp_suppfeat_npcf_38_reallocationofcredit,
- &hf_json_3gpp_suppfeat_npcf_39_bdtpolicyrenegotiation,
- &hf_json_3gpp_suppfeat_npcf_40_extpolicydecisionerrorhandling,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_10, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_11[] = {
- &hf_json_3gpp_suppfeat_npcf_41_immediatetermination,
- &hf_json_3gpp_suppfeat_npcf_42_aggregateduelocchanges,
- &hf_json_3gpp_suppfeat_npcf_43_es3xx,
- &hf_json_3gpp_suppfeat_npcf_44_groupidlistchange,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_11, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_12[] = {
- &hf_json_3gpp_suppfeat_npcf_45_disableuenotification,
- &hf_json_3gpp_suppfeat_npcf_46_offlinechonly,
- &hf_json_3gpp_suppfeat_npcf_47_dual_connectivity_redundant_up_paths,
- &hf_json_3gpp_suppfeat_npcf_48_ddneventpolicycontrol2,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_12, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_13[] = {
- &hf_json_3gpp_suppfeat_npcf_49_vplmn_qos_control,
- &hf_json_3gpp_suppfeat_npcf_50_2g3giwk,
- &hf_json_3gpp_suppfeat_npcf_51_timesensitivecommunication,
- &hf_json_3gpp_suppfeat_npcf_52_enedge,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_13, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_14[] = {
- &hf_json_3gpp_suppfeat_npcf_53_satbackhaulcategorychg,
- &hf_json_3gpp_suppfeat_npcf_54_chfsetsupport,
- &hf_json_3gpp_suppfeat_npcf_55_enatssss,
- &hf_json_3gpp_suppfeat_npcf_56_mpsfordts,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_14, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_15[] = {
- &hf_json_3gpp_suppfeat_npcf_57_routinginforemoval,
- &hf_json_3gpp_suppfeat_npcf_58_epra,
- &hf_json_3gpp_suppfeat_npcf_59_aminfluence,
- &hf_json_3gpp_suppfeat_npcf_60_pvssupport,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_15, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int * const json_3gpp_suppfeat_npcf_list_16[] = {
- &hf_json_3gpp_suppfeat_npcf_61_enena,
- &hf_json_3gpp_suppfeat_62_biumr,
- &hf_json_3gpp_suppfeat_npcf_63_easipreplacement,
- &hf_json_3gpp_suppfeat_64_exposuretoeas,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_16, ENC_UTF_8|BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int* const json_3gpp_suppfeat_npcf_list_17[] = {
- &hf_json_3gpp_suppfeat_65_simultconnectivity,
- &hf_json_3gpp_suppfeat_66_sgwrest,
- &hf_json_3gpp_suppfeat_67_releasetoreactivate,
- &hf_json_3gpp_suppfeat_68_easdiscovery,
- NULL
- };
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_17, ENC_UTF_8 | BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- static int* const json_3gpp_suppfeat_npcf_list_18[] = {
- &hf_json_3gpp_suppfeat_69_accnetchargid_string,
- NULL
- };
-
- proto_tree_add_bitmask_list(sub_tree, suppfeat_tvb, offset_reverse, 1, json_3gpp_suppfeat_npcf_list_18, ENC_UTF_8 | BASE_DEC_HEX);
- offset_reverse--;
-
- if (offset_reverse == -1) {
- return;
- }
-
- if (offset_reverse > -1) {
- proto_tree_add_format_text(sub_tree, suppfeat_tvb, 0, offset_reverse+1);
- }
-}
-
static void
register_static_headers(void) {
- gchar* header_name;
-
- header_fields_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-
- /* Here hf[x].hfinfo.name is a header method which is used as key
- * for matching ids while processing HTTP2 packets */
- static hf_register_info hf[] = {
- {
- &hf_json_3gpp_ueepspdnconnection,
- {"ueEpsPdnConnection", "json.3gpp.ueepspdnconnection",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_bearerlevelqos,
- {"bearerLevelQoS", "json.3gpp.bearerlevelqos",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_epsbearersetup,
- {"epsBearerSetup", "json.3gpp.epsbearersetup",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_forwardingbearercontexts,
- {"forwardingBearerContexts", "json.3gpp.forwardingbearercontexts",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_forwardingfteid,
- {"forwardingFTeid", "json.3gpp.forwardingfteid",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_pgwnodename,
- {"pgwNodeName", "json.3gpp.pgwnodename",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_pgws8cfteid,
- {"pgwS8cFteid", "json.3gpp.pgws8cfteid",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_pgws8ufteid,
- {"pgwS8uFteid", "json.3gpp.pgws8ufteid",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_qosrules,
- {"qosRules", "json.3gpp.qosrules",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_qosflowdescription,
- {"qosFlowDescription", "json.3gpp.qosflowdescription",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- },
- {
- &hf_json_3gpp_suppFeat,
- {"suppFeat", "json.3gpp.suppFeat",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL}
- }
- };
-
- /* List of decoding functions the index matches the HF */
- static void(*json_decode_fn[])(tvbuff_t * tvb, proto_tree * tree, packet_info * pinfo, int offset, int len, char* key_str, gboolean use_compact) = {
- dissect_base64decoded_eps_ie, /* ueEpsPdnConnection */
- dissect_base64decoded_eps_ie, /* bearerLevelQoS */
- dissect_base64decoded_eps_ie, /* epsBearerSetup */
- dissect_base64decoded_eps_ie, /* forwardingBearerContexts */
- dissect_base64decoded_eps_ie, /* forwardingFTeid */
- dissect_base64decoded_eps_ie, /* pgwNodeName */
- dissect_base64decoded_eps_ie, /* pgwS8cFteid */
- dissect_base64decoded_eps_ie, /* pgwS8uFteid */
-
- dissect_base64decoded_nas5g_ie, /* qosRules */
- dissect_base64decoded_nas5g_ie, /* qosFlowDescription */
-
- dissect_3gpp_supportfeatures,
+ json_header_fields_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
- NULL, /* NONE */
- };
-
- /* Hfs with functions */
- for (guint i = 0; i < G_N_ELEMENTS(hf); ++i) {
- header_name = g_strdup(hf[i].hfinfo.name);
- json_data_decoder_t* json_data_decoder_rec = g_new(json_data_decoder_t, 1);
- json_data_decoder_rec->hf_id = &hf[i].hfinfo.id;
- json_data_decoder_rec->json_data_decoder = json_decode_fn[i];
- g_hash_table_insert(header_fields_hash, header_name, json_data_decoder_rec);
- }
-
- proto_register_field_array(proto_json_3gpp, hf, G_N_ELEMENTS(hf));
}
void
@@ -1767,374 +1191,6 @@ proto_register_json(void)
NULL, HFILL }
},
-
-
- /* 3GPP content */
- { &hf_json_3gpp_suppfeat,
- { "Supported Features", "json.3gpp.suppfeat",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_1_tsc,
- { "TSC", "json.3gpp.suppfeat.tsc",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_2_resshare,
- { "ResShare", "json.3gpp.suppfeat.resshare",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_3_3gpppsdataoff,
- { "3GPP-PS-Data-Off", "json.3gpp.suppfeat.3gpppsdataoff",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_4_adc,
- { "ADC", "json.3gpp.suppfeat.adc",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_5_umc,
- { "UMC", "json.3gpp.suppfeat.umc",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_6_netloc,
- { "NetLoc", "json.3gpp.suppfeat.netloc",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_7_rannascause,
- { "RAN-NAS-Cause", "json.3gpp.suppfeat.rannascause",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_8_provafsignalflow,
- { "ProvAFsignalFlow", "json.3gpp.suppfeat.provafsignalflow",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_9_pcscfrestorationenhancement,
- { "PCSCF-Restoration-Enhancement", "json.3gpp.suppfeat.pcscfrestorationenhancement",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_10_pra,
- { "PRA", "json.3gpp.suppfeat.pra",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_11_ruleversioning,
- { "RuleVersioning", "json.3gpp.suppfeat.ruleversioning",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_12_sponsoredconnectivity,
- { "SponsoredConnectivity", "json.3gpp.suppfeat.sponsoredconnectivity",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_13_ransupportinfo,
- { "RAN-Support-Info", "json.3gpp.suppfeat.ransupportinfo",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_14_policyupdatewhenuesuspends,
- { "PolicyUpdateWhenUESuspends", "json.3gpp.suppfeat.policyupdatewhenuesuspends",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_15_accesstypecondition,
- { "AccessTypeCondition", "json.3gpp.suppfeat.accesstypecondition",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_16_multiipv6addrprefix,
- { "MultiIpv6AddrPrefix", "json.3gpp.suppfeat.multiipv6addrprefix",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_17_sessionruleerrorhandling,
- { "SessionRuleErrorHandling", "json.3gpp.suppfeat.sessionruleerrorhandling",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_18_af_charging_identifier,
- { "AF_Charging_Identifier", "json.3gpp.suppfeat.af_charging_identifier",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_19_atsss,
- { "ATSSS", "json.3gpp.suppfeat.atsss",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_20_pendingtransaction,
- { "PendingTransaction", "json.3gpp.suppfeat.pendingtransaction",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_21_urllc,
- { "URLLC", "json.3gpp.suppfeat.urllc",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_22_macaddressrange,
- { "MacAddressRange", "json.3gpp.suppfeat.macaddressrange",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_23_wwc,
- { "WWC", "json.3gpp.suppfeat.wwc",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_24_qosmonitoring,
- { "QosMonitoring", "json.3gpp.suppfeat.qosmonitoring",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_25_authorizationwithrequiredqos,
- { "AuthorizationWithRequiredQoS", "json.3gpp.suppfeat.authorizationwithrequiredqos",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_26_enhancedbackgrounddatatransfer,
- { "EnhancedBackgroundDataTransfer", "json.3gpp.suppfeat.enhancedbackgrounddatatransfer",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_27_dn_authorization,
- { "DN-Authorization", "json.3gpp.suppfeat.dn_authorization",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_28_pdusessionrelcause,
- { "PDUSessionRelCause", "json.3gpp.suppfeat.pdusessionrelcause",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_29_samepcf,
- { "SamePcf", "json.3gpp.suppfeat.samepcf",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_30_adcmultiredirection,
- { "ADCmultiRedirection", "json.3gpp.suppfeat.adcmultiredirection",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_31_respbasedsessionrel,
- { "RespBasedSessionRel", "json.3gpp.suppfeat.respbasedsessionrel",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_32_timesensitivenetworking,
- { "TimeSensitiveNetworking", "json.3gpp.suppfeat.timesensitivenetworking",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_33_emdbv,
- { "EMDBV", "json.3gpp.suppfeat.emdbv",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_34_dnnselectionmode,
- { "DNNSelectionMode", "json.3gpp.suppfeat.adcmultirednnselectionmodedirection",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_35_epsfallbackreport,
- { "EPSFallbackReport", "json.3gpp.suppfeat.epsfallbackreport",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_36_policydecisionerrorhandling,
- { "PolicyDecisionErrorHandling", "json.3gpp.suppfeat.policydecisionerrorhandling",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_37_ddneventpolicycontrol,
- { "DDNEventPolicyControl", "json.3gpp.suppfeat.ddneventpolicycontrol",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_38_reallocationofcredit,
- { "ReallocationOfCredit", "json.3gpp.suppfeat.reallocationofcredit",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_39_bdtpolicyrenegotiation,
- { "BDTPolicyRenegotiation", "json.3gpp.suppfeat.bdtpolicyrenegotiation",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_40_extpolicydecisionerrorhandling,
- { "ExtPolicyDecisionErrorHandling", "json.3gpp.suppfeat.extpolicydecisionerrorhandling",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_41_immediatetermination,
- { "ImmediateTermination", "json.3gpp.suppfeat.immediatetermination",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_42_aggregateduelocchanges,
- { "AggregatedUELocChanges", "json.3gpp.suppfeat.aggregateduelocchanges",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_43_es3xx,
- { "ES3XX", "json.3gpp.suppfeat.es3xx",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_44_groupidlistchange,
- { "GroupIdListChange", "json.3gpp.suppfeat.groupidlistchange",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_45_disableuenotification,
- { "DisableUENotification", "json.3gpp.suppfeat.disableuenotification",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_46_offlinechonly,
- { "OfflineChOnly", "json.3gpp.suppfeat.offlinechonly",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_47_dual_connectivity_redundant_up_paths,
- { "Dual-Connectivity-redundant-UP-paths", "json.3gpp.suppfeat.dual_connectivity_redundant_up_paths",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_48_ddneventpolicycontrol2,
- { "DDNEventPolicyControl2", "json.3gpp.suppfeat.ddneventpolicycontrol2",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_49_vplmn_qos_control,
- { "VPLMN-QoS-Control", "json.3gpp.suppfeat.vplmn_qos_control",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_50_2g3giwk,
- { "2G3GIWK", "json.3gpp.suppfeat.2g3giwk",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_51_timesensitivecommunication,
- { "TimeSensitiveCommunication", "json.3gpp.suppfeat.timesensitivecommunication",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_52_enedge,
- { "EnEDGE", "json.3gpp.suppfeat.enedge",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_53_satbackhaulcategorychg,
- { "SatBackhaulCategoryChg", "json.3gpp.suppfeat.satbackhaulcategorychg",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_54_chfsetsupport,
- { "CHFsetSupport", "json.3gpp.suppfeat.chfsetsupport",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_55_enatssss,
- { "EnATSSS", "json.3gpp.suppfeat.enatssss",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_56_mpsfordts,
- { "MPSforDTS", "json.3gpp.suppfeat.mpsfordts",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_57_routinginforemoval,
- { "RoutingInfoRemoval", "json.3gpp.suppfeat.routinginforemoval",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_58_epra,
- { "ePRA", "json.3gpp.suppfeat.epra",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_59_aminfluence,
- { "AMInfluence", "json.3gpp.suppfeat.aminfluence",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_60_pvssupport,
- { "PvsSupport", "json.3gpp.suppfeat.pvssupport",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
-
- { &hf_json_3gpp_suppfeat_npcf_61_enena,
- { "EneNA", "json.3gpp.suppfeat.enena",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_62_biumr,
- { "BIUMR", "json.3gpp.suppfeat.biumr",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_npcf_63_easipreplacement,
- { "EASIPreplacement", "json.3gpp.suppfeat.easipreplacement",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_64_exposuretoeas,
- { "ExposureToEAS", "json.3gpp.suppfeat.exposuretoeas",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_65_simultconnectivity,
- { "SimultConnectivity", "json.3gpp.suppfeat.simultconnectivity",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_66_sgwrest,
- { "SGWRest", "json.3gpp.suppfeat.sgwrest",
- FT_BOOLEAN, 4, NULL, 0x2,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_67_releasetoreactivate,
- { "ReleaseToReactivate", "json.3gpp.suppfeat.releasetoreactivate",
- FT_BOOLEAN, 4, NULL, 0x4,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_68_easdiscovery,
- { "EASDiscovery", "json.3gpp.suppfeat.enena",
- FT_BOOLEAN, 4, NULL, 0x8,
- NULL, HFILL }
- },
- { &hf_json_3gpp_suppfeat_69_accnetchargid_string,
- { "AccNetChargId_String", "json.3gpp.suppfeat.accnetchargid_string",
- FT_BOOLEAN, 4, NULL, 0x1,
- NULL, HFILL }
- },
};
static gint *ett[] = {
@@ -2146,9 +1202,6 @@ proto_register_json(void)
&ett_json_array_compact,
&ett_json_object_compact,
&ett_json_member_compact,
- &ett_json_base64decoded_eps_ie,
- &ett_json_base64decoded_nas5g_ie,
- &ett_json_3gpp_data,
};
module_t *json_module;
@@ -2178,8 +1231,6 @@ proto_register_json(void)
"Hide extended path based filtering",
&hide_extended_path_based_filtering);
- proto_json_3gpp = proto_register_protocol("JSON 3GPP", "JSON_3GPP", "json_3gpp");
-
/* Fill hash table with static headers */
register_static_headers();
}