DIAMETER: Dissect Access-Network-Information (AVP code 1263)
The Access-Network-Information AVP (AVP code 1263) is an instance of the SIP P-header "P-Access-Network-Info". There is a dissection function for P-Access-Network-Info in the SIP dissector, add it to the header and use it for the DIAMETER AVP.
This commit is contained in:
parent
ec2c42723f
commit
3c4b6c94f2
|
@ -1451,6 +1451,23 @@ dissect_diameter_3gpp_location_estimate(tvbuff_t *tvb, packet_info *pinfo, proto
|
|||
return tvb_reported_length(tvb);
|
||||
}
|
||||
|
||||
/* AVP Code: 1263 Access-Network-Information
|
||||
* 3GPP TS 32.299
|
||||
* The Access-Network-Information AVP (AVP code 1263) is of type OctetString
|
||||
* and indicates one instance of the SIP P-header "P-Access-Network-Info".
|
||||
* In SIP, as per RFC 7315 [404], the content of the "P-Access-Network-Info"
|
||||
* header is known as the access-net-spec.
|
||||
*/
|
||||
static int
|
||||
dissect_diameter_3gpp_access_network_information(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
int length = tvb_reported_length(tvb);
|
||||
|
||||
dissect_sip_p_access_network_info_header(tvb, tree, offset, length);
|
||||
|
||||
return length;
|
||||
}
|
||||
|
||||
/* AVP Code: 1304 Secondary-RAT-Type
|
||||
* 3GPP TS 32.299
|
||||
|
@ -2956,6 +2973,9 @@ proto_reg_handoff_diameter_3gpp(void)
|
|||
/* AVP Code: 1242 location estimate */
|
||||
dissector_add_uint("diameter.3gpp", 1242, create_dissector_handle(dissect_diameter_3gpp_location_estimate, proto_diameter_3gpp));
|
||||
|
||||
/* AVP Code: 1263 Access-Network-Information */
|
||||
dissector_add_uint("diameter.3gpp", 1263, create_dissector_handle(dissect_diameter_3gpp_access_network_information, proto_diameter_3gpp));
|
||||
|
||||
/* AVP Code: 1304 Secondary-RAT-Type */
|
||||
dissector_add_uint("diameter.3gpp", 1304, create_dissector_handle(dissect_diameter_3gpp_secondary_rat_type, proto_diameter_3gpp));
|
||||
|
||||
|
|
|
@ -3044,7 +3044,7 @@ static void dissect_sip_session_id_header(tvbuff_t *tvb, proto_tree *tree, gint
|
|||
* gstn-location = "gstn-location" EQUAL (token / quoted-string)
|
||||
*
|
||||
*/
|
||||
static void dissect_sip_p_access_network_info_header(tvbuff_t *tvb, proto_tree *tree, gint start_offset, gint line_end_offset)
|
||||
void dissect_sip_p_access_network_info_header(tvbuff_t *tvb, proto_tree *tree, gint start_offset, gint line_end_offset)
|
||||
{
|
||||
|
||||
gint current_offset, semi_colon_offset, length, par_name_end_offset, equals_offset;
|
||||
|
|
|
@ -43,4 +43,6 @@ WS_DLL_PUBLIC const value_string sip_response_code_vals[];
|
|||
extern void dfilter_store_sip_from_addr(tvbuff_t *tvb, proto_tree *tree,
|
||||
guint parameter_offset, guint parameter_len);
|
||||
|
||||
extern void dissect_sip_p_access_network_info_header(tvbuff_t *tvb, proto_tree *tree, gint start_offset, gint line_end_offset);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue