- Extend and correct value strings.
- Fix tree handling for QoS. - Add references. svn path=/trunk/; revision=48718
This commit is contained in:
parent
88324c19ea
commit
c534f5e0db
|
@ -99,6 +99,8 @@ static int hf_a11_vse_qosmode = -1;
|
|||
static int hf_a11_vse_pdit = -1;
|
||||
static int hf_a11_vse_code = -1;
|
||||
static int hf_a11_vse_dormant = -1;
|
||||
static int hf_a11_vse_ehrpd_mode = -1;
|
||||
static int hf_a11_vse_ehrpd_pmk = -1;
|
||||
static int hf_a11_vse_ppaddr = -1;
|
||||
|
||||
/* Additional Session Information */
|
||||
|
@ -283,7 +285,7 @@ static const value_string a11_reply_codes[]= {
|
|||
{136, "Reg Deny (HA)- Unknown PDSN Address"},
|
||||
{137, "Reg Deny (HA)- Requested Reverse Tunnel Unavailable"},
|
||||
{138, "Reg Deny (HA)- Reverse Tunnel is Mandatory and 'T' Bit Not Set"},
|
||||
{139, "Reg Deny (HA)- Requested Encapsulation Unavailable"},
|
||||
{139, "Registration Denied – service option not supported"},
|
||||
{140, "Registration Denied - no CID available"},
|
||||
{141, "Reg Deny (HA)- unsupported Vendor ID / Application Type in CVSE"},
|
||||
{142, "Registration Denied - nonexistent A10 or IP flow"},
|
||||
|
@ -292,16 +294,17 @@ static const value_string a11_reply_codes[]= {
|
|||
|
||||
|
||||
static const value_string a11_ack_status[]= {
|
||||
{0, "Update Accepted"},
|
||||
{1, "Partial QoS updated"},
|
||||
{128, "Update Deny - Unspecified"},
|
||||
{131, "Update Deny - Sending Node Failed Authentication"},
|
||||
{133, "Update Deny - Registration ID Mismatch"},
|
||||
{134, "Update Deny - Poorly Formed Request"},
|
||||
{193, "Update Deny - Session Parameter Not Updated"},
|
||||
{253, "Update Denied - QoS profileID not supported"},
|
||||
{254, "Update Denied - insufficient resources"},
|
||||
{255, "Update Denied - handoff in progress"},
|
||||
{0x00, "Update Accepted"},
|
||||
{0x01, "Partial QoS updated"},
|
||||
{0x80, "Update Denied - reason unspecified"},
|
||||
{0x83, "Update Denied – sending node failed authentication"},
|
||||
{0x85, "Update Denied - identification mismatch)"},
|
||||
{0x86, "Update Denied - poorly formed registration update"},
|
||||
{0xc9, "Update Denied - Session Parameter Not Updated"},
|
||||
{0xca, "Update Denied – PMK not requested"},
|
||||
{0xfd, "Update Denied - QoS profileID not supported"},
|
||||
{0xfe, "Update Denied - insufficient resources"},
|
||||
{0xff, "Update Denied - handoff in progress"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
|
@ -353,8 +356,9 @@ static const value_string a11_ext_nvose_srvopt[]= {
|
|||
{0x003B, "HRPD Main Service Connection"},
|
||||
{0x003C, "Link Layer Assisted Header Removal"},
|
||||
{0x003D, "Link Layer Assisted Robust Header Compression"},
|
||||
{0x0040, "HRPD Auxiliary Service Connection with higher layer framing for packet synchronization"},
|
||||
{0x0043, "HRPD Auxiliary Service Connection without higher layer framing for packet synchronization"},
|
||||
{0x0040, "HRPD Accounting Records Identifier"}, /* 3GPP2 A.S0009-C v4.0 */
|
||||
{0x0043, "HRPD Packet Data IP Service where Higher Layer Protocol is IP or ROHC"}, /* 3GPP2 A.S0009-C v4.0 */
|
||||
{0x0047, "HRPD AltPPP operation"}, /* 3GPP2 A.S0009-C v4.0 */
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
|
@ -376,6 +380,12 @@ static const value_string a11_ext_dormant[]= {
|
|||
{0, NULL},
|
||||
};
|
||||
|
||||
|
||||
static const true_false_string a11_tfs_ehrpd_mode = {
|
||||
"eAT is operating in evolved mode",
|
||||
"eAT is operating in legacy mode"
|
||||
};
|
||||
|
||||
static const value_string a11_ext_app[]= {
|
||||
{0x0101, "Accounting (RADIUS)"},
|
||||
{0x0102, "Accounting (DIAMETER)"},
|
||||
|
@ -384,6 +394,8 @@ static const value_string a11_ext_app[]= {
|
|||
{0x0401, "Access Network Identifiers (ANID)"},
|
||||
{0x0501, "PDSN Identifiers (Anchor P-P Address)"},
|
||||
{0x0601, "Indicators (All Dormant Indicator)"},
|
||||
{0x0602, "Indicators (eHRPD Mode)"}, /* 3GPP2 A.S0022-B v1.0 */
|
||||
{0x0603, "Indicators (eHRPD Indicators)"}, /* 3GPP2 A.S0009-C v4.0 */
|
||||
{0x0701, "PDSN Code (PDSN Code)"},
|
||||
{0x0801, "Session Parameter (RN-PDIT:Radio Network Packet Data Inactivity Timer)"},
|
||||
{0x0802, "Session Parameter (Always On)"},
|
||||
|
@ -398,9 +410,14 @@ static const value_string a11_ext_app[]= {
|
|||
{0x0D01, "QoS Information (Forward QoS Information)"},
|
||||
{0x0D02, "QoS Information (Reverse QoS Information)"},
|
||||
{0x0D03, "QoS Information (Subscriber QoS Profile)"},
|
||||
{0x0D04, "QoS Information (Forward Flow Priority Update Information)"},
|
||||
{0x0D05, "QoS Information (Reverse Flow Priority Update Information)"},
|
||||
{0x0DFE, "QoS Information (Forward QoS Update Information)"},
|
||||
{0x0DFF, "QoS Information (Reverse QoS Update Information)"},
|
||||
{0x0E01, "Header Compression (ROHC Configuration Parameters)"},
|
||||
{0x0F01, "Information (Cause Code)"},
|
||||
{0x0F04, "Information (Additional HSGW Information)"},
|
||||
{0x1001, "HRPD Indicators (Emergency Services)"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
|
@ -457,6 +474,17 @@ static const value_string a11_rohc_profile_vals[] =
|
|||
else
|
||||
Last Byte: [F] [Digit N]
|
||||
*/
|
||||
|
||||
|
||||
/* 3GPP2 A.S0008-C v4.0 */
|
||||
static const value_string a11_ses_msid_type_vals[] =
|
||||
{
|
||||
{ 0x0001, "MEID" },
|
||||
{ 0x0005, "ESN" },
|
||||
{ 0x0006, "IMSI" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
static void
|
||||
decode_sse(proto_tree *ext_tree, tvbuff_t *tvb, int offset, guint ext_len)
|
||||
{
|
||||
|
@ -754,7 +782,7 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
|
|||
proto_tree_add_item(exts_tree, hf_a11_ase_pcf_addr_key, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
offset+=4;
|
||||
|
||||
if (registration_request_msg){
|
||||
if ((entry_lenght>14)&&(registration_request_msg)){
|
||||
if (service_option == 0x0043){
|
||||
proto_item *tl;
|
||||
proto_tree *extv_tree;
|
||||
|
@ -915,24 +943,24 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
proto_item *ti = proto_tree_add_text
|
||||
(ext_tree, tvb, offset+clen, entry_len+1, "Forward Flow Entry (Flow Id: %d)", flow_id);
|
||||
|
||||
proto_tree *exts_tree = proto_item_add_subtree(ti, ett_a11_fqi_flowentry);
|
||||
proto_tree *flow_tree = proto_item_add_subtree(ti, ett_a11_fqi_flowentry);
|
||||
|
||||
/* Entry Length */
|
||||
proto_tree_add_item(exts_tree, hf_a11_fqi_entrylen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_fqi_entrylen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* Flow Id */
|
||||
proto_tree_add_item(exts_tree, hf_a11_fqi_flowid, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_fqi_flowid, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* DSCP and Flow State*/
|
||||
dissect_fqi_entry_flags(tvb, offset+clen, exts_tree, dscp_enabled);
|
||||
dissect_fqi_entry_flags(tvb, offset+clen, flow_tree, dscp_enabled);
|
||||
clen++;
|
||||
|
||||
|
||||
/* Requested QoS Length */
|
||||
requested_qos_len = tvb_get_guint8(tvb, offset+clen);
|
||||
proto_tree_add_item(exts_tree, hf_a11_fqi_requested_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_fqi_requested_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* Requested QoS Blob */
|
||||
|
@ -941,7 +969,7 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
proto_item *ti2;
|
||||
proto_tree *exts_tree2;
|
||||
|
||||
proto_item *ti1 = proto_tree_add_text(ext_tree, tvb, offset+clen,requested_qos_len, "Forward Requested QoS ");
|
||||
proto_item *ti1 = proto_tree_add_text(flow_tree, tvb, offset+clen,requested_qos_len, "Forward Requested QoS ");
|
||||
proto_tree *exts_tree1 = proto_item_add_subtree(ti1, ett_a11_fqi_requestedqos);
|
||||
|
||||
proto_tree_add_text(exts_tree1, tvb, offset+clen, requested_qos_len, "Forward Requested QoS Sub Blob");
|
||||
|
@ -975,7 +1003,7 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
/* Granted QoS Length */
|
||||
granted_qos_len = tvb_get_guint8(tvb, offset+clen);
|
||||
proto_tree_add_item(exts_tree, hf_a11_fqi_granted_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_fqi_granted_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* Granted QoS Blob */
|
||||
|
@ -984,7 +1012,7 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
proto_item *ti3;
|
||||
proto_tree *exts_tree3;
|
||||
|
||||
ti3 = proto_tree_add_text(ext_tree, tvb, offset+clen, granted_qos_len, "Forward Granted QoS ");
|
||||
ti3 = proto_tree_add_text(flow_tree, tvb, offset+clen, granted_qos_len, "Forward Granted QoS ");
|
||||
|
||||
exts_tree3 = proto_item_add_subtree(ti3, ett_a11_fqi_grantedqos);
|
||||
|
||||
|
@ -994,7 +1022,7 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
proto_tree_add_item(exts_tree3, hf_a11_fqi_qos_granted_attribute_setid, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
}
|
||||
}
|
||||
}/*for(flow_index...) */
|
||||
}
|
||||
|
||||
/* Code to dissect Reverse QoS Info */
|
||||
|
@ -1026,23 +1054,23 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
proto_item *ti = proto_tree_add_text
|
||||
(ext_tree, tvb, offset+clen, entry_len+1, "Reverse Flow Entry (Flow Id: %d)", flow_id);
|
||||
|
||||
proto_tree *exts_tree = proto_item_add_subtree(ti, ett_a11_rqi_flowentry);
|
||||
proto_tree *flow_tree = proto_item_add_subtree(ti, ett_a11_rqi_flowentry);
|
||||
|
||||
/* Entry Length */
|
||||
proto_tree_add_item(exts_tree, hf_a11_rqi_entrylen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_rqi_entrylen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* Flow Id */
|
||||
proto_tree_add_item(exts_tree, hf_a11_rqi_flowid, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_rqi_flowid, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* Flags */
|
||||
dissect_rqi_entry_flags(tvb, offset+clen, exts_tree);
|
||||
dissect_rqi_entry_flags(tvb, offset+clen, flow_tree);
|
||||
clen++;
|
||||
|
||||
/* Requested QoS Length */
|
||||
requested_qos_len = tvb_get_guint8(tvb, offset+clen);
|
||||
proto_tree_add_item(exts_tree, hf_a11_rqi_requested_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_rqi_requested_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* Requested QoS Blob */
|
||||
|
@ -1051,7 +1079,7 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
proto_item *ti1, *ti2;
|
||||
proto_tree *exts_tree1, *exts_tree2;
|
||||
|
||||
ti1 = proto_tree_add_text(ext_tree, tvb, offset+clen,requested_qos_len , "Reverse Requested QoS ");
|
||||
ti1 = proto_tree_add_text(flow_tree, tvb, offset+clen,requested_qos_len , "Reverse Requested QoS ");
|
||||
|
||||
exts_tree1 = proto_item_add_subtree(ti1, ett_a11_rqi_requestedqos);
|
||||
|
||||
|
@ -1085,7 +1113,7 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
/* Granted QoS Length */
|
||||
granted_qos_len = tvb_get_guint8(tvb, offset+clen);
|
||||
proto_tree_add_item(exts_tree, hf_a11_rqi_granted_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(flow_tree, hf_a11_rqi_granted_qoslen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
clen++;
|
||||
|
||||
/* Granted QoS Blob */
|
||||
|
@ -1094,7 +1122,7 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
proto_item *ti3;
|
||||
proto_tree *exts_tree3;
|
||||
|
||||
ti3 = proto_tree_add_text(ext_tree, tvb, offset+clen,granted_qos_len , "Reverse Granted QoS ");
|
||||
ti3 = proto_tree_add_text(flow_tree, tvb, offset+clen,granted_qos_len , "Reverse Granted QoS ");
|
||||
exts_tree3 = proto_item_add_subtree(ti3, ett_a11_rqi_grantedqos);
|
||||
|
||||
proto_tree_add_text(exts_tree3, tvb, offset+clen, granted_qos_len, "Reverse Granted QoS Sub Blob");
|
||||
|
@ -1392,6 +1420,18 @@ dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tre
|
|||
break;
|
||||
proto_tree_add_item(ext_tree, hf_a11_vse_dormant, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
break;
|
||||
case 0x0602:
|
||||
/* eHRPD Mode */
|
||||
if (ext_len < 1)
|
||||
break;
|
||||
proto_tree_add_item(ext_tree, hf_a11_vse_ehrpd_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
break;
|
||||
case 0x0603:
|
||||
/* eHRPD Indicators */
|
||||
if (ext_len < 1)
|
||||
break;
|
||||
proto_tree_add_item(ext_tree, hf_a11_vse_ehrpd_pmk, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
break;
|
||||
case 0x0701:
|
||||
if (ext_len < 1)
|
||||
break;
|
||||
|
@ -1905,7 +1945,7 @@ proto_register_a11(void)
|
|||
},
|
||||
{ &hf_a11_ses_msid_type,
|
||||
{ "MSID Type", "a11.ext.msid_type",
|
||||
FT_UINT16, BASE_DEC, NULL, 0,
|
||||
FT_UINT16, BASE_DEC, VALS(a11_ses_msid_type_vals), 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_a11_ses_msid_len,
|
||||
|
@ -1943,6 +1983,16 @@ proto_register_a11(void)
|
|||
FT_UINT16, BASE_HEX, VALS(a11_ext_dormant), 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_a11_vse_ehrpd_mode,
|
||||
{ "eHRPD Mode", "a11.ext.ehrpd.mode",
|
||||
FT_BOOLEAN, 8, TFS(&a11_tfs_ehrpd_mode), 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_a11_vse_ehrpd_pmk,
|
||||
{ "PMK", "a11.ext.ehrpd.pmk",
|
||||
FT_BOOLEAN, 8, NULL, 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_a11_vse_code,
|
||||
{ "Reply Code", "a11.ext.code",
|
||||
FT_UINT8, BASE_DEC, VALS(a11_reply_codes), 0,
|
||||
|
|
Loading…
Reference in New Issue