add "reserved for profiles" comments
[obnox/wireshark/wip.git] / plugins / profinet / packet-dcom-cba-acco.c
index f967521dbb45ee41d256384b26cefed143b34344..f99f21ded245b54213b3eba26ead908e0ccee968 100644 (file)
@@ -327,9 +327,12 @@ typedef struct server_disconnectme_call_s {
 
 GList *cba_pdevs;
 
+/* as we are a plugin, we cannot get this from libwireshark! */
+const true_false_string acco_flags_set_truth = { "Set", "Not set" };
 
-void
-cba_connection_dump(cba_connection_t *conn, char *role)
+#if 0
+static void
+cba_connection_dump(cba_connection_t *conn, const char *role)
 {
     if(conn->qostype != 0x30) {
         g_warning("   %s#%5u: CID:0x%8x PID:0x%8x PItem:\"%s\" Type:%s QoS:%s/%u Ret:%s Data#%5u-#%5u", 
@@ -406,10 +409,11 @@ cba_object_dump(void)
         }
     }
 }
+#endif
 
 
 cba_pdev_t *
-cba_pdev_find(packet_info *pinfo, const char *ip, e_uuid_t *ipid)
+cba_pdev_find(packet_info *pinfo, const guint8 *ip, e_uuid_t *ipid)
 {
     cba_pdev_t *pdev;
     dcom_interface_t *interf;
@@ -433,7 +437,7 @@ cba_pdev_find(packet_info *pinfo, const char *ip, e_uuid_t *ipid)
 
 
 cba_pdev_t *
-cba_pdev_add(packet_info *pinfo, const char *ip)
+cba_pdev_add(packet_info *pinfo, const guint8 *ip)
 {
     GList *cba_iter;
     cba_pdev_t *pdev;
@@ -533,7 +537,7 @@ cba_ldev_add(packet_info *pinfo, cba_pdev_t *pdev, const char *name)
 
 
 cba_ldev_t *
-cba_ldev_find(packet_info *pinfo, const gchar *ip, e_uuid_t *ipid) {
+cba_ldev_find(packet_info *pinfo, const guint8 *ip, e_uuid_t *ipid) {
     /*dcerpc_info *info = (dcerpc_info *)pinfo->private_data;*/
     dcom_interface_t *interf;
     cba_ldev_t *ldev;
@@ -560,7 +564,7 @@ cba_ldev_find(packet_info *pinfo, const gchar *ip, e_uuid_t *ipid) {
 }
 
 
-cba_ldev_t *
+static cba_ldev_t *
 cba_acco_add(packet_info *pinfo, const char *acco)
 {
     char *ip_str;
@@ -584,7 +588,7 @@ cba_acco_add(packet_info *pinfo, const char *acco)
     }
     ip = g_ntohl(ip);
 
-    pdev = cba_pdev_add(pinfo, (char *) &ip);
+    pdev = cba_pdev_add(pinfo, (guint8 *) &ip);
     delim++;
 
     ldev = cba_ldev_add(pinfo, pdev, delim);
@@ -595,7 +599,7 @@ cba_acco_add(packet_info *pinfo, const char *acco)
 }
 
 
-gboolean
+static gboolean
 cba_packet_in_range(packet_info *pinfo, guint packet_connect, guint packet_disconnect, guint packet_disconnectme)
 {
 
@@ -617,7 +621,7 @@ cba_packet_in_range(packet_info *pinfo, guint packet_connect, guint packet_disco
 }
 
 
-void
+static void
 cba_frame_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, cba_frame_t *frame)
 {
        proto_item *item;
@@ -671,7 +675,7 @@ cba_frame_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, cba_fram
 }
 
 
-cba_frame_t *
+static cba_frame_t *
 cba_frame_connect(packet_info *pinfo, cba_ldev_t *cons_ldev, cba_ldev_t *prov_ldev, 
               guint16 qostype, guint16 qosvalue, const guint8 *consmac, guint16 conscrid, guint16 length)
 {
@@ -718,7 +722,7 @@ cba_frame_connect(packet_info *pinfo, cba_ldev_t *cons_ldev, cba_ldev_t *prov_ld
 }
 
 
-void
+static void
 cba_frame_disconnect(packet_info *pinfo, cba_frame_t *frame)
 {
 
@@ -733,7 +737,7 @@ cba_frame_disconnect(packet_info *pinfo, cba_frame_t *frame)
 }
 
 
-void
+static void
 cba_frame_disconnectme(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, cba_ldev_t *cons_ldev, cba_ldev_t *prov_ldev)
 {
     GList *frames;
@@ -761,7 +765,7 @@ cba_frame_disconnectme(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, cba_
 }
 
 
-cba_frame_t *
+static cba_frame_t *
 cba_frame_find_by_cons(packet_info *pinfo, const guint8 *consmac, guint16 conscrid)
 {
     GList *pdevs;
@@ -797,7 +801,7 @@ cba_frame_find_by_cons(packet_info *pinfo, const guint8 *consmac, guint16 conscr
 }
 
 
-cba_frame_t *
+static cba_frame_t *
 cba_frame_find_by_provcrid(packet_info *pinfo, cba_ldev_t *prov_ldev, guint32 provcrid)
 {
     GList *frames;
@@ -818,13 +822,13 @@ cba_frame_find_by_provcrid(packet_info *pinfo, cba_ldev_t *prov_ldev, guint32 pr
     }
 
        expert_add_info_format(pinfo, NULL, PI_UNDECODED, PI_NOTE, 
-        "Unknown provider frame with ProvCRID:0x%x", provcrid);
+        "Unknown provider frame ProvCRID");
 
     return NULL;
 }
 
 
-void
+static void
 cba_frame_incoming_data(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree _U_, cba_frame_t *frame)
 {
     if(frame->packet_first == 0) {
@@ -838,7 +842,7 @@ cba_frame_incoming_data(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree
 }
 
 
-void
+static void
 cba_connection_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, cba_connection_t *conn)
 {
        proto_item *item;
@@ -893,7 +897,7 @@ cba_connection_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, cba
 }
 
 
-cba_connection_t *
+static cba_connection_t *
 cba_connection_connect(packet_info *pinfo, cba_ldev_t *cons_ldev, cba_ldev_t *prov_ldev, cba_frame_t *cons_frame, 
                    guint16 qostype, guint16 qosvalue, const char *provitem, guint32 consid, guint16 length,
                    guint16 *typedesc, guint16 typedesclen)
@@ -960,7 +964,7 @@ cba_connection_connect(packet_info *pinfo, cba_ldev_t *cons_ldev, cba_ldev_t *pr
 }
 
 
-void
+static void
 cba_connection_disconnect(packet_info *pinfo, cba_connection_t *conn)
 {
     /* XXX - detect multiple disconnects? */
@@ -975,7 +979,7 @@ cba_connection_disconnect(packet_info *pinfo, cba_connection_t *conn)
 }
 
 
-void
+static void
 cba_connection_disconnectme(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, cba_ldev_t *cons_ldev, cba_ldev_t *prov_ldev)
 {
     GList *conns;
@@ -1003,7 +1007,7 @@ cba_connection_disconnectme(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
 }
 
 
-cba_connection_t *
+static cba_connection_t *
 cba_connection_find_by_provid(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree _U_, cba_ldev_t *prov_ldev, guint32 provid)
 {
     GList *cba_iter;
@@ -1021,7 +1025,7 @@ cba_connection_find_by_provid(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree
 }
 
 
-void
+static void
 cba_connection_incoming_data(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree _U_, cba_connection_t *conn)
 {
     if(conn->packet_first == 0) {
@@ -2122,8 +2126,8 @@ dissect_ICBAAccoServerSRT_ConnectCR_rqst(tvbuff_t *tvb, int offset,
        guint16 u16QoSType;
        guint16 u16QoSValue;
        guint8  u8ConsMac[6];
-       guint16 u16CRID;
-       guint16 u16CRLength;
+       guint16 u16CRID = 0;
+       guint16 u16CRLength = 0;
        guint32 u32Flags;
        guint32 u32Count;
        guint32 u32ArraySize;
@@ -2266,7 +2270,7 @@ dissect_ICBAAccoServerSRT_ConnectCR_resp(tvbuff_t *tvb, int offset,
        guint32 u32ProvCRID = 0;
        guint32 u32HResult;
        guint32 u32ArraySize;
-       guint32 u32Idx;
+       guint32 u32Idx = 1;
        guint32 u32Pointer;
        proto_item *sub_item;
        proto_tree *sub_tree;
@@ -2306,7 +2310,6 @@ dissect_ICBAAccoServerSRT_ConnectCR_resp(tvbuff_t *tvb, int offset,
                offset = dissect_dcom_dcerpc_array_size(tvb, offset, pinfo, tree, drep, 
                                                        &u32ArraySize);
 
-               u32Idx = 1;
                while (u32ArraySize--) {
                        /* array of CONNECTOUTCRs */
                        sub_item = proto_tree_add_item(tree, hf_cba_connectoutcr, tvb, offset, 0, FALSE);
@@ -2367,7 +2370,7 @@ dissect_ICBAAccoServerSRT_DisconnectCR_rqst(tvbuff_t *tvb, int offset,
        guint32 u32Count;
        guint32 u32ArraySize;
        guint32 u32Idx;
-       guint32 u32ProvCRID;
+       guint32 u32ProvCRID = 0;
        proto_item *item;
     dcerpc_info *info = (dcerpc_info *)pinfo->private_data;
     cba_ldev_t *prov_ldev;
@@ -3222,7 +3225,7 @@ dissect_CBA_Connection_Data_heur(tvbuff_t *tvb,
     }
 
        if (check_col(pinfo->cinfo, COL_PROTOCOL))
-           col_add_str(pinfo->cinfo, COL_PROTOCOL, "PN-CBA");
+           col_set_str(pinfo->cinfo, COL_PROTOCOL, "PN-CBA");
 
     frame = cba_frame_find_by_cons(pinfo, pinfo->dl_dst.data, u16FrameID);
 
@@ -3263,7 +3266,7 @@ dissect_ICBAAccoCallback_OnDataChanged_rqst(tvbuff_t *tvb, int offset,
 
        /*** the data below is NOT ndr encoded (especially NOT aligned)!!! ***/
        /* dissect PROFINET component data (without header) */
-       next_tvb = tvb_new_subset(tvb, offset, -1, -1);
+       next_tvb = tvb_new_subset_remaining(tvb, offset);
 
        offset += dissect_CBA_Connection_Data(next_tvb, pinfo, tree, cons_ldev, NULL /* frame */);
 
@@ -3421,7 +3424,7 @@ dissect_ICBAAccoServer2_GetConnectionData_resp(tvbuff_t *tvb, int offset,
 
            /*** the data below is NOT ndr encoded (especially NOT aligned)!!! ***/
            /* dissect PROFINET component data (without header) */
-           next_tvb = tvb_new_subset(tvb, offset, -1, -1);
+           next_tvb = tvb_new_subset_remaining(tvb, offset);
 
         offset += dissect_CBA_Connection_Data(next_tvb, pinfo, tree, (call != NULL) ? *call : NULL, NULL /* frame */);
 
@@ -3977,6 +3980,7 @@ dissect_ICBAAccoMgt2_DiagConsConnections_resp(tvbuff_t *tvb, int offset,
        guint16 u16ConnVersion;
        proto_item *sub_item;
        proto_tree *sub_tree;
+        proto_item *state_item;
        guint32 u32SubStart;
        guint32 u32Idx;
        guint32 u32VariableOffset;
@@ -4010,8 +4014,15 @@ dissect_ICBAAccoMgt2_DiagConsConnections_resp(tvbuff_t *tvb, int offset,
                                                                hf_cba_acco_conn_persist, &u16Persistence);
                        offset = dissect_dcom_WORD(tvb, offset, pinfo, sub_tree, drep, 
                                                                hf_cba_acco_conn_version, &u16ConnVersion);
-                       offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep, 
-                                                               hf_cba_acco_conn_error_state, &u32ConnErrorState);
+                        /* connection state */
+/*                     offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep, 
+                                                               hf_cba_acco_conn_error_state, &u32ConnErrorState);*/
+                        offset = dissect_dcom_HRESULT_item(tvb, offset,        pinfo, sub_tree, drep, 
+                                        &u32ConnErrorState, hf_cba_acco_conn_error_state, &state_item);
+                        proto_item_set_text(state_item, "ConnErrorState: %s (0x%x)",
+                            val_to_str(u32ConnErrorState, dcom_hresult_vals, "Unknown (0x%08x)"),
+                            u32ConnErrorState);
+
                        offset = dissect_dcom_indexed_HRESULT(tvb, offset, pinfo, sub_tree, drep, 
                                                                &u32HResult, u32Idx);
 
@@ -4416,7 +4427,7 @@ dissect_ICBAAccoSync_ReadItems_resp(tvbuff_t *tvb, int offset,
 {
        guint32 u32Pointer;
        guint16 u16QC;
-       guint32 u32ArraySize;
+       guint32 u32ArraySize = 0;
        guint32 u32HResult;
        guint32 u32Idx;
        proto_item *sub_item;
@@ -4711,42 +4722,42 @@ proto_register_dcom_cba_acco (void)
 
        static hf_register_info hf_cba_acco_array[] = {
         { &hf_cba_acco_opnum,
-           { "Operation", "cba.acco.opnum", FT_UINT16, BASE_DEC, NULL, 0x0, "Operation", HFILL }},
+           { "Operation", "cba.acco.opnum", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_ping_factor,
-               { "PingFactor", "cba.acco.ping_factor", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "PingFactor", "cba.acco.ping_factor", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_count,
-               { "Count", "cba.acco.count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Count", "cba.acco.count", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_info_max,
-               { "Max", "cba.acco.info_max", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Max", "cba.acco.info_max", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_info_curr,
-               { "Current", "cba.acco.info_curr", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Current", "cba.acco.info_curr", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_rtauto,
-               { "RTAuto", "cba.acco.rtauto", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "RTAuto", "cba.acco.rtauto", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_item,
-               { "Item", "cba.acco.item", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "Item", "cba.acco.item", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_data,
-               { "Data", "cba.acco.data", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "Data", "cba.acco.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_qc,
-               { "QualityCode", "cba.acco.qc", FT_UINT8, BASE_HEX, VALS(cba_acco_qc_vals), 0x0, "", HFILL }},
+               { "QualityCode", "cba.acco.qc", FT_UINT8, BASE_HEX, VALS(cba_acco_qc_vals), 0x0, NULL, HFILL }},
                { &hf_cba_acco_time_stamp,
-               { "TimeStamp", "cba.acco.time_stamp", FT_UINT64, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "TimeStamp", "cba.acco.time_stamp", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_readitemout,
-               { "ReadItemOut", "cba.acco.readitemout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "ReadItemOut", "cba.acco.readitemout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_writeitemin,
-               { "WriteItemIn", "cba.acco.writeitemin", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "WriteItemIn", "cba.acco.writeitemin", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cdb_cookie,
-               { "CDBCookie", "cba.acco.cdb_cookie", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "CDBCookie", "cba.acco.cdb_cookie", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+                /* dcom_hresult_vals from packet-dcom.h doesn't work here, as length is unknown! */
                { &hf_cba_acco_conn_error_state,
-                /* XXX - find out, why VALS doesn't work here! */
-               { "ConnErrorState", "cba.acco.conn_error_state", FT_UINT32, BASE_HEX, NULL /*VALS(dcom_hresult_vals)*/, 0x0, "", HFILL }},
+               { "ConnErrorState", "cba.acco.conn_error_state", FT_UINT32, BASE_HEX, NULL /*VALS(dcom_hresult_vals)*/, 0x0, NULL, HFILL }},
                { &hf_cba_acco_diag_req,
-               { "Request", "cba.acco.diag_req", FT_UINT32, BASE_HEX, VALS(cba_acco_diag_req_vals), 0x0, "", HFILL }},
+               { "Request", "cba.acco.diag_req", FT_UINT32, BASE_HEX, VALS(cba_acco_diag_req_vals), 0x0, NULL, HFILL }},
                { &hf_cba_acco_diag_in_length,
-               { "InLength", "cba.acco.diag_in_length", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "InLength", "cba.acco.diag_in_length", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_diag_out_length,
-               { "OutLength", "cba.acco.diag_out_length", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "OutLength", "cba.acco.diag_out_length", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
            { &hf_cba_acco_diag_data,
-           { "Data", "cba.acco.diag_data", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+           { "Data", "cba.acco.diag_data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
            { &hf_cba_acco_dcom_call,
            { "DcomRuntime", "cba.acco.dcom", FT_BOOLEAN, BASE_NONE, TFS(&cba_acco_call_flags), 0x0, "This is a DCOM runtime context", HFILL }},
            { &hf_cba_acco_srt_call,
@@ -4756,109 +4767,108 @@ proto_register_dcom_cba_acco (void)
 
        static hf_register_info hf_cba_acco_server[] = {
                { &hf_cba_acco_server_pICBAAccoCallback,
-               { "pICBAAccoCallback", "cba.acco.server_pICBAAccoCallback", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "pICBAAccoCallback", "cba.acco.server_pICBAAccoCallback", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_server_first_connect,
-               { "FirstConnect", "cba.acco.server_first_connect", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "FirstConnect", "cba.acco.server_first_connect", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_getprovconnout,
-               { "GETPROVCONNOUT", "cba.acco.getprovconnout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "GETPROVCONNOUT", "cba.acco.getprovconnout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_prov_mac,
-               { "ProviderMAC", "cba.acco.serversrt_prov_mac", FT_ETHER, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "ProviderMAC", "cba.acco.serversrt_prov_mac", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_cons_mac,
-               { "ConsumerMAC", "cba.acco.serversrt_cons_mac", FT_ETHER, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "ConsumerMAC", "cba.acco.serversrt_cons_mac", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_cr_id,
-               { "ConsumerCRID", "cba.acco.serversrt_cr_id", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "ConsumerCRID", "cba.acco.serversrt_cr_id", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_cr_length,
-               { "CRLength", "cba.acco.serversrt_cr_length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "CRLength", "cba.acco.serversrt_cr_length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_cr_flags,
-               { "Flags", "cba.acco.serversrt_cr_flags", FT_UINT32, BASE_HEX, 0, 0x0, "", HFILL }},
-                /* XXX - find out, why TFS doesn't work here! */
+               { "Flags", "cba.acco.serversrt_cr_flags", FT_UINT32, BASE_HEX, 0, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_cr_flags_timestamped,
-               { "Timestamped", "cba.acco.serversrt_cr_flags_timestamped", FT_BOOLEAN, 32, NULL /*TFS (&flags_set_truth)*/, 0x1, "", HFILL }},
+               { "Timestamped", "cba.acco.serversrt_cr_flags_timestamped", FT_BOOLEAN, 32, TFS (&acco_flags_set_truth), 0x1, NULL, HFILL }},
                { &hf_cba_acco_serversrt_cr_flags_reconfigure,
-               { "Reconfigure", "cba.acco.serversrt_cr_flags_reconfigure", FT_BOOLEAN, 32, NULL /*TFS (&flags_set_truth)*/, 0x2, "", HFILL }},
+               { "Reconfigure", "cba.acco.serversrt_cr_flags_reconfigure", FT_BOOLEAN, 32, TFS (&acco_flags_set_truth), 0x2, NULL, HFILL }},
                { &hf_cba_type_desc_len,
-               { "TypeDescLen", "cba.acco.type_desc_len", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "TypeDescLen", "cba.acco.type_desc_len", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_record_length,
-               { "RecordLength", "cba.acco.serversrt_record_length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "RecordLength", "cba.acco.serversrt_record_length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_action,
-               { "Action", "cba.acco.serversrt_action", FT_UINT32, BASE_DEC, VALS(cba_acco_serversrt_action_vals), 0x0, "", HFILL }},
+               { "Action", "cba.acco.serversrt_action", FT_UINT32, BASE_DEC, VALS(cba_acco_serversrt_action_vals), 0x0, NULL, HFILL }},
                { &hf_cba_acco_serversrt_last_connect,
-               { "LastConnect", "cba.acco.serversrt_last_connect", FT_UINT8, BASE_DEC, VALS(cba_acco_serversrt_last_connect_vals), 0x0, "", HFILL }},
+               { "LastConnect", "cba.acco.serversrt_last_connect", FT_UINT8, BASE_DEC, VALS(cba_acco_serversrt_last_connect_vals), 0x0, NULL, HFILL }},
        };
 
        static hf_register_info hf_cba_connectcr_array[] = {
                { &hf_cba_acco_prov_crid,
-               { "ProviderCRID", "cba.acco.prov_crid", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "ProviderCRID", "cba.acco.prov_crid", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
        };
 
        static hf_register_info hf_cba_connect_array[] = {
                { &hf_cba_addconnectionin,
-               { "ADDCONNECTIONIN", "cba.acco.addconnectionin", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "ADDCONNECTIONIN", "cba.acco.addconnectionin", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_addconnectionout,
-               { "ADDCONNECTIONOUT", "cba.acco.addconnectionout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "ADDCONNECTIONOUT", "cba.acco.addconnectionout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_getidout,
-               { "GETIDOUT", "cba.acco.getidout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "GETIDOUT", "cba.acco.getidout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_getconnectionout,
-               { "GETCONNECTIONOUT", "cba.acco.getconnectionout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "GETCONNECTIONOUT", "cba.acco.getconnectionout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_getconsconnout,
-               { "GETCONSCONNOUT", "cba.acco.getconsconnout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "GETCONSCONNOUT", "cba.acco.getconsconnout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_diagconsconnout,
-               { "DIAGCONSCONNOUT", "cba.acco.diagconsconnout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "DIAGCONSCONNOUT", "cba.acco.diagconsconnout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_connectincr,
-               { "CONNECTINCR", "cba.acco.connectincr", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "CONNECTINCR", "cba.acco.connectincr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_connectoutcr,
-               { "CONNECTOUTCR", "cba.acco.connectoutcr", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "CONNECTOUTCR", "cba.acco.connectoutcr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_connectin,
-               { "CONNECTIN", "cba.acco.connectin", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "CONNECTIN", "cba.acco.connectin", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_connectout,
-               { "CONNECTOUT", "cba.acco.connectout", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "CONNECTOUT", "cba.acco.connectout", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_prov_id,
-               { "ProviderID", "cba.acco.conn_prov_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "ProviderID", "cba.acco.conn_prov_id", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_cons_id,
-               { "ConsumerID", "cba.acco.conn_cons_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "ConsumerID", "cba.acco.conn_cons_id", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_version,
-               { "ConnVersion", "cba.acco.conn_version", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "ConnVersion", "cba.acco.conn_version", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_consumer,
-               { "Consumer", "cba.acco.conn_consumer", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "Consumer", "cba.acco.conn_consumer", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_qos_type,
-               { "QoSType", "cba.acco.conn_qos_type", FT_UINT16, BASE_HEX, VALS(cba_qos_type_vals), 0x0, "", HFILL }},
+               { "QoSType", "cba.acco.conn_qos_type", FT_UINT16, BASE_HEX, VALS(cba_qos_type_vals), 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_qos_value,
-               { "QoSValue", "cba.acco.conn_qos_value", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "QoSValue", "cba.acco.conn_qos_value", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_state,
-               { "State", "cba.acco.conn_state", FT_UINT8, BASE_HEX, VALS(cba_acco_conn_state_vals), 0x0, "", HFILL }},
+               { "State", "cba.acco.conn_state", FT_UINT8, BASE_HEX, VALS(cba_acco_conn_state_vals), 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_provider,
-               { "Provider", "cba.acco.conn_provider", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "Provider", "cba.acco.conn_provider", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_provider_item,
-               { "ProviderItem", "cba.acco.conn_provider_item", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "ProviderItem", "cba.acco.conn_provider_item", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_consumer_item,
-               { "ConsumerItem", "cba.acco.conn_consumer_item", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+               { "ConsumerItem", "cba.acco.conn_consumer_item", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_persist,
-               { "Persistence", "cba.acco.conn_persist", FT_UINT16, BASE_HEX, VALS(cba_persist_vals), 0x0, "", HFILL }},
+               { "Persistence", "cba.acco.conn_persist", FT_UINT16, BASE_HEX, VALS(cba_persist_vals), 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_epsilon,
-               { "Epsilon", "cba.acco.conn_epsilon", FT_NONE, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Epsilon", "cba.acco.conn_epsilon", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_conn_substitute,
-               { "Substitute", "cba.acco.conn_substitute", FT_NONE, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Substitute", "cba.acco.conn_substitute", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
        };
 
        static hf_register_info hf_cba_acco_cb[] = {
                { &hf_cba_acco_cb_length,
-               { "Length", "cba.acco.cb_length", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Length", "cba.acco.cb_length", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_version,
-               { "Version", "cba.acco.cb_version", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "Version", "cba.acco.cb_version", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_flags,
-               { "Flags", "cba.acco.cb_flags", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "Flags", "cba.acco.cb_flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_count,
-               { "Count", "cba.acco.cb_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Count", "cba.acco.cb_count", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_conn_data,
-               { "CBA Connection data", "cba.acco.cb_conn_data", FT_NONE, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "CBA Connection data", "cba.acco.cb_conn_data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_item,
-               { "Item", "cba.acco.cb_item", FT_NONE, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Item", "cba.acco.cb_item", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_item_hole,
-               { "Hole", "cba.acco.cb_item_hole", FT_NONE, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Hole", "cba.acco.cb_item_hole", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_item_length,
-               { "Length", "cba.acco.cb_item_length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+               { "Length", "cba.acco.cb_item_length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
                { &hf_cba_acco_cb_item_data,
-               { "Data(Hex)", "cba.acco.cb_item_data", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+               { "Data(Hex)", "cba.acco.cb_item_data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
            { &hf_cba_connect_in,
                { "Connect in frame", "cba.connect_in", FT_FRAMENUM, BASE_NONE,
                    NULL, 0, "This connection Connect was in the packet with this number", HFILL }},