diff --git a/asn1/ansi_map/packet-ansi_map-template.c b/asn1/ansi_map/packet-ansi_map-template.c index 6e5023d76d..470c93a9fe 100644 --- a/asn1/ansi_map/packet-ansi_map-template.c +++ b/asn1/ansi_map/packet-ansi_map-template.c @@ -326,7 +326,14 @@ static gint ett_cdmachanneldata = -1; static gint ett_cdmastationclassmark = -1; static gint ett_channeldata = -1; static gint ett_confidentialitymodes = -1; +static gint ett_CDMA2000HandoffInvokeIOSData = -1; +static gint ett_CDMA2000HandoffResponseIOSData = -1; static gint ett_originationtriggers = -1; +static gint ett_pacaindicator = -1; +static gint ett_callingpartyname = -1; +static gint ett_triggercapability = -1; +static gint ett_winoperationscapability = -1; +static gint ett_controlnetworkid = -1; static gint ett_transactioncapability = -1; static gint ett_cdmaserviceoption = -1; static gint ett_systemcapabilities = -1; @@ -1226,38 +1233,38 @@ dissect_ansi_map_cdmacallmode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre item = get_ber_last_created_item(); subtree = proto_item_add_subtree(item, ett_mscid); - /* Call Mode (octet 1, bit A) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cdma, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit B) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_amps, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit C) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_namps, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit D) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls1, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit E) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls2, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit F) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls3, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit G) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls4, tvb, offset, 1, FALSE); /* Call Mode (octet 1, bit H) */ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls5, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit G) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls4, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit F) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls3, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit E) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls2, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit D) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls1, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit C) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_namps, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit B) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_amps, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit A) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cdma, tvb, offset, 1, FALSE); length--; if ( length == 0) return; offset++; - /* Call Mode (octet 2, bit A) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls6, tvb, offset, 1, FALSE); - /* Call Mode (octet 2, bit B) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls7, tvb, offset, 1, FALSE); - /* Call Mode (octet 2, bit C) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls8, tvb, offset, 1, FALSE); - /* Call Mode (octet 2, bit D) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls9, tvb, offset, 1, FALSE); /* Call Mode (octet 2, bit E) */ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls10, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit D) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls9, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit C) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls8, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit B) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls7, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit A) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls6, tvb, offset, 1, FALSE); } /* 6.5.2.30 CDMAChannelData */ @@ -2083,7 +2090,7 @@ dissect_ansi_map_pacaindicator(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_pacaindicator); /* PACA Level (octet 1, bits B-E) */ proto_tree_add_item(subtree, hf_ansi_map_PACA_Level, tvb, offset, 1, FALSE); /* Permanent Activation (PA) (octet 1, bit A) */ @@ -3001,7 +3008,7 @@ dissect_ansi_map_callingpartyname(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_callingpartyname); /* Availability (octet 1, bit E) N.S0012-0 v 1.0*/ /* Presentation Status (octet 1, bits A and B) */ @@ -3053,7 +3060,7 @@ dissect_ansi_map_triggercapability(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_triggercapability); /* O_No_Answer (ONA) (octet 1, bit H)*/ @@ -3136,7 +3143,7 @@ dissect_ansi_map_winoperationscapability(tvbuff_t *tvb, packet_info *pinfo, prot proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_winoperationscapability); /* PositionRequest (POS) (octet 1, bit C) */ proto_tree_add_item(subtree, hf_ansi_map_winoperationscapability_pos, tvb, offset, 1, FALSE); @@ -3156,7 +3163,7 @@ dissect_ansi_map_controlnetworkid(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_controlnetworkid); /* MarketID octet 1 and 2 */ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, FALSE); offset = offset + 2; @@ -4419,29 +4426,29 @@ void proto_register_ansi_map(void) { FT_UINT8, BASE_DEC, VALS(ansi_map_cdmachanneldata_band_cls_vals), 0x7c, "Band Class", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b6, - { "Long Code Mask MSB (byte 6)", "ansi_map.cdmachanneldata.lc_mask_b6", + { "Long Code Mask (byte 6) MSB", "ansi_map.cdmachanneldata.lc_mask_b6", FT_UINT8, BASE_HEX, NULL, 0x03, "Long Code Mask MSB (byte 6)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b5, { "Long Code Mask (byte 5)", "ansi_map.cdmachanneldata.lc_mask_b5", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 5)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b4, { "Long Code Mask (byte 4)", "ansi_map.cdmachanneldata.lc_mask_b4", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 4)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b3, { "Long Code Mask (byte 3)", "ansi_map.cdmachanneldata.lc_mask_b3", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 3)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b2, { "Long Code Mask (byte 2)", "ansi_map.cdmachanneldata.lc_mask_b2", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 2)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b1, { "Long Code Mask LSB(byte 1)", "ansi_map.cdmachanneldata.lc_mask_b1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Long Code Mask LSB(byte 1)", HFILL }}, + FT_UINT8, BASE_HEX, NULL, 0xff, + "Long Code Mask (byte 1)LSB", HFILL }}, {&hf_ansi_map_cdmachanneldata_np_ext, { "NP EXT", "ansi_map.cdmachanneldata.np_ext", FT_BOOLEAN, 8, NULL,0x80, @@ -4748,7 +4755,14 @@ void proto_register_ansi_map(void) { &ett_cdmastationclassmark, &ett_channeldata, &ett_confidentialitymodes, + &ett_CDMA2000HandoffInvokeIOSData, + &ett_CDMA2000HandoffResponseIOSData, &ett_originationtriggers, + &ett_pacaindicator, + &ett_callingpartyname, + &ett_triggercapability, + &ett_winoperationscapability, + &ett_controlnetworkid, &ett_transactioncapability, &ett_cdmaserviceoption, &ett_systemcapabilities, diff --git a/epan/dissectors/packet-ansi_a.c b/epan/dissectors/packet-ansi_a.c index 430f88c976..cdf4ae92c8 100644 --- a/epan/dissectors/packet-ansi_a.c +++ b/epan/dissectors/packet-ansi_a.c @@ -10904,6 +10904,60 @@ static void (*dtap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, g NULL, /* NONE */ }; +/* Utillity function to dissect CDMA200 A1 elements in ANSI MAP messages */ +void +dissect_cdma2000_a1_elements(tvbuff_t *tvb, _U_ packet_info *pinfo, proto_tree *tree, guint32 offset, guint len){ + guint32 curr_offset; + guint32 consumed; + guint curr_len; + + curr_offset = offset; + curr_len = len; + /* 0x22 IS-95 Channel Identity */ + ELEM_OPT_TLV(ANSI_A_E_IS95_CHAN_ID, ""); + /* 0x09 IS-2000 Channel Identity */ + ELEM_OPT_TLV(ANSI_A_E_IS2000_CHAN_ID, ""); + /* 0x0f IS-2000 Non-Negotiable Service */ + ELEM_OPT_TLV(ANSI_A_E_IS2000_NN_SCR, ""); + /* 0x62 IS-95/IS-2000 Cause Value */ + ELEM_OPT_TLV(ANSI_A_E_IS2000_CAUSE, ""); + /* 0x10 Extended Handoff Direction Parameters */ + ELEM_OPT_TLV(ANSI_A_E_EXT_HO_DIR_PARAMS, ""); + /* 0x16 Hard Handoff Parameters */ + ELEM_OPT_TLV(ANSI_A_E_HHO_PARAMS, ""); + /* 0x11 IS-2000 Mobile Capabilities */ + ELEM_OPT_TLV(ANSI_A_E_IS2000_MOB_CAP, ""); + /* 0x0e IS-2000 Service Configuration Record */ + ELEM_OPT_TLV(ANSI_A_E_IS2000_SCR, ""); + /* 0x14 PDSN IP Address */ + switch (a_variant) + { + case A_VARIANT_IOS401: + ELEM_OPT_TLV(ANSI_A_E_PDSN_IP_ADDR, ""); + break; + case A_VARIANT_IOS501: + ELEM_OPT_TLV(ANSI_A_E_S_PDSN_ADDR, ""); + break; + } + /* 0x18 Protocol Type */ + ELEM_OPT_TLV(ANSI_A_E_PTYPE, ""); + ELEM_OPT_TLV(ANSI_A_E_QOS_PARAMS, ""); + /* 0x2a Service Option List */ + ELEM_OPT_TLV(ANSI_A_E_SO_LIST, ""); + /* Source RNC to Target RNC Transparent Container */ + ELEM_OPT_TLV(ANSI_A_E_SRNC_TRNC_TC, ""); + /* 0x3a Target RNC to source RNC Transparent Container */ + ELEM_OPT_TLV(ANSI_A_E_TRNC_SRNC_TC, ""); + /* Slot Cycle Index */ + ELEM_OPT_TLV(ANSI_A_E_SCI, ""); /* XXX TV used elswhere?? */ + ELEM_OPT_TLV(ANSI_A_E_ACC_NET_ID, "");/* XXX TV used elswhere?? */ + ELEM_OPT_TLV(ANSI_A_E_IS2000_CHAN_ID_3X, ""); + /* 0x2a Service Option List ( XX in Response this is mentioned last + * need to repete it here? + */ + ELEM_OPT_TLV(ANSI_A_E_SO_LIST, ""); +} + /* GENERIC MAP DISSECTOR FUNCTIONS */ static void diff --git a/epan/dissectors/packet-ansi_a.h b/epan/dissectors/packet-ansi_a.h index ae18cc9b55..ebbe136acb 100644 --- a/epan/dissectors/packet-ansi_a.h +++ b/epan/dissectors/packet-ansi_a.h @@ -78,3 +78,5 @@ WS_VAR_IMPORT const ext_value_string_t *ansi_a_elem_1_strings; * array */ #define ANSI_A_MAX_NUM_IOS_ELEM_1_STRINGS 255 + +void dissect_cdma2000_a1_elements(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len); diff --git a/epan/dissectors/packet-ansi_map.c b/epan/dissectors/packet-ansi_map.c index 4ed47013c4..0b9130d234 100644 --- a/epan/dissectors/packet-ansi_map.c +++ b/epan/dissectors/packet-ansi_map.c @@ -700,7 +700,14 @@ static gint ett_cdmachanneldata = -1; static gint ett_cdmastationclassmark = -1; static gint ett_channeldata = -1; static gint ett_confidentialitymodes = -1; +static gint ett_CDMA2000HandoffInvokeIOSData = -1; +static gint ett_CDMA2000HandoffResponseIOSData = -1; static gint ett_originationtriggers = -1; +static gint ett_pacaindicator = -1; +static gint ett_callingpartyname = -1; +static gint ett_triggercapability = -1; +static gint ett_winoperationscapability = -1; +static gint ett_controlnetworkid = -1; static gint ett_transactioncapability = -1; static gint ett_cdmaserviceoption = -1; static gint ett_systemcapabilities = -1; @@ -916,7 +923,7 @@ static gint ett_ansi_map_MobileStationMSID = -1; static gint ett_ansi_map_NewlyAssignedMSID = -1; /*--- End of included file: packet-ansi_map-ett.c ---*/ -#line 335 "packet-ansi_map-template.c" +#line 342 "packet-ansi_map-template.c" /* Global variables */ static dissector_handle_t data_handle=NULL; @@ -1811,38 +1818,38 @@ dissect_ansi_map_cdmacallmode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre item = get_ber_last_created_item(); subtree = proto_item_add_subtree(item, ett_mscid); - /* Call Mode (octet 1, bit A) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cdma, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit B) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_amps, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit C) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_namps, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit D) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls1, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit E) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls2, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit F) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls3, tvb, offset, 1, FALSE); - /* Call Mode (octet 1, bit G) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls4, tvb, offset, 1, FALSE); /* Call Mode (octet 1, bit H) */ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls5, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit G) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls4, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit F) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls3, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit E) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls2, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit D) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls1, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit C) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_namps, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit B) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_amps, tvb, offset, 1, FALSE); + /* Call Mode (octet 1, bit A) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cdma, tvb, offset, 1, FALSE); length--; if ( length == 0) return; offset++; - /* Call Mode (octet 2, bit A) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls6, tvb, offset, 1, FALSE); - /* Call Mode (octet 2, bit B) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls7, tvb, offset, 1, FALSE); - /* Call Mode (octet 2, bit C) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls8, tvb, offset, 1, FALSE); - /* Call Mode (octet 2, bit D) */ - proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls9, tvb, offset, 1, FALSE); /* Call Mode (octet 2, bit E) */ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls10, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit D) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls9, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit C) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls8, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit B) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls7, tvb, offset, 1, FALSE); + /* Call Mode (octet 2, bit A) */ + proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls6, tvb, offset, 1, FALSE); } /* 6.5.2.30 CDMAChannelData */ @@ -2668,7 +2675,7 @@ dissect_ansi_map_pacaindicator(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_pacaindicator); /* PACA Level (octet 1, bits B-E) */ proto_tree_add_item(subtree, hf_ansi_map_PACA_Level, tvb, offset, 1, FALSE); /* Permanent Activation (PA) (octet 1, bit A) */ @@ -3586,7 +3593,7 @@ dissect_ansi_map_callingpartyname(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_callingpartyname); /* Availability (octet 1, bit E) N.S0012-0 v 1.0*/ /* Presentation Status (octet 1, bits A and B) */ @@ -3638,7 +3645,7 @@ dissect_ansi_map_triggercapability(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_triggercapability); /* O_No_Answer (ONA) (octet 1, bit H)*/ @@ -3721,7 +3728,7 @@ dissect_ansi_map_winoperationscapability(tvbuff_t *tvb, packet_info *pinfo, prot proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_winoperationscapability); /* PositionRequest (POS) (octet 1, bit C) */ proto_tree_add_item(subtree, hf_ansi_map_winoperationscapability_pos, tvb, offset, 1, FALSE); @@ -3741,7 +3748,7 @@ dissect_ansi_map_controlnetworkid(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree *subtree; item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_originationtriggers); + subtree = proto_item_add_subtree(item, ett_controlnetworkid); /* MarketID octet 1 and 2 */ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, FALSE); offset = offset + 2; @@ -5429,7 +5436,7 @@ static int dissect_reauthenticationReport_impl(packet_info *pinfo, proto_tree *t static int dissect_ansi_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 385 "ansi_map.cnf" +#line 411 "ansi_map.cnf" tvbuff_t *parameter_tvb = NULL; guint8 ServiceIndicator; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -5930,8 +5937,21 @@ static int dissect_alertCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t static int dissect_ansi_map_CDMA2000HandoffInvokeIOSData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +#line 385 "ansi_map.cnf" + tvbuff_t *parameter_tvb = NULL; + proto_item *item; + proto_tree *subtree; + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); + ¶meter_tvb); + + if (parameter_tvb){ + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_CDMA2000HandoffInvokeIOSData); + dissect_cdma2000_a1_elements(parameter_tvb, pinfo, subtree, 0, tvb_length_remaining(tvb,0)); + } + + return offset; } @@ -6616,8 +6636,21 @@ static int dissect_bsmcstatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_ static int dissect_ansi_map_CDMA2000HandoffResponseIOSData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +#line 398 "ansi_map.cnf" + tvbuff_t *parameter_tvb = NULL; + proto_item *item; + proto_tree *subtree; + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); + ¶meter_tvb); + + if (parameter_tvb){ + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_CDMA2000HandoffResponseIOSData); + dissect_cdma2000_a1_elements(parameter_tvb, pinfo, subtree, 0, tvb_length_remaining(tvb,0)); + } + + return offset; } @@ -13384,7 +13417,7 @@ static void dissect_OriginationRequestRes_PDU(tvbuff_t *tvb, packet_info *pinfo, /*--- End of included file: packet-ansi_map-fn.c ---*/ -#line 3363 "packet-ansi_map-template.c" +#line 3370 "packet-ansi_map-template.c" static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { @@ -14444,29 +14477,29 @@ void proto_register_ansi_map(void) { FT_UINT8, BASE_DEC, VALS(ansi_map_cdmachanneldata_band_cls_vals), 0x7c, "Band Class", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b6, - { "Long Code Mask MSB (byte 6)", "ansi_map.cdmachanneldata.lc_mask_b6", + { "Long Code Mask (byte 6) MSB", "ansi_map.cdmachanneldata.lc_mask_b6", FT_UINT8, BASE_HEX, NULL, 0x03, "Long Code Mask MSB (byte 6)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b5, { "Long Code Mask (byte 5)", "ansi_map.cdmachanneldata.lc_mask_b5", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 5)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b4, { "Long Code Mask (byte 4)", "ansi_map.cdmachanneldata.lc_mask_b4", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 4)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b3, { "Long Code Mask (byte 3)", "ansi_map.cdmachanneldata.lc_mask_b3", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 3)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b2, { "Long Code Mask (byte 2)", "ansi_map.cdmachanneldata.lc_mask_b2", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT8, BASE_HEX, NULL, 0xff, "Long Code Mask (byte 2)", HFILL }}, {&hf_ansi_map_cdmachanneldata_lc_mask_b1, { "Long Code Mask LSB(byte 1)", "ansi_map.cdmachanneldata.lc_mask_b1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Long Code Mask LSB(byte 1)", HFILL }}, + FT_UINT8, BASE_HEX, NULL, 0xff, + "Long Code Mask (byte 1)LSB", HFILL }}, {&hf_ansi_map_cdmachanneldata_np_ext, { "NP EXT", "ansi_map.cdmachanneldata.np_ext", FT_BOOLEAN, 8, NULL,0x80, @@ -16205,7 +16238,7 @@ void proto_register_ansi_map(void) { "ansi_map.MobileStationIMSI", HFILL }}, /*--- End of included file: packet-ansi_map-hfarr.c ---*/ -#line 4735 "packet-ansi_map-template.c" +#line 4742 "packet-ansi_map-template.c" }; /* List of subtrees */ @@ -16222,7 +16255,14 @@ void proto_register_ansi_map(void) { &ett_cdmastationclassmark, &ett_channeldata, &ett_confidentialitymodes, + &ett_CDMA2000HandoffInvokeIOSData, + &ett_CDMA2000HandoffResponseIOSData, &ett_originationtriggers, + &ett_pacaindicator, + &ett_callingpartyname, + &ett_triggercapability, + &ett_winoperationscapability, + &ett_controlnetworkid, &ett_transactioncapability, &ett_cdmaserviceoption, &ett_systemcapabilities, @@ -16437,7 +16477,7 @@ void proto_register_ansi_map(void) { &ett_ansi_map_NewlyAssignedMSID, /*--- End of included file: packet-ansi_map-ettarr.c ---*/ -#line 4756 "packet-ansi_map-template.c" +#line 4770 "packet-ansi_map-template.c" };