BAL and Maple Release 2.2
Signed-off-by: Shad Ansari <developer@Carbon.local>
diff --git a/bal_release/src/common/include/bal_utils_msg.h b/bal_release/src/common/include/bal_utils_msg.h
new file mode 100644
index 0000000..d6721fc
--- /dev/null
+++ b/bal_release/src/common/include/bal_utils_msg.h
@@ -0,0 +1,180 @@
+/******************************************************************************
+ *
+ * <:copyright-BRCM:2016:DUAL/GPL:standard
+ *
+ * Copyright (c) 2016 Broadcom
+ * All Rights Reserved
+ *
+ * Unless you and Broadcom execute a separate written software license
+ * agreement governing use of this software, this software is licensed
+ * to you under the terms of the GNU General Public License version 2
+ * (the "GPL"), available at http://www.broadcom.com/licenses/GPLv2.php,
+ * with the following added to such license:
+ *
+ * As a special exception, the copyright holders of this software give
+ * you permission to link this software with independent modules, and
+ * to copy and distribute the resulting executable under terms of your
+ * choice, provided that you also meet, for each linked independent
+ * module, the terms and conditions of the license of that module.
+ * An independent module is a module which is not derived from this
+ * software. The special exception does not apply to any modifications
+ * of the software.
+ *
+ * Not withstanding the above, under no circumstances may you combine
+ * this software in any way with any other Broadcom software provided
+ * under a license other than the GPL, without Broadcom's express prior
+ * written consent.
+ *
+ * :>
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+The message format will look like the following
+
+ -----------------------------------------------------------------------------------
+ | BAL Header | | Payload Data |
+ ----------------------------------|------------------------------------------------
+ | *bcmos_header | | App Header | |
+ -----------------------------------------------------------------------------------
+ | | | version | |
+ | type | msg_type | obj_key | bal_util_ind_flow_t |
+ | | msg_id | status | |
+ -----------------------------------------------------------------------------------
+
+ *The bcmos Header is actually the first field of BAL Header structure (bal_comm_msg_hdr_t)
+
+ type can be:
+ BCMBAL_SWITCH_UTIL_MSG
+ BCMBAL_MAC_UTIL_MSG
+
+ msg_type can be:
+ BAL_MSG_IND,
+ BAL_MSG_AUTO_IND
+
+ msg_id is module specific, but contains two 16 bits fields (OBJECT_ID, OPERATION_ID)
+ see bal_objs.h for OBJECT_ID details
+ The OPERATION_ID should be unique within the OBJECT - see example below
+ bal_msg.h
+
+ status is for indication message to show general results. The value is bcmos_errno.
+
+*********************************************************************************/
+
+/**
+ * @file bal_utils_msg.h
+ *
+ * @brief Common header for messages sent between Utils and Core
+ *
+ * @ingroup apps
+ */
+
+#ifndef _BAL_UTIL_MSG_H_
+#define _BAL_UTIL_MSG_H_
+
+/*@{*/
+
+#include <bal_msg.h>
+#include <stdint.h>
+
+#define BAL_UTIL_MSG_VERSION 1
+
+/* access terminal request list,
+ */
+typedef enum
+{
+ BAL_UTIL_OPER_ACC_TERM_CONNECT,
+ BAL_UTIL_OPER_ACC_TERM_DISCONNECT
+} bal_util_oper_acc_term;
+
+/* subscriber terminal request list,
+ */
+typedef enum
+{
+ BAL_UTIL_OPER_SUB_TERM_ADD,
+ BAL_UTIL_OPER_SUB_TERM_REMOVE,
+ BAL_UTIL_OPER_SUB_TERM_CLEAR,
+ BAL_UTIL_OPER_SUB_TERM_DISCOVERY
+} bal_util_oper_sub_term;
+
+/* interface request list,
+ */
+typedef enum
+{
+ BAL_UTIL_OPER_IF_UP,
+ BAL_UTIL_OPER_IF_DOWN
+} bal_util_oper_if;
+
+/* flow request list,
+ */
+typedef enum
+{
+ BAL_UTIL_OPER_FLOW_ADD,
+ BAL_UTIL_OPER_FLOW_REMOVE,
+ BAL_UTIL_OPER_FLOW_CLEAR
+} bal_util_oper_flow;
+
+typedef enum
+{
+ BAL_UTIL_FLOW_IND_SEND_NONE,
+ BAL_UTIL_FLOW_IND_SEND_SUCCESS,
+ BAL_UTIL_FLOW_IND_SEND_FAIL
+} bal_util_flow_ind;
+
+/* group request list,
+ */
+typedef enum
+{
+ BAL_UTIL_OPER_GROUP_CREATE,
+ BAL_UTIL_OPER_GROUP_ADD,
+ BAL_UTIL_OPER_GROUP_REMOVE,
+ BAL_UTIL_OPER_GROUP_SET,
+ BAL_UTIL_OPER_GROUP_DESTROY
+} bal_util_oper_group;
+
+typedef enum
+{
+ BAL_UTIL_OPER_AGG_PORT_ADD,
+ BAL_UTIL_OPER_AGG_PORT_REMOVE,
+ BAL_UTIL_OPER_AGG_PORT_CLEAR
+} bal_util_oper_agg_port;
+
+/* Macro to retrieve the name string of the GROUP oper */
+#define BCMBAL_UTIL_GROUP_OPER_STR_GET(__op_type__) \
+ ( BAL_UTIL_OPER_GROUP_CREATE == __op_type__ ) ? "create" : \
+ ( BAL_UTIL_OPER_GROUP_ADD == __op_type__ ) ? "add" : \
+ ( BAL_UTIL_OPER_GROUP_REMOVE == __op_type__ ) ? "remove" : \
+ ( BAL_UTIL_OPER_GROUP_SET == __op_type__ ) ? "set" : \
+ ( BAL_UTIL_OPER_GROUP_DESTROY == __op_type__ ) ? "destroy" : \
+ "unknown"
+
+/* bal_app_msg_obj_key_t allow applications to id which instance of object
+ * this message should be processed
+ */
+typedef union bal_util_msg_obj_key
+{
+ bcmbal_access_terminal_key acc_term_key;
+ bcmbal_interface_key if_key;
+ bcmbal_subscriber_terminal_key sub_term_key;
+ bcmbal_flow_key flow_key;
+ bcmbal_group_key group_key;
+ bcmbal_tm_sched_key tm_sched_key;
+} bal_util_msg_obj_key;
+
+#define BCMBAL_INVALID_TUNNEL_ID 0xffffffff
+
+ /* indication message header */
+ typedef struct bal_util_msg_ind
+ {
+ bal_comm_msg_hdr comm_hdr; /* Communication header */
+ uint32_t version; /* version of the app message format */
+ bal_util_msg_obj_key obj_key;
+ int32_t status; /* bcmos_errno */
+ /* Optional custom BAL MAC/SWITCH UTIL indication data follows */
+ char data[0];
+ } bal_util_msg_ind;
+
+ /* auto indication message header */
+ typedef bal_util_msg_ind bal_util_msg_auto_ind;
+
+#endif /* _BAL_UTIL_MSG_H */