Compare commits
10 Commits
2b9dcdc346
...
7dc0f853c6
Author | SHA1 | Date |
---|---|---|
John Thacker | 7dc0f853c6 | |
John Thacker | 7583014fb0 | |
John Thacker | d62cc2b175 | |
Anders Broman | 3d8e72fdf9 | |
Pau Espin | fdcc57302f | |
Pau Espin | 46123c430a | |
Pascal Quantin | 611ed98634 | |
John Thacker | 84ffa648ea | |
Jie Han | 49d15ea4e8 | |
Patrik Thunström | 96ab1b9571 |
|
@ -102,6 +102,7 @@ static guint64 enrp_total_msgs = 0;
|
|||
static guint64 enrp_total_bytes = 0;
|
||||
|
||||
static expert_field ei_enrp_max_recursion_depth_reached;
|
||||
static expert_field ei_enrp_invalid_length;
|
||||
|
||||
static void
|
||||
dissect_parameters(tvbuff_t *, packet_info *, proto_tree *);
|
||||
|
@ -206,6 +207,12 @@ dissect_error_causes(tvbuff_t *error_causes_tvb, packet_info *pinfo, proto_tree
|
|||
offset = 0;
|
||||
while(tvb_reported_length_remaining(error_causes_tvb, offset) > 0) {
|
||||
length = tvb_get_ntohs(error_causes_tvb, offset + CAUSE_LENGTH_OFFSET);
|
||||
if (length < 4) {
|
||||
proto_tree_add_expert_format(parameter_tree, pinfo, &ei_enrp_invalid_length,
|
||||
error_causes_tvb, offset + CAUSE_LENGTH_OFFSET, 2,
|
||||
"Error cause length must be at least 4 bytes");
|
||||
return;
|
||||
}
|
||||
total_length = WS_ROUNDUP_4(length);
|
||||
error_cause_tvb = tvb_new_subset_length(error_causes_tvb, offset, total_length);
|
||||
dissect_error_cause(error_cause_tvb, pinfo, parameter_tree);
|
||||
|
@ -539,6 +546,11 @@ dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tre
|
|||
offset = 0;
|
||||
while((remaining_length = tvb_reported_length_remaining(parameters_tvb, offset)) > 0) {
|
||||
length = tvb_get_ntohs(parameters_tvb, offset + PARAMETER_LENGTH_OFFSET);
|
||||
if (length < 4) {
|
||||
proto_tree_add_expert(tree, pinfo, &ei_enrp_invalid_length,
|
||||
parameters_tvb, offset + PARAMETER_LENGTH_OFFSET, 2);
|
||||
return;
|
||||
}
|
||||
total_length = WS_ROUNDUP_4(length);
|
||||
if (remaining_length >= length)
|
||||
total_length = MIN(total_length, remaining_length);
|
||||
|
@ -1140,7 +1152,9 @@ proto_register_enrp(void)
|
|||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_enrp_max_recursion_depth_reached, { "enrp.max_recursion_depth_reached",
|
||||
PI_PROTOCOL, PI_WARN, "Maximum allowed recursion depth reached - stop decoding", EXPFILL }}
|
||||
PI_PROTOCOL, PI_WARN, "Maximum allowed recursion depth reached - stop decoding", EXPFILL }},
|
||||
{ &ei_enrp_invalid_length, { "enrp.invalid_length",
|
||||
PI_MALFORMED, PI_ERROR, "Parameter length must be at least 4 bytes", EXPFILL }}
|
||||
};
|
||||
|
||||
static tap_param enrp_stat_params[] = {
|
||||
|
|
|
@ -79,6 +79,7 @@ enum osmo_gsup_iei {
|
|||
OSMO_GSUP_ACCESS_POINT_NAME_IE = 0x12,
|
||||
OSMO_GSUP_PDP_QOS_IE = 0x13,
|
||||
OSMO_GSUP_CHARG_CHAR_IE = 0x14,
|
||||
OSMO_GSUP_PCO_IE = 0x15,
|
||||
OSMO_GSUP_RAND_IE = 0x20,
|
||||
OSMO_GSUP_SRES_IE = 0x21,
|
||||
OSMO_GSUP_KC_IE = 0x22,
|
||||
|
@ -183,6 +184,10 @@ enum osmo_gsup_message_type {
|
|||
OSMO_GSUP_MSGT_E_ABORT = 0x4b,
|
||||
|
||||
OSMO_GSUP_MSGT_E_ROUTING_ERROR = 0x4e,
|
||||
|
||||
OSMO_GSUP_MSGT_EPDG_TUNNEL_REQUEST = 0x50,
|
||||
OSMO_GSUP_MSGT_EPDG_TUNNEL_ERROR = 0x51,
|
||||
OSMO_GSUP_MSGT_EPDG_TUNNEL_RESULT = 0x52,
|
||||
};
|
||||
|
||||
#define OSMO_GSUP_IS_MSGT_REQUEST(msgt) (((msgt) & 0b00000011) == 0b00)
|
||||
|
@ -339,6 +344,7 @@ static const value_string gsup_iei_types[] = {
|
|||
{ OSMO_GSUP_ACCESS_POINT_NAME_IE, "Access Point Name (APN)" },
|
||||
{ OSMO_GSUP_PDP_QOS_IE, "PDP Quality of Service (QoS)" },
|
||||
{ OSMO_GSUP_CHARG_CHAR_IE, "Charging Character" },
|
||||
{ OSMO_GSUP_PCO_IE, "Protocol Configuration Options" },
|
||||
{ OSMO_GSUP_RAND_IE, "RAND" },
|
||||
{ OSMO_GSUP_SRES_IE, "SRES" },
|
||||
{ OSMO_GSUP_KC_IE, "Kc" },
|
||||
|
@ -422,6 +428,9 @@ static const value_string gsup_msg_types[] = {
|
|||
{ OSMO_GSUP_MSGT_E_CLOSE, "E Close"},
|
||||
{ OSMO_GSUP_MSGT_E_ABORT, "E Abort"},
|
||||
{ OSMO_GSUP_MSGT_E_ROUTING_ERROR, "E Routing Error"},
|
||||
{ OSMO_GSUP_MSGT_EPDG_TUNNEL_REQUEST, "ePDG Tunnel Request"},
|
||||
{ OSMO_GSUP_MSGT_EPDG_TUNNEL_ERROR, "ePDG Tunnel Error"},
|
||||
{ OSMO_GSUP_MSGT_EPDG_TUNNEL_RESULT, "ePDG Tunnel Result"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -714,6 +723,7 @@ dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo,
|
|||
gint apn_len;
|
||||
guint32 ui32;
|
||||
guint8 i;
|
||||
tvbuff_t *subset_tvb;
|
||||
|
||||
tag = tvb_get_guint8(tvb, offset);
|
||||
offset++;
|
||||
|
@ -809,6 +819,23 @@ dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo,
|
|||
case OSMO_GSUP_CHARG_CHAR_IE:
|
||||
proto_tree_add_item(att_tree, hf_gsup_charg_char, tvb, offset, len, ENC_ASCII);
|
||||
break;
|
||||
case OSMO_GSUP_PCO_IE:
|
||||
switch (msg_type) {
|
||||
case OSMO_GSUP_MSGT_EPDG_TUNNEL_REQUEST:
|
||||
/* PCO options as MS to network direction */
|
||||
pinfo->link_dir = P2P_DIR_UL;
|
||||
break;
|
||||
case OSMO_GSUP_MSGT_EPDG_TUNNEL_ERROR:
|
||||
case OSMO_GSUP_MSGT_EPDG_TUNNEL_RESULT:
|
||||
/* PCO options as Network to MS direction: */
|
||||
pinfo->link_dir = P2P_DIR_DL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
subset_tvb = tvb_new_subset_length(tvb, offset, len);
|
||||
de_sm_pco(subset_tvb, att_tree, pinfo, 0, len, NULL, 0);
|
||||
break;
|
||||
case OSMO_GSUP_CAUSE_IE:
|
||||
proto_tree_add_item(att_tree, hf_gsup_cause, tvb, offset, len, ENC_NA);
|
||||
break;
|
||||
|
|
|
@ -184,7 +184,8 @@ typedef enum
|
|||
* Here are the global variables associated with
|
||||
* the various user definable characteristics of the dissection
|
||||
*
|
||||
* MEGACO has two kinds of message formats: text and binary
|
||||
* H.248/MEGACO has two kinds of message formats: text and binary (ASN.1).
|
||||
* The binary message format is dissected in packet-h248.c
|
||||
*
|
||||
* global_megaco_raw_text determines whether we are going to display
|
||||
* the raw text of the megaco message, much like the HTTP dissector does.
|
||||
|
@ -193,11 +194,6 @@ typedef enum
|
|||
* a detailed tree that expresses a somewhat more semantically meaningful
|
||||
* decode.
|
||||
*/
|
||||
#if 0
|
||||
static guint global_megaco_bin_sctp_port = PORT_MEGACO_BIN;
|
||||
static guint global_megaco_bin_tcp_port = PORT_MEGACO_BIN;
|
||||
static guint global_megaco_bin_udp_port = PORT_MEGACO_BIN;
|
||||
#endif
|
||||
static gboolean global_megaco_raw_text = TRUE;
|
||||
static gboolean global_megaco_dissect_tree = TRUE;
|
||||
|
||||
|
@ -450,6 +446,8 @@ dissect_megaco_topologydescriptor(tvbuff_t *tvb, proto_tree *tree, gint tvb_RBRK
|
|||
static void
|
||||
dissect_megaco_errordescriptor(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, gint tvb_RBRKT, gint tvb_previous_offset);
|
||||
static void
|
||||
dissect_megaco_statisticsdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset);
|
||||
static void
|
||||
dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, proto_tree *tree, gint tvb_next_offset, gint tvb_current_offset);
|
||||
static void
|
||||
dissect_megaco_LocalRemotedescriptor(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint tvb_next_offset, gint tvb_current_offset, guint32 context, gboolean is_local);
|
||||
|
@ -635,11 +633,6 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
|
|||
*/
|
||||
tvb_offset = megaco_tvb_skip_wsp(tvb, tvb_offset);
|
||||
|
||||
/* Quick fix for MEGACO not following the RFC, hopefully not breaking any thing
|
||||
* Turned out to be TPKT in case of TCP, added some code to handle that.
|
||||
*
|
||||
* tvb_offset = tvb_find_guint8(tvb, tvb_offset, 5, 'M');
|
||||
*/
|
||||
if(!tvb_get_raw_bytes_as_stringz(tvb,tvb_offset,sizeof(word),word)) return tvb_captured_length(tvb);
|
||||
|
||||
/* Quick fix for MEGACO packet with Authentication Header,
|
||||
|
@ -1716,6 +1709,7 @@ dissect_megaco_multiplexdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_comman
|
|||
#define MEGACO_LOCAL_CONTROL_TOKEN 3
|
||||
#define MEGACO_STREAM_TOKEN 4
|
||||
#define MEGACO_TERMINATION_STATE_DESC 5
|
||||
// MEGACO_STATS_TOKEN is already defined as 6 above
|
||||
|
||||
static const megaco_tokens_t megaco_mediaParm_names[] = {
|
||||
{ "Unknown-token", NULL }, /* 0 Pad so that the real headers start at index 1 */
|
||||
|
@ -1724,6 +1718,7 @@ static const megaco_tokens_t megaco_mediaParm_names[] = {
|
|||
{ "LocalControl", "O" }, /* 3 */
|
||||
{ "Stream", "ST" }, /* 4 */
|
||||
{ "TerminationState", "TS" }, /* 5 */
|
||||
{ "Statistics", "SA" }, /* 6 */
|
||||
};
|
||||
|
||||
/* Returns index of megaco_tokens_t */
|
||||
|
@ -1816,6 +1811,14 @@ dissect_megaco_mediadescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_li
|
|||
tvb_RBRKT, tvb_current_offset);
|
||||
tvb_current_offset = tvb_RBRKT;
|
||||
break;
|
||||
case MEGACO_STATS_TOKEN:
|
||||
// dissect_megaco_statisticsdescriptor wants the previous
|
||||
// offset, don't skip forward.
|
||||
//tvb_current_offset = megaco_tvb_skip_wsp(tvb, tvb_LBRKT+1);
|
||||
dissect_megaco_statisticsdescriptor(tvb, megaco_mediadescriptor_tree,
|
||||
tvb_RBRKT, tvb_current_offset);
|
||||
tvb_current_offset = tvb_RBRKT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
@ -3843,23 +3846,6 @@ proto_register_megaco(void)
|
|||
|
||||
megaco_module = prefs_register_protocol(proto_megaco, NULL);
|
||||
|
||||
#if 0
|
||||
prefs_register_uint_preference(megaco_module, "sctp.bin_port",
|
||||
"MEGACO Binary SCTP Port",
|
||||
"Set the SCTP port for MEGACO binary messages",
|
||||
10, &global_megaco_bin_sctp_port);
|
||||
|
||||
prefs_register_uint_preference(megaco_module, "tcp.bin_port",
|
||||
"MEGACO Binary TCP Port",
|
||||
"Set the TCP port for MEGACO binary messages",
|
||||
10, &global_megaco_bin_tcp_port);
|
||||
|
||||
prefs_register_uint_preference(megaco_module, "udp.bin_port",
|
||||
"MEGACO Binary UDP Port",
|
||||
"Set the UDP port for MEGACO binary messages",
|
||||
10, &global_megaco_bin_udp_port);
|
||||
#endif
|
||||
|
||||
prefs_register_bool_preference(megaco_module, "display_raw_text",
|
||||
"Display raw text for MEGACO message",
|
||||
"Specifies that the raw text of the "
|
||||
|
@ -3897,16 +3883,6 @@ proto_reg_handoff_megaco(void)
|
|||
{
|
||||
dissector_handle_t megaco_text_tcp_handle;
|
||||
|
||||
/*
|
||||
* Variables to allow for proper deletion of dissector registration when
|
||||
* the user changes port from the gui.
|
||||
*/
|
||||
#if 0
|
||||
static guint bin_sctp_port;
|
||||
static guint bin_tcp_port;
|
||||
static guint bin_udp_port;
|
||||
#endif
|
||||
|
||||
sdp_handle = find_dissector_add_dependency("sdp", proto_megaco);
|
||||
h245_handle = find_dissector_add_dependency("h245dg", proto_megaco);
|
||||
h248_handle = find_dissector_add_dependency("h248", proto_megaco);
|
||||
|
|
|
@ -6757,7 +6757,7 @@ proto_register_ptp(void)
|
|||
},
|
||||
{ &hf_ptp_as_fu_tlv_cumulative_rate_ratio,
|
||||
{ "cumulativeRateRatio", "ptp.as.fu.cumulativeRateRatio",
|
||||
FT_DOUBLE, BASE_DEC, NULL, 0x00,
|
||||
FT_DOUBLE, BASE_NONE, NULL, 0x00,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_ptp_as_fu_tlv_gm_base_indicator,
|
||||
|
|
|
@ -258,8 +258,13 @@ static int hf_nan_attr_ndp_ctrl_security_pres;
|
|||
static int hf_nan_attr_ndp_ctrl_publish_id_pres;
|
||||
static int hf_nan_attr_ndp_ctrl_responder_ndi_pres;
|
||||
static int hf_nan_attr_ndp_ctrl_sepcific_info_pres;
|
||||
static int hf_nan_attr_ndpe_ctrl_confirm;
|
||||
static int hf_nan_attr_ndpe_ctrl_security_pres;
|
||||
static int hf_nan_attr_ndpe_ctrl_publish_id_pres;
|
||||
static int hf_nan_attr_ndpe_ctrl_responder_ndi_pres;
|
||||
static int hf_nan_attr_ndpe_ctrl_gtk_requried;
|
||||
static int hf_nan_attr_ndp_control;
|
||||
static int hf_nan_attr_ndpe_control;
|
||||
static int hf_nan_attr_ndp_responder_ndi;
|
||||
static int hf_nan_attr_ndp_specific_info;
|
||||
static int hf_nan_attr_ndpe_tlv_type;
|
||||
|
@ -343,9 +348,9 @@ static int hf_nan_attr_ranging_setup_ftm_max_burst_duration;
|
|||
static int hf_nan_attr_ranging_setup_ftm_format_bw;
|
||||
static int hf_nan_attr_ftm_range_report;
|
||||
static int hf_nan_attr_cipher_suite_capabilities;
|
||||
static int hf_nan_attr_cipher_suite_capabilities_ndtksa_nmtksa_reply_counters;
|
||||
static int hf_nan_attr_cipher_suite_capabilities_ndtksa_nmtksa_replay_counters;
|
||||
static int hf_nan_attr_cipher_suite_capabilities_gtksa_igtksa_bigtksa_support;
|
||||
static int hf_nan_attr_cipher_suite_capabilities_gtksa_reply_counters;
|
||||
static int hf_nan_attr_cipher_suite_capabilities_gtksa_replay_counters;
|
||||
static int hf_nan_attr_cipher_suite_capabilities_igtksa_bigtksa_cipher;
|
||||
static int hf_nan_attr_cipher_suite_id;
|
||||
static int hf_nan_attr_security_context_identifier;
|
||||
|
@ -785,7 +790,7 @@ static const value_string cipher_suite_capabilities_nd_nm_tksa_replay_counters[]
|
|||
static const value_string cipher_suite_capabilities_group_and_integrity_sa_support[] = {
|
||||
{ 0, "GTKSA, IGTKSA, BIGTKSA are not supported" },
|
||||
{ 1, "GTKSA and IGTKSA are supported, and BIGTKSA is not supported" },
|
||||
{ 1, "GTKSA, IGTKSA, and BIGTKSA are supported" },
|
||||
{ 2, "GTKSA, IGTKSA, and BIGTKSA are supported" },
|
||||
{ 3, "Reserved" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
@ -1572,11 +1577,11 @@ dissect_attr_ndpe(proto_tree* attr_tree, tvbuff_t* tvb, gint offset, guint16 att
|
|||
&hf_nan_status_1,
|
||||
NULL
|
||||
};
|
||||
static int* const ndp_control_fields[] = {
|
||||
&hf_nan_attr_ndp_ctrl_confirm,
|
||||
&hf_nan_attr_ndp_ctrl_security_pres,
|
||||
&hf_nan_attr_ndp_ctrl_publish_id_pres,
|
||||
&hf_nan_attr_ndp_ctrl_responder_ndi_pres,
|
||||
static int* const ndpe_control_fields[] = {
|
||||
&hf_nan_attr_ndpe_ctrl_confirm,
|
||||
&hf_nan_attr_ndpe_ctrl_security_pres,
|
||||
&hf_nan_attr_ndpe_ctrl_publish_id_pres,
|
||||
&hf_nan_attr_ndpe_ctrl_responder_ndi_pres,
|
||||
&hf_nan_attr_ndpe_ctrl_gtk_requried,
|
||||
NULL
|
||||
};
|
||||
|
@ -1595,8 +1600,8 @@ dissect_attr_ndpe(proto_tree* attr_tree, tvbuff_t* tvb, gint offset, guint16 att
|
|||
proto_tree_add_item(attr_tree, hf_nan_reason_code, tvb, offset + 1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(attr_tree, hf_nan_attr_ndp_initiator, tvb, offset + 2, 6, ENC_NA);
|
||||
proto_tree_add_item(attr_tree, hf_nan_attr_ndp_id, tvb, offset + 8, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_bitmask(attr_tree, tvb, offset + 9, hf_nan_attr_ndp_control,
|
||||
ett_ndp_control, ndp_control_fields, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_bitmask(attr_tree, tvb, offset + 9, hf_nan_attr_ndpe_control,
|
||||
ett_ndp_control, ndpe_control_fields, ENC_LITTLE_ENDIAN);
|
||||
offset += 9;
|
||||
dissected_len += 9;
|
||||
|
||||
|
@ -2384,9 +2389,9 @@ dissect_attr_cipher_suite_info(proto_tree* attr_tree, tvbuff_t* tvb, gint offset
|
|||
guint dissected_len = 0;
|
||||
|
||||
proto_tree* caps_tree = proto_tree_add_subtree(attr_tree, tvb, sub_offset, 1, ett_nan_cipher_suite_capabilities, NULL, "Capabilities");
|
||||
proto_tree_add_item(caps_tree, hf_nan_attr_cipher_suite_capabilities_ndtksa_nmtksa_reply_counters, tvb, sub_offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(caps_tree, hf_nan_attr_cipher_suite_capabilities_ndtksa_nmtksa_replay_counters, tvb, sub_offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(caps_tree, hf_nan_attr_cipher_suite_capabilities_gtksa_igtksa_bigtksa_support, tvb, sub_offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(caps_tree, hf_nan_attr_cipher_suite_capabilities_gtksa_reply_counters, tvb, sub_offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(caps_tree, hf_nan_attr_cipher_suite_capabilities_gtksa_replay_counters, tvb, sub_offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(caps_tree, hf_nan_attr_cipher_suite_capabilities_igtksa_bigtksa_cipher, tvb, sub_offset, 1, ENC_LITTLE_ENDIAN);
|
||||
|
||||
sub_offset++;
|
||||
|
@ -3835,13 +3840,6 @@ proto_register_nan(void)
|
|||
FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndpe_ctrl_gtk_requried,
|
||||
{
|
||||
"GTK Required",
|
||||
"wifi_nan.ndp.ctrl.gtk_required",
|
||||
FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndp_ctrl_sepcific_info_pres,
|
||||
{
|
||||
"NDP Specific Info Present",
|
||||
|
@ -3849,6 +3847,41 @@ proto_register_nan(void)
|
|||
FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndpe_ctrl_confirm,
|
||||
{
|
||||
"Confirm Required",
|
||||
"wifi_nan.ndpe.ctrl.confirm",
|
||||
FT_BOOLEAN, 8, NULL, 0x1, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndpe_ctrl_security_pres,
|
||||
{
|
||||
"Security Present",
|
||||
"wifi_nan.ndpe.ctrl.security_pres",
|
||||
FT_BOOLEAN, 8, NULL, 0x4, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndpe_ctrl_publish_id_pres,
|
||||
{
|
||||
"Publish ID Present",
|
||||
"wifi_nan.ndpe.ctrl.publish_id_pres",
|
||||
FT_BOOLEAN, 8, NULL, 0x8, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndpe_ctrl_responder_ndi_pres,
|
||||
{
|
||||
"Responder NDI Present",
|
||||
"wifi_nan.ndpe.ctrl.responder_ndi_pres",
|
||||
FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndpe_ctrl_gtk_requried,
|
||||
{
|
||||
"GTK Required",
|
||||
"wifi_nan.ndpe.ctrl.gtk_required",
|
||||
FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndp_control,
|
||||
{
|
||||
"NDP Control",
|
||||
|
@ -3856,6 +3889,13 @@ proto_register_nan(void)
|
|||
FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndpe_control,
|
||||
{
|
||||
"NDPE Control",
|
||||
"wifi_nan.ndpe.ctrl",
|
||||
FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_ndp_responder_ndi,
|
||||
{
|
||||
"Responder NDI",
|
||||
|
@ -4437,10 +4477,10 @@ proto_register_nan(void)
|
|||
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_cipher_suite_capabilities_ndtksa_nmtksa_reply_counters,
|
||||
{ &hf_nan_attr_cipher_suite_capabilities_ndtksa_nmtksa_replay_counters,
|
||||
{
|
||||
"ND-TKSA and NM-TKSA Reply Counters",
|
||||
"wifi_nan.cipher_suite.capabilities.reply_counters.ndtksa",
|
||||
"ND-TKSA and NM-TKSA Replay Counters",
|
||||
"wifi_nan.cipher_suite.capabilities.replay_counters.ndtksa",
|
||||
FT_UINT8, BASE_HEX, VALS(cipher_suite_capabilities_nd_nm_tksa_replay_counters), 0x01, NULL, HFILL
|
||||
}
|
||||
},
|
||||
|
@ -4451,10 +4491,10 @@ proto_register_nan(void)
|
|||
FT_UINT8, BASE_HEX, VALS(cipher_suite_capabilities_group_and_integrity_sa_support), 0x06, NULL, HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_nan_attr_cipher_suite_capabilities_gtksa_reply_counters,
|
||||
{ &hf_nan_attr_cipher_suite_capabilities_gtksa_replay_counters,
|
||||
{
|
||||
"GTKSA Reply Counters",
|
||||
"wifi_nan.cipher_suite.capabilities.reply_counters.gtksa",
|
||||
"GTKSA Replay Counters",
|
||||
"wifi_nan.cipher_suite.capabilities.replay_counters.gtksa",
|
||||
FT_UINT8, BASE_HEX, VALS(cipher_suite_capabilities_gtksa_replay_counters), 0x08, NULL, HFILL
|
||||
}
|
||||
},
|
||||
|
|
23
epan/prefs.c
23
epan/prefs.c
|
@ -1752,7 +1752,11 @@ range_t* prefs_get_range_value_real(pref_t *pref, pref_source_t source)
|
|||
|
||||
range_t* prefs_get_range_value(const char *module_name, const char* pref_name)
|
||||
{
|
||||
return prefs_get_range_value_real(prefs_find_preference(prefs_find_module(module_name), pref_name), pref_current);
|
||||
pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
|
||||
if (pref == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
return prefs_get_range_value_real(pref, pref_current);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -2369,17 +2373,6 @@ pref_clean_stash(pref_t *pref, gpointer unused _U_)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* Return the value assigned to the given uint preference. */
|
||||
guint
|
||||
prefs_get_uint_preference(pref_t *pref)
|
||||
{
|
||||
if (pref && pref->type == PREF_UINT)
|
||||
return *pref->varp.uint;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Call a callback function, with a specified argument, for each preference
|
||||
* in a given module.
|
||||
|
@ -5068,7 +5061,11 @@ guint prefs_get_uint_value_real(pref_t *pref, pref_source_t source)
|
|||
|
||||
guint prefs_get_uint_value(const char *module_name, const char* pref_name)
|
||||
{
|
||||
return prefs_get_uint_value_real(prefs_find_preference(prefs_find_module(module_name), pref_name), pref_current);
|
||||
pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
|
||||
if (pref == NULL) {
|
||||
return 0;
|
||||
}
|
||||
return prefs_get_uint_value_real(pref, pref_current);
|
||||
}
|
||||
|
||||
char* prefs_get_password_value(pref_t *pref, pref_source_t source)
|
||||
|
|
|
@ -6412,6 +6412,9 @@
|
|||
<avp name="PC5-Link-AMBR" code="1718" mandatory="mustnot" vendor-bit="must" vendor-id="TGPP">
|
||||
<type type-name="Integer32"/>
|
||||
</avp>
|
||||
<avp name="Third-Context-Identifier" code="1719" mandatory="mustnot" vendor-bit="must" vendor-id="TGPP">
|
||||
<type type-name="Unsigned32"/>
|
||||
</avp>
|
||||
|
||||
<avp name="SMS-Information" code="2000" vendor-bit="must" vendor-id="TGPP">
|
||||
<grouped>
|
||||
|
|
|
@ -140,7 +140,7 @@ fi
|
|||
install_formulae "${ACTUAL_LIST[@]}"
|
||||
|
||||
if [ $INSTALL_OPTIONAL -ne 0 ] ; then
|
||||
brew install lua@5.1 || printf "Lua 5.1 installation failed.\\n"
|
||||
brew install lua@5.3 || printf "Lua 5.3 installation failed.\\n"
|
||||
fi
|
||||
|
||||
if [ $INSTALL_DMG_DEPS -ne 0 ] ; then
|
||||
|
|
Loading…
Reference in New Issue