Dissect cdma2000HandoffInvokeIOSData.
authorAnders Broman <anders.broman@ericsson.com>
Fri, 12 Jan 2007 17:50:20 +0000 (17:50 -0000)
committerAnders Broman <anders.broman@ericsson.com>
Fri, 12 Jan 2007 17:50:20 +0000 (17:50 -0000)
svn path=/trunk/; revision=20409

asn1/ansi_map/packet-ansi_map-template.c
epan/dissectors/packet-ansi_a.c
epan/dissectors/packet-ansi_a.h
epan/dissectors/packet-ansi_map.c

index 6e5023d76d72bb2741a257167b270abbfe1f0307..470c93a9fe2cb7dabea49cae2da42740f2c82865 100644 (file)
@@ -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,
index 430f88c976d73d40584a45e9524639fa76bfd0c5..cdf4ae92c83fbb48505673b03bff6b29799ca99b 100644 (file)
@@ -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
index ae18cc9b55e74e7f8f2f1cac5c1e07b012ec09a0..ebbe136acbde5805a7149f6a2863557e09f202fb 100644 (file)
@@ -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);
index 4ed47013c47a46fb7f418ce596bd3a4872bce4f1..0b9130d234bf706e83c7482522f08f213af7a097 100644 (file)
@@ -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);
+                                       &parameter_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);
+                                       &parameter_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"
   };