diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-12-27 10:15:00 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-12-27 10:15:00 +0000 |
commit | 35e767e28a1549433579157ea4c68a5fd8130314 (patch) | |
tree | 3e828d7f2d495a28386560426045f344751ab587 | |
parent | 4dbf893401322668b95863f86aaeba85d3d0e1eb (diff) | |
download | wireshark-35e767e28a1549433579157ea4c68a5fd8130314.tar.gz |
Dissect Service Option Profile.
svn path=/trunk/; revision=40297
-rw-r--r-- | epan/dissectors/packet-3g-a11.c | 67 | ||||
-rw-r--r-- | radius/dictionary.3gpp2 | 65 |
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 |