summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2011-12-27 10:15:00 +0000
committerAnders Broman <anders.broman@ericsson.com>2011-12-27 10:15:00 +0000
commit35e767e28a1549433579157ea4c68a5fd8130314 (patch)
tree3e828d7f2d495a28386560426045f344751ab587
parent4dbf893401322668b95863f86aaeba85d3d0e1eb (diff)
downloadwireshark-35e767e28a1549433579157ea4c68a5fd8130314.tar.gz
Dissect Service Option Profile.
svn path=/trunk/; revision=40297
-rw-r--r--epan/dissectors/packet-3g-a11.c67
-rw-r--r--radius/dictionary.3gpp265
2 files changed, 99 insertions, 33 deletions
diff --git a/epan/dissectors/packet-3g-a11.c b/epan/dissectors/packet-3g-a11.c
index 2b59402953..594cc94b30 100644
--- a/epan/dissectors/packet-3g-a11.c
+++ b/epan/dissectors/packet-3g-a11.c
@@ -122,6 +122,11 @@ static int hf_a11_ase_reverse_profile = -1;
static int hf_a11_aut_flow_prof_sub_type = -1;
static int hf_a11_aut_flow_prof_sub_type_len = -1;
static int hf_a11_aut_flow_prof_sub_type_value = -1;
+static int hf_a11_serv_opt_prof_max_serv = -1;
+static int hf_a11_sub_type = -1;
+static int hf_a11_sub_type_length = -1;
+static int hf_a11_serv_opt = -1;
+static int hf_a11_max_num_serv_opt = -1;
/* Forward QoS Information */
static int hf_a11_fqi_srid = -1;
@@ -600,6 +605,40 @@ dissect_a11_radius( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *t
}
+/* X.S0011-005-D v2.0 Service Option Profile */
+static const gchar *dissect_3gpp2_service_option_profile(proto_tree * tree, tvbuff_t * tvb, packet_info* pinfo _U_)
+{
+ int offset = 0;
+ guint8 sub_type, sub_type_length;
+
+ /* Maximum service connections/Link Flows total 32 bit*/
+ proto_tree_add_item(tree, hf_a11_serv_opt_prof_max_serv, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset+=4;
+
+ while (tvb_length_remaining(tvb,offset)>0){
+ sub_type = tvb_get_guint8(tvb,offset);
+ sub_type_length = tvb_get_guint8(tvb,offset+1);
+
+ sub_type = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(tree, hf_a11_sub_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(tree, hf_a11_sub_type_length, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ if(sub_type==1){
+ proto_tree_add_item(tree, hf_a11_serv_opt, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Max number of service instances of Service Option n */
+ proto_tree_add_item(tree, hf_a11_max_num_serv_opt, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ }
+
+ offset = offset+sub_type_length-2;
+ }
+
+ return "";
+
+}
+
static const value_string a11_aut_flow_prof_subtype_vals[] = {
{0x1, "ProfileID-Forward"},
{0x2, "ProfileID-Reverse"},
@@ -607,7 +646,6 @@ static const value_string a11_aut_flow_prof_subtype_vals[] = {
{0, NULL},
};
-
/* X.S0011-005-D v2.0 Authorized Flow Profile IDs for the User */
static const gchar *dissect_3gpp2_radius_aut_flow_profile_ids(proto_tree * tree, tvbuff_t * tvb, packet_info* pinfo _U_)
{
@@ -2262,6 +2300,31 @@ proto_register_a11(void)
FT_UINT16, BASE_DEC, NULL, 0,
NULL, HFILL }
},
+ { &hf_a11_serv_opt_prof_max_serv,
+ { "Service-Connections-Per-Link-flow", "a11.serv_opt_prof.scplf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_a11_sub_type,
+ { "Sub-Type", "a11.sub_type",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_a11_sub_type_length,
+ { "Sub-Type Length", "a11.sub_type_length",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_a11_serv_opt,
+ { "Service Option", "a11.serviceoption",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_a11_max_num_serv_opt,
+ { "Max number of service instances of Service Option", "a11.serviceoption",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
};
/* Setup protocol subtree array */
@@ -2313,6 +2376,8 @@ proto_reg_handoff_a11(void)
a11_handle = find_dissector("a11");
dissector_add_uint("udp.port", UDP_PORT_3GA11, a11_handle);
+ /* 3GPP2-Service-Option-Profile(74) */
+ radius_register_avp_dissector(VENDOR_THE3GPP2, 74, dissect_3gpp2_service_option_profile);
/* 3GPP2-Authorized-Flow-Profile-IDs(131) */
radius_register_avp_dissector(VENDOR_THE3GPP2, 131, dissect_3gpp2_radius_aut_flow_profile_ids);
}
diff --git a/radius/dictionary.3gpp2 b/radius/dictionary.3gpp2
index ca35a4149a..7cb38fb90a 100644
--- a/radius/dictionary.3gpp2
+++ b/radius/dictionary.3gpp2
@@ -4,6 +4,7 @@
#
# http://www.3gpp2.org/Public_html/specs/index.cfm
# http://www.3gpp2.org/public_html/Specs/X.S0011-005-D_v2.0_081103.pdf
+# http://www.3gpp2.org/public_html/specs/X.S0011-005-C_v3.0_061030.pdf
# "cdma2000 Wireless IP Network Standard: Accounting Services and 3GPP2 Radius VSAs"
# "3GPP2 X.S0011-005-D"
# "Version: 2.0"
@@ -30,13 +31,13 @@ ATTRIBUTE 3GPP2-Home-Agent-IP-Address 7 octets ## if 4 octets: ipaddr; if 16: i
# A number formed from the concatenation of the home RADIUS IP address,
# the FA IP address, and a 32-bit Unix timestamp, all encoded as 8 ASCII
# hex characters.
-ATTRIBUTE 3GPP2-KeyID 8 string # 20 octets
+ATTRIBUTE 3GPP2-KeyID 8 string # 20 octets
ATTRIBUTE 3GPP2-PCF-IP-Address 9 ipaddr
-ATTRIBUTE 3GPP2-BSID 10 string
-ATTRIBUTE 3GPP2-User-Id 11 integer
-ATTRIBUTE 3GPP2-Forward-FCH-Mux-Option 12 integer
-ATTRIBUTE 3GPP2-Reverse-FCH-Mux-Option 13 integer
+ATTRIBUTE 3GPP2-BSID 10 string
+ATTRIBUTE 3GPP2-User-Id 11 integer
+ATTRIBUTE 3GPP2-Forward-FCH-Mux-Option 12 integer
+ATTRIBUTE 3GPP2-Reverse-FCH-Mux-Option 13 integer
#
# 14-15 ?
#
@@ -46,7 +47,7 @@ ATTRIBUTE 3GPP2-Reverse-Traffic-Type 18 integer
ATTRIBUTE 3GPP2-FCH-Frame-Size 19 integer
ATTRIBUTE 3GPP2-Forward-FCH-RC 20 integer
ATTRIBUTE 3GPP2-Reverse-FCH-RC 21 integer
-ATTRIBUTE 3GPP2-IP-Technology 22 integer
+ATTRIBUTE 3GPP2-IP-Technology 22 integer
ATTRIBUTE 3GPP2-Compulsory-Tunnel-Indicator 23 integer
ATTRIBUTE 3GPP2-Release-Indicator 24 integer
ATTRIBUTE 3GPP2-Bad-PPP-Frame-Count 25 integer
@@ -94,7 +95,7 @@ ATTRIBUTE 3GPP2-Allowed-Diffserv-Marking 73 octets
ATTRIBUTE 3GPP2-Service-Option-Profile 74 octets
# the following don't contain subtypes
-ATTRIBUTE 3GPP2-DNS-Update-Required 75 integer
+ATTRIBUTE 3GPP2-DNS-Update-Required 75 integer
# 76 ?
# 77 ?
ATTRIBUTE 3GPP2-Always-On 78 integer
@@ -106,7 +107,7 @@ ATTRIBUTE 3GPP2-Forward-PDCH-RC 83 integer
ATTRIBUTE 3GPP2-Forward-DCCH-Mux-Option 84 integer
ATTRIBUTE 3GPP2-Reverse-DCCH-Mux-Option 85 integer
ATTRIBUTE 3GPP2-Forward-DCCH-RC 86 integer
-ATTRIBUTE 3GPP2-Reverse-DCCH-RC 87 integer
+ATTRIBUTE 3GPP2-Reverse-DHHC-RC 87 integer
ATTRIBUTE 3GPP2-Session-Termination-Capability 88 integer
ATTRIBUTE 3GPP2-Allowed-Persistent-TFTs 89 integer
@@ -147,49 +148,49 @@ ATTRIBUTE 3GPP2-MIP6-Home-Link-Prefix-Attr-A 128 octets
ATTRIBUTE 3GPP2-Max-Authorized-Aggr-Bandwidth 130 integer
# The next set of attributes contain sub-types
-ATTRIBUTE 3GPP2-Authorized-Flow-Profile-IDs 131 octets
-ATTRIBUTE 3GPP2-Granted-QoS-Parameters 132 octets
+ATTRIBUTE 3GPP2-Authorized-Flow-Profile-IDs 131 octets
+ATTRIBUTE 3GPP2-Granted-QoS-Parameters 132 octets
-ATTRIBUTE 3GPP2-Maximum-Per-Flow-Priority 133 integer
-ATTRIBUTE 3GPP2-MIP6-Authenticator 134 octets
+ATTRIBUTE 3GPP2-Maximum-Per-Flow-Priority 133 integer
+ATTRIBUTE 3GPP2-MIP6-Authenticator 134 octets
-ATTRIBUTE 3GPP2-MIP6-MAC-Mobility-Data 138 octets
-ATTRIBUTE 3GPP2-Inter-User-Priority 139 integer
+ATTRIBUTE 3GPP2-MIP6-MAC-Mobility-Data 138 octets
+ATTRIBUTE 3GPP2-Inter-User-Priority 139 integer
ATTRIBUTE 3GPP2-MIP6-Home-Agent-Address-Attr-B 140 ipv6addr
-ATTRIBUTE 3GPP2-MIP6-HOA-Received-From-BU 141 ipv6addr
-ATTRIBUTE 3GPP2-Carrier-ID 142 octets
-ATTRIBUTE 3GPP2-GMT-Time-Zone-Offset 143 integer
+ATTRIBUTE 3GPP2-MIP6-HOA-Received-From-BU 141 ipv6addr
+ATTRIBUTE 3GPP2-Carrier-ID 142 octets
+ATTRIBUTE 3GPP2-GMT-Time-Zone-Offset 143 integer
# contains subtypes
-ATTRIBUTE 3GPP2-Flow-ID-Parameter 144 octets
+ATTRIBUTE 3GPP2-Flow-ID-Parameter 144 octets
-ATTRIBUTE 3GPP2-Flow-Status 145 integer
+ATTRIBUTE 3GPP2-Flow-Status 145 integer
ATTRIBUTE 3GPP2-Filtered-Octet-Count-Terminating 146 integer
ATTRIBUTE 3GPP2-Filtered-Octet-Count-Originating 147 integer
-ATTRIBUTE 3GPP2-RSVP-Inbound-Octet-Count 162 integer
-ATTRIBUTE 3GPP2-RSVP-Outbound-Octet-Count 163 integer
-ATTRIBUTE 3GPP2-RSVP-Inbound-Packet-Count 164 integer
-ATTRIBUTE 3GPP2-RSVP-Outbound-Packet-Count 165 integer
+ATTRIBUTE 3GPP2-RSVP-Inbound-Octet-Count 162 integer
+ATTRIBUTE 3GPP2-RSVP-Outbound-Octet-Count 163 integer
+ATTRIBUTE 3GPP2-RSVP-Inbound-Packet-Count 164 integer
+ATTRIBUTE 3GPP2-RSVP-Outbound-Packet-Count 165 integer
-ATTRIBUTE 3GPP2-HA-Request 168 integer
-ATTRIBUTE 3GPP2-HA-Authorised 169 integer
-ATTRIBUTE 3GPP2-IP-Ver-Authorised 172 integer
-ATTRIBUTE 3GPP2-MIPv4-Mesg-Id 173 string
+ATTRIBUTE 3GPP2-HA-Request 168 integer
+ATTRIBUTE 3GPP2-HA-Authorised 169 integer
+ATTRIBUTE 3GPP2-IP-Ver-Authorised 172 integer
+ATTRIBUTE 3GPP2-MIPv4-Mesg-Id 173 string
ATTRIBUTE 3GPP2-MIP6-HA-Local-Assignment-Capblty 179 integer
-ATTRIBUTE 3GPP2-Accounting-Mode 198 integer ## ??
+ATTRIBUTE 3GPP2-Accounting-Mode 198 integer ## ??
ATTRIBUTE 3GPP2-HAAA-MIP6-HA-Protocol-Capblty-Ind 203 integer
-ATTRIBUTE 3GPP2-VAAA-Assigned-MIP6-HA 205 ipv6addr
-ATTRIBUTE 3GPP2-VAAA-Assigned-MIP6-HL 206 octets
+ATTRIBUTE 3GPP2-VAAA-Assigned-MIP6-HA 205 ipv6addr
+ATTRIBUTE 3GPP2-VAAA-Assigned-MIP6-HL 206 octets
ATTRIBUTE 3GPP2-VAAA-MIP6-HA-Protocol-Capblty-Ind 207 integer
VALUE 3GPP2-Airlink-Record-Type Connection-Setup 1
-VALUE 3GPP2-Airlink-Record-Type Active-Start 2
-VALUE 3GPP2-Airlink-Record-Type Active-Stop 3
+VALUE 3GPP2-Airlink-Record-Type Active-Start 2
+VALUE 3GPP2-Airlink-Record-Type Active-Stop 3
VALUE 3GPP2-Airlink-Record-Type Short-Data-Burst 4
END-VENDOR 3GPP2