Dissect Service Option Profile.
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 27 Dec 2011 10:15:00 +0000 (10:15 +0000)
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 27 Dec 2011 10:15:00 +0000 (10:15 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@40297 f5534014-38df-0310-8fa8-9805f1628bb7

epan/dissectors/packet-3g-a11.c
radius/dictionary.3gpp2

index 2b59402953a0cb44d0b48ebb43bb34005750e671..594cc94b309070873e810887530e4328f80edb62 100644 (file)
@@ -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_)
 {
@@ -2261,6 +2299,31 @@ proto_register_a11(void)
            { "Value",   "a11.aut_flow_prof.value",
              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 }
          },
     };
 
@@ -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);
 }
index ca35a4149a42bce4f3bc64624bd15cf048fdcb0e..7cb38fb90a20542bad9904a3de9ad8ecc1729e27 100644 (file)
@@ -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