From cfreeer:

There is no EAP decoder to decode EAP messages packed in Wimax PKM messages. 
I called the EAP decoder found in the Wireshark.

svn path=/trunk/; revision=25203
This commit is contained in:
Jaap Keuter 2008-04-30 09:15:50 +00:00
parent 7a0981e513
commit 6e9d862cd8
1 changed files with 5 additions and 1 deletions

View File

@ -77,6 +77,8 @@ static gint ett_vendor_id_encoding_decoder = -1;
static gint ett_ul_service_flow_decoder = -1; static gint ett_ul_service_flow_decoder = -1;
static gint ett_dl_service_flow_decoder = -1; static gint ett_dl_service_flow_decoder = -1;
static dissector_handle_t eap_handle = NULL;
/* The following two variables save the Scheduling Service type for /* The following two variables save the Scheduling Service type for
the Grant Management subheader dissector and track whether or not the Grant Management subheader dissector and track whether or not
one has been seen. one has been seen.
@ -1689,6 +1691,8 @@ void proto_register_wimax_utility_decoders(void)
proto_register_field_array(proto_wimax_utility_decoders, hf_snp, array_length(hf_snp)); proto_register_field_array(proto_wimax_utility_decoders, hf_snp, array_length(hf_snp));
proto_register_field_array(proto_wimax_utility_decoders, hf_pkm, array_length(hf_pkm)); proto_register_field_array(proto_wimax_utility_decoders, hf_pkm, array_length(hf_pkm));
proto_register_field_array(proto_wimax_utility_decoders, hf_common_tlv, array_length(hf_common_tlv)); proto_register_field_array(proto_wimax_utility_decoders, hf_common_tlv, array_length(hf_common_tlv));
eap_handle = find_dissector("eap");
} }
} }
@ -2945,7 +2949,7 @@ void wimax_pkm_tlv_encoded_attributes_decoder(tvbuff_t *tvb, packet_info *pinfo,
break; break;
case PKM_ATTR_PKM_EAP_PAYLOAD: case PKM_ATTR_PKM_EAP_PAYLOAD:
tlv_tree = add_tlv_subtree(&tlv_info, ett_pkm_tlv_encoded_attributes_decoder, tree, hf_pkm_attr_eap_payload, tvb, offset, tlv_len, FALSE); tlv_tree = add_tlv_subtree(&tlv_info, ett_pkm_tlv_encoded_attributes_decoder, tree, hf_pkm_attr_eap_payload, tvb, offset, tlv_len, FALSE);
proto_tree_add_item(tlv_tree, hf_pkm_attr_eap_payload, tvb, offset, tlv_len, FALSE); call_dissector(eap_handle, tvb_new_subset(tvb, offset, tlv_len, tlv_len), pinfo, tlv_tree);
break; break;
case PKM_ATTR_PKM_NONCE: case PKM_ATTR_PKM_NONCE:
tlv_tree = add_tlv_subtree(&tlv_info, ett_pkm_tlv_encoded_attributes_decoder, tree, hf_pkm_attr_nonce, tvb, offset, tlv_len, FALSE); tlv_tree = add_tlv_subtree(&tlv_info, ett_pkm_tlv_encoded_attributes_decoder, tree, hf_pkm_attr_nonce, tvb, offset, tlv_len, FALSE);