Add Broadcom / Netgear changes from RAXE 1.0.0.48
[project/bcm63xx/u-boot.git] / arch / arm / mach-bcmbca / rdp / rdd_defs.h
diff --git a/arch/arm/mach-bcmbca/rdp/rdd_defs.h b/arch/arm/mach-bcmbca/rdp/rdd_defs.h
new file mode 100755 (executable)
index 0000000..42df204
--- /dev/null
@@ -0,0 +1,1380 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2013 Broadcom
+ */
+/*
+    
+*/
+
+#ifndef _BL_LILAC_DRV_RUNNER_RDD_DEFS_H
+#define _BL_LILAC_DRV_RUNNER_RDD_DEFS_H
+
+#include "rdpa_types.h"
+#include "rdpa_cpu_basic.h"
+#include "rdd_data_structures_auto.h"
+
+/* Dependency in rdd_wl4908_partial_legacy_conv.h */
+typedef enum {
+    rdd_egress_phy_eth_lan = 0,
+    rdd_egress_phy_wlan,
+    rdd_egress_phy_wan_start,
+    rdd_egress_phy_eth_wan = rdd_egress_phy_wan_start,
+    rdd_egress_phy_dsl,
+    rdd_egress_phy_gpon = rdd_egress_phy_eth_wan,
+    rdd_egress_phy_max   /* can only support 4 types */
+} rdd_egress_phy_t;
+
+#if defined(WL4908)
+#include "rdd_wl4908_partial_legacy_conv.h"
+#endif
+
+/* Runner Device Driver Errors */
+typedef enum
+{
+    BL_LILAC_RDD_OK                                                          = 0,
+    BL_LILAC_RDD_ERROR_MALLOC_FAILED                                         = 10,
+    BL_LILAC_RDD_ERROR_ILLEGAL_BRIDGE_PORT_ID                                = 11,
+    BL_LILAC_RDD_ERROR_ILLEGAL_EMAC_ID                                       = 12,
+    BL_LILAC_RDD_ERROR_ILLEGAL_QUEUE_ID                                      = 13,
+    BL_LILAC_RDD_ERROR_ILLEGAL_WAN_CHANNEL_ID                                = 14,
+    BL_LILAC_RDD_ERROR_ILLEGAL_RATE_CONTROLLER_ID                            = 15,
+    BL_LILAC_RDD_ERROR_ILLEGAL_RATE_SHAPER_ID                                = 16,
+    BL_LILAC_RDD_ERROR_ILLEGAL_POLICER_ID                                    = 17,
+    BL_LILAC_RDD_ERROR_ILLEGAL_DIRECTION                                     = 18,
+    BL_LILAC_RDD_ERROR_ILLEGAL_RUNNER_ID                                     = 19,
+    BL_LILAC_RDD_ERROR_RATE_CONTROLLERS_POOL_OVERFLOW                        = 50,
+    BL_LILAC_RDD_ERROR_RATE_CONTROLLER_NOT_CONFIGURED                        = 52,
+    BL_LILAC_RDD_ERROR_RATE_SHAPER_NOT_CONFIGURED                            = 55,
+    BL_LILAC_RDD_ERROR_GPON_TX_QUEUES_POOL_OVERFLOW                          = 70,
+    BL_LILAC_RDD_ERROR_GPON_TX_QUEUE_NOT_CONFIGURED                          = 72,
+    BL_LILAC_RDD_ERROR_GPON_TX_QUEUE_EMPTY                                   = 73,
+    BL_LILAC_RDD_ERROR_CPU_RX_QUEUE_ILLEGAL                                  = 100,
+    BL_LILAC_RDD_ERROR_CPU_RX_REASON_ILLEGAL                                 = 101,
+    BL_LILAC_RDD_ERROR_CPU_RX_QUEUE_EMPTY                                    = 102,
+    BL_LILAC_RDD_ERROR_CPU_RX_QUEUE_INVALID                                  = 103,
+    BL_LILAC_RDD_ERROR_CPU_TX_QUEUE_FULL                                     = 120,
+    BL_LILAC_RDD_ERROR_CPU_TX_NOT_ALLOWED                                    = 122,
+    BL_LILAC_RDD_ERROR_PCI_TX_QUEUE_EMPTY                                    = 130,
+    BL_LILAC_RDD_ERROR_PCI_QUEUE_THRESHOLD_TOO_SMALL                         = 131,
+    BL_LILAC_RDD_ERROR_ADD_LOOKUP_ENTRY                                      = 150,
+    BL_LILAC_RDD_ERROR_REMOVE_LOOKUP_ENTRY                                   = 151,
+    BL_LILAC_RDD_ERROR_GET_LOOKUP_ENTRY                                      = 152,
+    BL_LILAC_RDD_ERROR_LOOKUP_ENTRY_EXISTS                                   = 153,
+    BL_LILAC_RDD_ERROR_HASH_TABLE_NO_EMPTY_ENTRY                             = 156,
+    BL_LILAC_RDD_ERROR_HASH_TABLE_NO_MATCHING_KEY                            = 157,
+    BL_LILAC_RDD_ERROR_ADD_LOOKUP_NO_EMPTY_ENTRY                             = 158,
+    BL_LILAC_RDD_ERROR_ILLEGAL_MAC_ENTRY_ID                                  = 160,
+    BL_LILAC_RDD_ERROR_GET_MAC_ENTRY                                         = 161,
+    BL_LILAC_RDD_ERROR_MAC_ENTRY_EXISTS                                      = 162,
+    BL_LILAC_RDD_ERROR_MAC_ENTRY_DOESNT_EXIST                                = 163,
+    BL_LILAC_RDD_ERROR_ILLEGAL_ARP_ENTRY_ID                                  = 170,
+    BL_LILAC_RDD_ERROR_ILLEGAL_IPTV_ENTRY_ID                                 = 175,
+    BL_LILAC_RDD_ERROR_INGRESS_CLASSIFICATION_CFG_FULL                       = 180,
+    BL_LILAC_RDD_ERROR_INGRESS_CLASSIFICATION_CFG_ILEGGAL_GROUP_SORT         = 181,
+    BL_LILAC_RDD_ERROR_INGRESS_CLASSIFICATION_CFG_NOT_EXIST                  = 182,
+    BL_LILAC_RDD_ERROR_INGRESS_CLASSIFICATION_CFG_KEY_TOO_LONG               = 183,
+    BL_LILAC_RDD_ERROR_INGRESS_CLASSIFICATION_CFG_LONG_TABLE_FULL            = 184,
+    BL_LILAC_RDD_ERROR_CAM_LOOKUP_TABLE_FULL                                 = 200,
+    BL_LILAC_RDD_ERROR_CAM_LOOKUP_TABLE_EMPTY                                = 201,
+    BL_LILAC_RDD_ERROR_CAM_LOOKUP_FAILED                                     = 202,
+    BL_LILAC_RDD_ERROR_CAM_INSERTION_FAILED                                  = 203,
+    BL_LILAC_RDD_ERROR_BPM_ALLOC_FAIL                                        = 230,
+    BL_LILAC_RDD_ERROR_BPM_FREE_FAIL                                         = 231,
+    BL_LILAC_RDD_ERROR_ILLEGAL_PBITS                                         = 300,
+    BL_LILAC_RDD_ERROR_ILLEGAL_TRAFFIC_CLASS                                 = 301,
+    BL_LILAC_RDD_ERROR_ILLEGAL_WAN_MAPPING_TABLE_INDEX                       = 302,
+    BL_LILAC_RDD_ERROR_ILLEGAL_PBITS_TO_WAN_FLOW_MAPPING_TABLE               = 303,
+    BL_LILAC_RDD_ERROR_ADD_CONTEXT_ENTRY                                     = 350,
+    BL_LILAC_RDD_ERROR_CONTEXT_ENTRY_INVALID                                 = 351,
+    BL_LILAC_RDD_ERROR_ILLEGAL_SUBNET_ID                                     = 360,
+    BL_LILAC_RDD_ERROR_IPTV_TABLE_ENTRY_EXISTS                               = 400,
+    BL_LILAC_RDD_ERROR_IPTV_FORWARDING_TABLE_FULL                            = 401,
+    BL_LILAC_RDD_ERROR_IPTV_SRC_IP_COUNTER_NOT_ZERO                          = 402,
+    BL_LILAC_RDD_ERROR_IPTV_WITH_SRC_IP_ANY_EXISTS                           = 403,
+    BL_LILAC_RDD_ERROR_IPTV_TABLE_ENTRY_NOT_EXISTS                           = 404,
+    BL_LILAC_RDD_ERROR_ILLEGAL_IPTV_TABLE_CACHE_SIZE                         = 405,
+    BL_LILAC_RDD_ERROR_IPTV_SRC_IP_TABLE_FULL                                = 406,
+    BL_LILAC_RDD_ERROR_IPTV_CONTEXT_TABLES_TABLE_FULL                        = 407,
+    BL_LILAC_RDD_ERROR_DDR_CONTEXT_TABLE_TABLE_FULL                          = 408,
+    BL_LILAC_RDD_ERROR_TIMER_TASK_TABLE_FULL                                 = 440,
+    BL_LILAC_RDD_ERROR_TIMER_TASK_PERIOD                                     = 441,
+    BL_LILAC_RDD_ERROR_NO_FREE_SKB                                           = 450,
+    BL_LILAC_RDD_ERROR_1588_TX                                               = 451,
+    BL_LILAC_RDD_ERROR_NO_FREE_GSODESC                                       = 452,
+    BL_LILAC_RDD_ERROR_SPDSVC_RESOURCE_BUSY                                  = 453,
+    BL_LILAC_RDD_ERROR_INGRESS_RATE_LIMITER_BUDGET_TOO_LARGE                 = 460,
+    BL_LILAC_RDD_ERROR_INGRESS_RATE_LIMITER_FLOW_CONTROL_THRESHOLD_TOO_LARGE = 461,
+    BL_LILAC_RDD_ERROR_GPON_SNIFFER_NULL_PD_PTR                              = 500,
+    BL_LILAC_RDD_ERROR_SMC_PPS_SEND_LEN_LESS_THEN_3                          = 600,
+    BL_LILAC_RDD_ERROR_SMC_INVALID_SEND_LENGTH                               = 601,
+    BL_LILAC_RDD_ERROR_SMC_INVALID_RECEIVE_LENGTH                            = 602,
+    BL_LILAC_RDD_ERROR_MTU_INVALID_LENGTH                                    = 603,
+    BL_LILAC_RDD_ERROR_ILLEGAL_IPSEC_SA_DESC_TABLE_INDEX                     = 700,
+    BL_LILAC_RDD_ERROR_IPSEC_AUTH_ALG_INVALID                                = 701,
+    BL_LILAC_RDD_ERROR_IPSEC_CRYPT_ALG_INVALID                               = 702,
+    BL_LILAC_RDD_ERROR_IPSEC_CRYPT_MECH_INVALID                              = 703,
+    BL_LILAC_RDD_ERROR_IPSEC_CRYPT_NXTHDR_INVALID                            = 704,
+    BL_LILAC_RDD_ERROR_IPHOST_TABLE_INDEX_INVALID                            = 705,
+    BL_LILAC_RDD_ERROR_HOST_MAC_TABLE_INDEX_INVALID                          = 706,
+}
+BL_LILAC_RDD_ERROR_DTE;
+
+
+#define BL_LILAC_RDD_IS_WAN_BRIDGE_PORT(__port)                         \
+    ( (__port) == BL_LILAC_RDD_WAN0_BRIDGE_PORT || (__port) == BL_LILAC_RDD_WAN1_BRIDGE_PORT )
+typedef enum
+{
+    BL_LILAC_RDD_WAN0_BRIDGE_PORT           = 0, /* DSL WAN */
+    BL_LILAC_RDD_WAN1_BRIDGE_PORT           = 1, /* ETH WAN */
+    BL_LILAC_RDD_LAN0_BRIDGE_PORT           = 2,
+    BL_LILAC_RDD_LAN1_BRIDGE_PORT           = 3,
+    BL_LILAC_RDD_LAN2_BRIDGE_PORT           = 4,
+    BL_LILAC_RDD_LAN3_BRIDGE_PORT           = 5,
+    BL_LILAC_RDD_LAN4_BRIDGE_PORT           = 6,
+    BL_LILAC_RDD_LAN5_BRIDGE_PORT           = 7,
+    BL_LILAC_RDD_LAN6_BRIDGE_PORT           = 8,
+    BL_LILAC_RDD_LAN7_BRIDGE_PORT           = 9,
+    BL_LILAC_RDD_VIRTUAL_BRIDGE_PORT        = 10, /* Used to represent switch IMP Port */
+    BL_LILAC_RDD_ANY_BRIDGE_PORT            = 11, /* matches any port, used by Speed Service */
+    BL_LILAC_RDD_CPU_BRIDGE_PORT            = 12,
+    BL_LILAC_RDD_PCI_BRIDGE_PORT            = 13, /* must match DRV_BPM_SP_SPARE_1 */
+    BL_LILAC_RDD_WAN_QUASI_BRIDGE_PORT      = 15,
+    BL_LILAC_RDD_WAN_ROUTER_PORT            = 17,
+    BL_LILAC_RDD_WAN_IPTV_BRIDGE_PORT       = 18,
+    BL_LILAC_RDD_MULTICAST_LAN0_BRIDGE_PORT = 0x10,
+    BL_LILAC_RDD_MULTICAST_LAN1_BRIDGE_PORT = 0x20,
+    BL_LILAC_RDD_MULTICAST_LAN2_BRIDGE_PORT = 0x40,
+    BL_LILAC_RDD_MULTICAST_LAN3_BRIDGE_PORT = 0x80,
+    BL_LILAC_RDD_MULTICAST_LAN4_BRIDGE_PORT = 0x100,
+    BL_LILAC_RDD_MULTICAST_PCI_BRIDGE_PORT  = 0x200,
+}
+BL_LILAC_RDD_BRIDGE_PORT_DTE;
+
+#define BL_LILAC_RDD_WAN_BRIDGE_PORT BL_LILAC_RDD_WAN0_BRIDGE_PORT
+
+typedef enum
+{
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_GPON = 0,
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_ETH4 = 1,
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_ETH5 = 2,
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_ETH0 = 3,
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_EPON = 4,
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_DSL  = 5,
+}
+BL_LILAC_RDD_WAN_PHYSICAL_PORT_DTE;
+
+
+#if defined(WL4908)
+#define BL_LILAC_RDD_EMAC_ID_START RDD_EMAC_FIRST
+#define BL_LILAC_RDD_EMAC_ID_PCI RDD_EMAC_ID_WIFI
+#define BL_LILAC_RDD_EMAC_ID_0 RDD_EMAC_ID_0
+#define BL_LILAC_RDD_EMAC_ID_1 RDD_EMAC_ID_1
+#define BL_LILAC_RDD_EMAC_ID_2 RDD_EMAC_ID_2
+#define BL_LILAC_RDD_EMAC_ID_3 RDD_EMAC_ID_3
+#define BL_LILAC_RDD_EMAC_ID_4 RDD_EMAC_ID_4
+#define BL_LILAC_RDD_EMAC_ID_5 RDD_EMAC_ID_5
+#define BL_LILAC_RDD_EMAC_ID_6 RDD_EMAC_ID_6
+#define BL_LILAC_RDD_EMAC_ID_7 RDD_EMAC_ID_7
+#define BL_LILAC_RDD_EMAC_ID_COUNT RDD_EMAC_ID_COUNT
+typedef rdd_rdd_emac  BL_LILAC_RDD_EMAC_ID_DTE;
+#else
+typedef enum
+{
+    BL_LILAC_RDD_EMAC_ID_START = 0,
+    BL_LILAC_RDD_EMAC_ID_PCI  = 0,
+    BL_LILAC_RDD_EMAC_ID_0    = 1,
+    BL_LILAC_RDD_EMAC_ID_1    = 2,
+    BL_LILAC_RDD_EMAC_ID_2    = 3,
+    BL_LILAC_RDD_EMAC_ID_3    = 4,
+    BL_LILAC_RDD_EMAC_ID_4    = 5,
+#if defined(DSL_63138) || defined(DSL_63148)
+    BL_LILAC_RDD_EMAC_ID_5   = 6,
+    BL_LILAC_RDD_EMAC_ID_6   = 7,
+    BL_LILAC_RDD_EMAC_ID_7   = 8,
+#endif
+    BL_LILAC_RDD_EMAC_ID_COUNT   ,
+}
+BL_LILAC_RDD_EMAC_ID_DTE;
+#endif
+
+#define RDD_WAN0_VPORT       RDD_VPORT_ID_0
+#define RDD_LAN0_VPORT       RDD_VPORT_ID_1
+#define RDD_LAN1_VPORT       RDD_VPORT_ID_2
+#define RDD_LAN2_VPORT       RDD_VPORT_ID_3
+#define RDD_LAN3_VPORT       RDD_VPORT_ID_4
+#define RDD_LAN4_VPORT       RDD_VPORT_ID_5
+#define RDD_LAN5_VPORT       RDD_VPORT_ID_6
+#define RDD_LAN6_VPORT       RDD_VPORT_ID_7
+#if !defined(WL4908)
+#define RDD_LAN_VPORT_LAST   RDD_LAN6_VPORT
+#endif
+#define RDD_WLAN0_VPORT      RDD_VPORT_ID_8
+
+typedef rdd_rdd_emac rdd_emac_id_t;
+
+typedef uint32_t rdd_emac_id_vector_t;
+
+static inline rdd_emac_id_vector_t rdd_emac_id_to_vector(rdd_emac_id_t emac, bdmf_boolean is_iptv)
+{
+    return 1LL << emac;
+}
+#define RDD_EMAC_PORT_TO_VECTOR(rdd_emac_id, is_iptv) rdd_emac_id_to_vector(rdd_emac_id, is_iptv)
+
+typedef enum
+{
+    RDD_WAN_CHANNEL_UNASSIGNED = -1,
+    RDD_WAN_CHANNEL_0  = 0,
+    RDD_WAN_CHANNEL_1  = 1,
+    RDD_WAN_CHANNEL_2  = 2,
+    RDD_WAN_CHANNEL_3  = 3,
+    RDD_WAN_CHANNEL_4  = 4,
+    RDD_WAN_CHANNEL_5  = 5,
+    RDD_WAN_CHANNEL_6  = 6,
+    RDD_WAN_CHANNEL_7  = 7,
+    RDD_WAN_CHANNEL_8  = 8,
+    RDD_WAN_CHANNEL_9  = 9,
+    RDD_WAN_CHANNEL_10 = 10,
+    RDD_WAN_CHANNEL_11 = 11,
+    RDD_WAN_CHANNEL_12 = 12,
+    RDD_WAN_CHANNEL_13 = 13,
+    RDD_WAN_CHANNEL_14 = 14,
+    RDD_WAN_CHANNEL_15 = 15,
+    RDD_WAN_CHANNEL_16 = 16,
+    RDD_WAN_CHANNEL_17 = 17,
+    RDD_WAN_CHANNEL_18 = 18,
+    RDD_WAN_CHANNEL_19 = 19,
+    RDD_WAN_CHANNEL_20 = 20,
+    RDD_WAN_CHANNEL_21 = 21,
+    RDD_WAN_CHANNEL_22 = 22,
+    RDD_WAN_CHANNEL_23 = 23,
+    RDD_WAN_CHANNEL_24 = 24,
+    RDD_WAN_CHANNEL_25 = 25,
+    RDD_WAN_CHANNEL_26 = 26,
+    RDD_WAN_CHANNEL_27 = 27,
+    RDD_WAN_CHANNEL_28 = 28,
+    RDD_WAN_CHANNEL_29 = 29,
+    RDD_WAN_CHANNEL_30 = 30,
+    RDD_WAN_CHANNEL_31 = 31,
+    RDD_WAN_CHANNEL_32 = 32,
+    RDD_WAN_CHANNEL_33 = 33,
+    RDD_WAN_CHANNEL_34 = 34,
+    RDD_WAN_CHANNEL_35 = 35,
+    RDD_WAN_CHANNEL_36 = 36,
+    RDD_WAN_CHANNEL_37 = 37,
+    RDD_WAN_CHANNEL_38 = 38,
+    RDD_WAN_CHANNEL_39 = 39,
+}
+RDD_WAN_CHANNEL_ID;
+
+#define RDD_WAN0_CHANNEL_BASE               RDD_WAN_CHANNEL_1
+#define RDD_WAN1_CHANNEL_BASE               RDD_WAN_CHANNEL_0
+
+typedef enum
+{
+    BL_LILAC_RDD_RATE_CONTROLLER_UNASSIGNED = -1,
+    BL_LILAC_RDD_RATE_CONTROLLER_0  = 0,
+    BL_LILAC_RDD_RATE_CONTROLLER_1  = 1,
+    BL_LILAC_RDD_RATE_CONTROLLER_2  = 2,
+    BL_LILAC_RDD_RATE_CONTROLLER_3  = 3,
+    BL_LILAC_RDD_RATE_CONTROLLER_4  = 4,
+    BL_LILAC_RDD_RATE_CONTROLLER_5  = 5,
+    BL_LILAC_RDD_RATE_CONTROLLER_6  = 6,
+    BL_LILAC_RDD_RATE_CONTROLLER_7  = 7,
+    BL_LILAC_RDD_RATE_CONTROLLER_8  = 8,
+    BL_LILAC_RDD_RATE_CONTROLLER_9  = 9,
+    BL_LILAC_RDD_RATE_CONTROLLER_10 = 10,
+    BL_LILAC_RDD_RATE_CONTROLLER_11 = 11,
+    BL_LILAC_RDD_RATE_CONTROLLER_12 = 12,
+    BL_LILAC_RDD_RATE_CONTROLLER_13 = 13,
+    BL_LILAC_RDD_RATE_CONTROLLER_14 = 14,
+    BL_LILAC_RDD_RATE_CONTROLLER_15 = 15,
+    BL_LILAC_RDD_RATE_CONTROLLER_16 = 16,
+    BL_LILAC_RDD_RATE_CONTROLLER_17 = 17,
+    BL_LILAC_RDD_RATE_CONTROLLER_18 = 18,
+    BL_LILAC_RDD_RATE_CONTROLLER_19 = 19,
+    BL_LILAC_RDD_RATE_CONTROLLER_20 = 20,
+    BL_LILAC_RDD_RATE_CONTROLLER_21 = 21,
+    BL_LILAC_RDD_RATE_CONTROLLER_22 = 22,
+    BL_LILAC_RDD_RATE_CONTROLLER_23 = 23,
+    BL_LILAC_RDD_RATE_CONTROLLER_24 = 24,
+    BL_LILAC_RDD_RATE_CONTROLLER_25 = 25,
+    BL_LILAC_RDD_RATE_CONTROLLER_26 = 26,
+    BL_LILAC_RDD_RATE_CONTROLLER_27 = 27,
+    BL_LILAC_RDD_RATE_CONTROLLER_28 = 28,
+    BL_LILAC_RDD_RATE_CONTROLLER_29 = 29,
+    BL_LILAC_RDD_RATE_CONTROLLER_30 = 30,
+    BL_LILAC_RDD_RATE_CONTROLLER_31 = 31,
+    BL_LILAC_RDD_RATE_CONTROLLER_32 = 32,
+    BL_LILAC_RDD_RATE_CONTROLLER_33 = 33,
+    BL_LILAC_RDD_RATE_CONTROLLER_34 = 34,
+    BL_LILAC_RDD_RATE_CONTROLLER_35 = 35,
+    BL_LILAC_RDD_RATE_CONTROLLER_36 = 36,
+    BL_LILAC_RDD_RATE_CONTROLLER_37 = 37,
+    BL_LILAC_RDD_RATE_CONTROLLER_38 = 38,
+    BL_LILAC_RDD_RATE_CONTROLLER_39 = 39,
+    BL_LILAC_RDD_RATE_CONTROLLER_40 = 40,
+    BL_LILAC_RDD_RATE_CONTROLLER_41 = 41,
+    BL_LILAC_RDD_RATE_CONTROLLER_42 = 42,
+    BL_LILAC_RDD_RATE_CONTROLLER_43 = 43,
+    BL_LILAC_RDD_RATE_CONTROLLER_44 = 44,
+    BL_LILAC_RDD_RATE_CONTROLLER_45 = 45,
+    BL_LILAC_RDD_RATE_CONTROLLER_46 = 46,
+    BL_LILAC_RDD_RATE_CONTROLLER_47 = 47,
+    BL_LILAC_RDD_RATE_CONTROLLER_48 = 48,
+    BL_LILAC_RDD_RATE_CONTROLLER_49 = 49,
+    BL_LILAC_RDD_RATE_CONTROLLER_50 = 50,
+    BL_LILAC_RDD_RATE_CONTROLLER_51 = 51,
+    BL_LILAC_RDD_RATE_CONTROLLER_52 = 52,
+    BL_LILAC_RDD_RATE_CONTROLLER_53 = 53,
+    BL_LILAC_RDD_RATE_CONTROLLER_54 = 54,
+    BL_LILAC_RDD_RATE_CONTROLLER_55 = 55,
+    BL_LILAC_RDD_RATE_CONTROLLER_56 = 56,
+    BL_LILAC_RDD_RATE_CONTROLLER_57 = 57,
+    BL_LILAC_RDD_RATE_CONTROLLER_58 = 58,
+    BL_LILAC_RDD_RATE_CONTROLLER_59 = 59,
+    BL_LILAC_RDD_RATE_CONTROLLER_60 = 60,
+    BL_LILAC_RDD_RATE_CONTROLLER_61 = 61,
+    BL_LILAC_RDD_RATE_CONTROLLER_62 = 62,
+    BL_LILAC_RDD_RATE_CONTROLLER_63 = 63,
+    BL_LILAC_RDD_RATE_CONTROLLER_64 = 64,
+    BL_LILAC_RDD_RATE_CONTROLLER_65 = 65,
+    BL_LILAC_RDD_RATE_CONTROLLER_66 = 66,
+    BL_LILAC_RDD_RATE_CONTROLLER_67 = 67,
+    BL_LILAC_RDD_RATE_CONTROLLER_68 = 68,
+    BL_LILAC_RDD_RATE_CONTROLLER_69 = 69,
+    BL_LILAC_RDD_RATE_CONTROLLER_70 = 70,
+    BL_LILAC_RDD_RATE_CONTROLLER_71 = 71,
+    BL_LILAC_RDD_RATE_CONTROLLER_72 = 72,
+    BL_LILAC_RDD_RATE_CONTROLLER_73 = 73,
+    BL_LILAC_RDD_RATE_CONTROLLER_74 = 74,
+    BL_LILAC_RDD_RATE_CONTROLLER_75 = 75,
+    BL_LILAC_RDD_RATE_CONTROLLER_76 = 76,
+    BL_LILAC_RDD_RATE_CONTROLLER_77 = 77,
+    BL_LILAC_RDD_RATE_CONTROLLER_78 = 78,
+    BL_LILAC_RDD_RATE_CONTROLLER_79 = 79,
+    BL_LILAC_RDD_RATE_CONTROLLER_80 = 80,
+    BL_LILAC_RDD_RATE_CONTROLLER_81 = 81,
+    BL_LILAC_RDD_RATE_CONTROLLER_82 = 82,
+    BL_LILAC_RDD_RATE_CONTROLLER_83 = 83,
+    BL_LILAC_RDD_RATE_CONTROLLER_84 = 84,
+    BL_LILAC_RDD_RATE_CONTROLLER_85 = 85,
+    BL_LILAC_RDD_RATE_CONTROLLER_86 = 86,
+    BL_LILAC_RDD_RATE_CONTROLLER_87 = 87,
+    BL_LILAC_RDD_RATE_CONTROLLER_88 = 88,
+    BL_LILAC_RDD_RATE_CONTROLLER_89 = 89,
+    BL_LILAC_RDD_RATE_CONTROLLER_90 = 90,
+    BL_LILAC_RDD_RATE_CONTROLLER_91 = 91,
+    BL_LILAC_RDD_RATE_CONTROLLER_92 = 92,
+    BL_LILAC_RDD_RATE_CONTROLLER_93 = 93,
+    BL_LILAC_RDD_RATE_CONTROLLER_94 = 94,
+    BL_LILAC_RDD_RATE_CONTROLLER_95 = 95,
+    BL_LILAC_RDD_RATE_CONTROLLER_96 = 96,
+    BL_LILAC_RDD_RATE_CONTROLLER_97 = 97,
+    BL_LILAC_RDD_RATE_CONTROLLER_98 = 98,
+    BL_LILAC_RDD_RATE_CONTROLLER_99 = 99,
+    BL_LILAC_RDD_RATE_CONTROLLER_100 = 100,
+    BL_LILAC_RDD_RATE_CONTROLLER_101 = 101,
+    BL_LILAC_RDD_RATE_CONTROLLER_102 = 102,
+    BL_LILAC_RDD_RATE_CONTROLLER_103 = 103,
+    BL_LILAC_RDD_RATE_CONTROLLER_104 = 104,
+    BL_LILAC_RDD_RATE_CONTROLLER_105 = 105,
+    BL_LILAC_RDD_RATE_CONTROLLER_106 = 106,
+    BL_LILAC_RDD_RATE_CONTROLLER_107 = 107,
+    BL_LILAC_RDD_RATE_CONTROLLER_108 = 108,
+    BL_LILAC_RDD_RATE_CONTROLLER_109 = 109,
+    BL_LILAC_RDD_RATE_CONTROLLER_110 = 110,
+    BL_LILAC_RDD_RATE_CONTROLLER_111 = 111,
+    BL_LILAC_RDD_RATE_CONTROLLER_112 = 112,
+    BL_LILAC_RDD_RATE_CONTROLLER_113 = 113,
+    BL_LILAC_RDD_RATE_CONTROLLER_114 = 114,
+    BL_LILAC_RDD_RATE_CONTROLLER_115 = 115,
+    BL_LILAC_RDD_RATE_CONTROLLER_116 = 116,
+    BL_LILAC_RDD_RATE_CONTROLLER_117 = 117,
+    BL_LILAC_RDD_RATE_CONTROLLER_118 = 118,
+    BL_LILAC_RDD_RATE_CONTROLLER_119 = 119,
+    BL_LILAC_RDD_RATE_CONTROLLER_120 = 120,
+    BL_LILAC_RDD_RATE_CONTROLLER_121 = 121,
+    BL_LILAC_RDD_RATE_CONTROLLER_122 = 122,
+    BL_LILAC_RDD_RATE_CONTROLLER_123 = 123,
+    BL_LILAC_RDD_RATE_CONTROLLER_124 = 124,
+    BL_LILAC_RDD_RATE_CONTROLLER_125 = 125,
+    BL_LILAC_RDD_RATE_CONTROLLER_126 = 126,
+    BL_LILAC_RDD_RATE_CONTROLLER_127 = 127,
+}
+BL_LILAC_RDD_RATE_CONTROLLER_ID_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_QUEUE_0 = 0,
+    BL_LILAC_RDD_QUEUE_1 = 1,
+    BL_LILAC_RDD_QUEUE_2 = 2,
+    BL_LILAC_RDD_QUEUE_3 = 3,
+    BL_LILAC_RDD_QUEUE_4 = 4,
+    BL_LILAC_RDD_QUEUE_5 = 5,
+    BL_LILAC_RDD_QUEUE_6 = 6,
+    BL_LILAC_RDD_QUEUE_7 = 7,
+    BL_LILAC_RDD_QUEUE_LAST = 7,
+}
+BL_LILAC_RDD_QUEUE_ID_DTE;
+
+
+typedef enum
+{
+    RDD_WAN_CHANNEL_SCHEDULE_PRIORITY     = 0,
+    RDD_WAN_CHANNEL_SCHEDULE_RATE_CONTROL = 1,
+}
+RDD_WAN_CHANNEL_SCHEDULE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_CPU_RX_QUEUE_0 = 0,
+    BL_LILAC_RDD_CPU_RX_QUEUE_1 = 1,
+    BL_LILAC_RDD_CPU_RX_QUEUE_2 = 2,
+    BL_LILAC_RDD_CPU_RX_QUEUE_3 = 3,
+    BL_LILAC_RDD_CPU_RX_QUEUE_4 = 4,
+    BL_LILAC_RDD_CPU_RX_QUEUE_5 = 5,
+    BL_LILAC_RDD_CPU_RX_QUEUE_6 = 6,
+    BL_LILAC_RDD_CPU_RX_QUEUE_7 = 7,
+}
+BL_LILAC_RDD_CPU_RX_QUEUE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_PCI_TX_QUEUE_0 = 8,
+    BL_LILAC_RDD_PCI_TX_QUEUE_1 = 9,
+    BL_LILAC_RDD_PCI_TX_QUEUE_2 = 10,
+    BL_LILAC_RDD_PCI_TX_QUEUE_3 = 11,
+}
+BL_LILAC_RDD_PCI_TX_QUEUE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_CPU_METER_0       = 0,
+    BL_LILAC_RDD_CPU_METER_1       = 1,
+    BL_LILAC_RDD_CPU_METER_2       = 2,
+    BL_LILAC_RDD_CPU_METER_3       = 3,
+    BL_LILAC_RDD_CPU_METER_4       = 4,
+    BL_LILAC_RDD_CPU_METER_5       = 5,
+    BL_LILAC_RDD_CPU_METER_6       = 6,
+    BL_LILAC_RDD_CPU_METER_7       = 7,
+    BL_LILAC_RDD_CPU_METER_8       = 8,
+    BL_LILAC_RDD_CPU_METER_9       = 9,
+    BL_LILAC_RDD_CPU_METER_10      = 10,
+    BL_LILAC_RDD_CPU_METER_11      = 11,
+    BL_LILAC_RDD_CPU_METER_12      = 12,
+    BL_LILAC_RDD_CPU_METER_13      = 13,
+    BL_LILAC_RDD_CPU_METER_14      = 14,
+    BL_LILAC_RDD_CPU_METER_15      = 15,
+    BL_LILAC_RDD_CPU_METER_DISABLE = 16,
+}
+BL_LILAC_RDD_CPU_METER_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_STATIC_MAC_ADDRESS = 0,
+    BL_LILAC_RDD_BRIDGE_MAC_ADDRESS = 1,
+}
+BL_LILAC_RDD_MAC_ENTRY_TYPE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_DISABLED = 0,
+    BL_LILAC_RDD_ENABLED  = 1,
+}
+BL_LILAC_RDD_CONTROL_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_PPPOE_DISABLED = 0,
+    BL_LILAC_RDD_PPPOE_ENABLED  = 1,
+}
+BL_LILAC_RDD_PPPOE_ENABLE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_DUAL_STACK_LITE_DISABLED = 0,
+    BL_LILAC_RDD_DUAL_STACK_LITE_ENABLED  = 1,
+}
+BL_LILAC_RDD_DUAL_STACK_LITE_ENABLE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_IPV6_DISABLED = 0,
+    BL_LILAC_RDD_IPV6_ENABLED  = 1,
+}
+BL_LILAC_RDD_IPV6_ENABLE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_FORWARD_DISABLE = 0,
+    BL_LILAC_RDD_FORWARD_ENABLE  = 1,
+}
+BL_LILAC_RDD_FORWARD_MATRIX_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_VLAN_SWITCHING_DISABLE = 0,
+    BL_LILAC_RDD_VLAN_SWITCHING_ENABLE  = 1,
+}
+BL_LILAC_RDD_VLAN_SWITCHING_CONFIG_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_VLAN_BINDING_DISABLE = 0,
+    BL_LILAC_RDD_VLAN_BINDING_ENABLE  = 1,
+}
+BL_LILAC_RDD_VLAN_BINDING_CONFIG_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_AGGREGATION_MODE_DISABLED = 0,
+    BL_LILAC_RDD_AGGREGATION_MODE_ENABLED  = 1,
+}
+BL_LILAC_RDD_AGGREGATION_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_PCI  = 0x1,
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_LAN0 = 0x2,
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_LAN1 = 0x4,
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_LAN2 = 0x8,
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_LAN3 = 0x10,
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_LAN4 = 0x20,
+}
+BL_LILAC_RDD_BRIDGE_PORT_VECTOR_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_SUBNET_CLASSIFY_ETHERNET_FLOW = 0,
+    BL_LILAC_RDD_SUBNET_CLASSIFY_MAC_FILTER    = 1,
+}
+BL_LILAC_RDD_SUBNET_CLASSIFY_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_SUBNET_FLOW_CACHE  = 0,
+    BL_LILAC_RDD_SUBNET_BRIDGE      = 1,
+    BL_LILAC_RDD_SUBNET_BRIDGE_IPTV = 2,
+    BL_LILAC_RDD_SUBNET_LAN         = 2,
+}
+BL_LILAC_RDD_SUBNET_ID_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_DS_RATE_CONTROL_DISABLE = 0,
+    BL_LILAC_RDD_DS_RATE_CONTROL_ENABLE  = 1,
+}
+BL_LILAC_RDD_DS_RATE_CONTROL_MODE_DTE;
+
+typedef enum
+{
+    RDD_RATE_LIMITER_EMAC_0                 = 0,
+    RDD_RATE_LIMITER_EMAC_1                 = 1,
+    RDD_RATE_LIMITER_EMAC_2                 = 2,
+    RDD_RATE_LIMITER_EMAC_3                 = 3,
+    RDD_RATE_LIMITER_EMAC_4                 = 4,
+    RDD_RATE_LIMITER_EMAC_5                 = 5,
+    RDD_RATE_LIMITER_EMAC_LAST              = 5,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_0        = 6,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_1        = 7,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_2        = 8,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_3        = 9,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_4        = 10,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_5        = 11,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_6        = 12,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_7        = 13,
+    RDD_RATE_LIMITER_SERVICE_QUEUE_OVERALL  = 14,
+    RDD_RATE_LIMITER_IDLE                   = 15,
+}
+RDD_RATE_LIMITER_ID_DTE;
+
+typedef enum
+{
+    BL_LILAC_RDD_POLICER_0        = 0,
+    BL_LILAC_RDD_POLICER_1        = 1,
+    BL_LILAC_RDD_POLICER_2        = 2,
+    BL_LILAC_RDD_POLICER_3        = 3,
+    BL_LILAC_RDD_POLICER_4        = 4,
+    BL_LILAC_RDD_POLICER_5        = 5,
+    BL_LILAC_RDD_POLICER_6        = 6,
+    BL_LILAC_RDD_POLICER_7        = 7,
+    BL_LILAC_RDD_POLICER_8        = 8,
+    BL_LILAC_RDD_POLICER_9        = 9,
+    BL_LILAC_RDD_POLICER_10       = 10,
+    BL_LILAC_RDD_POLICER_11       = 11,
+    BL_LILAC_RDD_POLICER_12       = 12,
+    BL_LILAC_RDD_POLICER_13       = 13,
+    BL_LILAC_RDD_POLICER_14       = 14,
+    BL_LILAC_RDD_POLICER_15       = 15,
+    BL_LILAC_RDD_POLICER_DISABLED = 16,
+}
+BL_LILAC_RDD_POLICER_ID_DTE;
+
+
+#define BL_LILAC_RDD_IPV4_ADDRESS_BYTE_SIZE     ( 4 )
+#define BL_LILAC_RDD_IPV6_ADDRESS_BYTE_SIZE     ( 16 )
+
+
+typedef enum
+{
+    BL_LILAC_RDD_FILTER_DISABLE = 0,
+    BL_LILAC_RDD_FILTER_ENABLE  = 1,
+}
+BL_LILAC_RDD_FILTER_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_RATE_LIMITER_DISABLE = 0,
+    BL_LILAC_RDD_RATE_LIMITER_ENABLE  = 1,
+}
+BL_LILAC_RDD_RATE_LIMITER_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_RATE_LIMITER_LOW  = 0,
+    BL_LILAC_RDD_RATE_LIMITER_HIGH = 1,
+}
+BL_LILAC_RDD_RATE_LIMITER_PRIORITY_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_FILTER_ACTION_CPU_TRAP = 1,
+    BL_LILAC_RDD_FILTER_ACTION_DROP     = 2,
+}
+BL_LILAC_RDD_FILTER_ACTION_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_USER_0      = 2,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_USER_1      = 3,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_USER_2      = 4,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_USER_3      = 5,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_PPPOE_D     = 6,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_PPPOE_S     = 7,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_ARP         = 8,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_1588        = 9,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_802_1X      = 10,
+    BL_LILAC_RDD_ETHER_TYPE_FILTER_802_1AG_CFM = 11,
+}
+BL_LILAC_RDD_ETHER_TYPE_FILTER_NUMBER_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_MAC_LOOKUP_DISABLE = 0,
+    BL_LILAC_RDD_MAC_LOOKUP_ENABLE  = 1,
+}
+BL_LILAC_RDD_MAC_LOOKUP_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_FLOW_BASED_FORWARDING_DISABLED = 0,
+    BL_LILAC_RDD_FLOW_BASED_FORWARDING_ENABLED  = 1,
+}
+BL_LILAC_RDD_FLOW_BASED_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_MAC_FWD_ACTION_FORWARD    = 0,
+    BL_LILAC_RDD_MAC_FWD_ACTION_DROP       = 1,
+    BL_LILAC_RDD_MAC_FWD_ACTION_CPU_TRAP0  = 2,
+    BL_LILAC_RDD_MAC_FWD_ACTION_CPU_TRAP1  = 3,
+    BL_LILAC_RDD_MAC_FWD_ACTION_CPU_TRAP2  = 4,
+    BL_LILAC_RDD_MAC_FWD_ACTION_CPU_TRAP3  = 5,
+    BL_LILAC_RDD_MAC_FWD_ACTION_RATE_LIMIT = 6,
+}
+BL_LILAC_RDD_MAC_FWD_ACTION_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_ACL_LAYER3_FILTER_DISABLE                      = 0,
+    BL_LILAC_RDD_ACL_LAYER3_FILTER_SRC_IP_INCLUSIVE             = 2,
+    BL_LILAC_RDD_ACL_LAYER3_FILTER_SRC_IP_EXCLUSIVE             = 3,
+    BL_LILAC_RDD_ACL_LAYER3_FILTER_SRC_MAC_SRC_IP_INCLUSIVE     = 4,
+    BL_LILAC_RDD_ACL_LAYER3_FILTER_SRC_MAC_SRC_IP_EXCLUSIVE     = 5,
+    BL_LILAC_RDD_ACL_LAYER3_FILTER_SRC_MAC_VID_SRC_IP_INCLUSIVE = 8,
+    BL_LILAC_RDD_ACL_LAYER3_FILTER_SRC_MAC_VID_SRC_IP_EXCLUSIVE = 9,
+}
+BL_LILAC_RDD_ACL_LAYER3_FILTER_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_CRC_CALC_DISABLE = 0,
+    BL_LILAC_RDD_CRC_CALC_ENABLE  = 1,
+}
+BL_LILAC_RDD_TX_CRC_CALC_DTE;
+
+
+typedef enum
+{
+    rdd_vlan_command_transparent                         = 0,
+    rdd_vlan_command_add_tag                             = 1,
+    rdd_vlan_command_remove_tag                          = 2,
+    rdd_vlan_command_replace_tag                         = 3,
+    rdd_vlan_command_add_two_tags                        = 4,
+    rdd_vlan_command_remove_two_tags                     = 5,
+    rdd_vlan_command_add_outer_tag_replace_inner_tag     = 6,
+    rdd_vlan_command_remove_outer_tag_replace_inner_tag  = 7,
+    rdd_vlan_command_add_tag_always                      = 8,
+    rdd_vlan_command_remove_tag_always                   = 9,
+    rdd_vlan_command_replace_outer_tag_replace_inner_tag = 10,
+    rdd_vlan_command_remove_outer_tag_copy               = 11,
+    rdd_vlan_command_add_3rd_tag                         = 12,
+    rdd_max_vlan_command                                 = 13,
+}
+rdd_bridge_vlan_command;
+
+
+typedef enum
+{
+    rdd_pbits_command_transparent = 0,
+    rdd_pbits_command_copy        = 1,
+    rdd_pbits_command_configured  = 2,
+    rdd_pbits_command_remap       = 3,
+    rdd_max_pbits_command         = 4,
+}
+rdd_bridge_pbits_command;
+
+
+typedef enum
+{
+    rdd_tpid_id_0   = 0,
+    rdd_tpid_id_1   = 1,
+    rdd_tpid_id_2   = 2,
+    rdd_tpid_id_3   = 3,
+    rdd_tpid_id_4   = 4,
+    rdd_tpid_id_5   = 5,
+    rdd_tpid_id_6   = 6,
+    rdd_tpid_id_7   = 7,
+}
+rdd_tpid_id;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_UNKNOWN_MAC_CMD_FORWARD  = 1,
+    BL_LILAC_RDD_UNKNOWN_MAC_CMD_CPU_TRAP = 2,
+    BL_LILAC_RDD_UNKNOWN_MAC_CMD_DROP     = 4,
+    BL_LILAC_RDD_UNKNOWN_MAC_CMD_FLOOD    = 8,
+}
+BL_LILAC_RDD_UNKNOWN_MAC_COMMAND_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_MAC_TABLE_SIZE_32   = 0,
+    BL_LILAC_RDD_MAC_TABLE_SIZE_64   = 1,
+    BL_LILAC_RDD_MAC_TABLE_SIZE_128  = 2,
+    BL_LILAC_RDD_MAC_TABLE_SIZE_256  = 3,
+    BL_LILAC_RDD_MAC_TABLE_SIZE_512  = 4,
+    BL_LILAC_RDD_MAC_TABLE_SIZE_1024 = 5,
+    BL_LILAC_RDD_MAC_TABLE_SIZE_2048 = 6,
+    BL_LILAC_RDD_MAC_TABLE_SIZE_4096 = 7,
+}
+BL_LILAC_RDD_MAC_TABLE_SIZE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_1    = 0,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_2    = 1,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_4    = 2,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_8    = 3,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_16   = 4,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_32   = 5,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_64   = 6,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_128  = 7,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_256  = 8,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_512  = 9,
+    BL_LILAC_RDD_MAC_TABLE_MAX_HOP_1024 = 10,
+}
+BL_LILAC_RDD_MAC_TABLE_MAX_HOP_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_IGMP_FILTER_NUMBER        = 0,
+    BL_LILAC_RDD_ICMPV6_FILTER_NUMBER      = 1,
+    BL_LILAC_RDD_USER_0_FILTER_NUMBER      = 2,
+    BL_LILAC_RDD_USER_1_FILTER_NUMBER      = 3,
+    BL_LILAC_RDD_USER_2_FILTER_NUMBER      = 4,
+    BL_LILAC_RDD_USER_3_FILTER_NUMBER      = 5,
+    BL_LILAC_RDD_PPPOE_D_FILTER_NUMBER     = 6,
+    BL_LILAC_RDD_PPPOE_S_FILTER_NUMBER     = 7,
+    BL_LILAC_RDD_ARP_FILTER_NUMBER         = 8,
+    BL_LILAC_RDD_1588_FILTER_NUMBER        = 9,
+    BL_LILAC_RDD_802_1X_FILTER_NUMBER      = 10,
+    BL_LILAC_RDD_802_1AG_CFM_FILTER_NUMBER = 11,
+    BL_LILAC_RDD_BROADCAST_FILTER_NUMBER   = 12,
+    BL_LILAC_RDD_MULTICAST_FILTER_NUMBER   = 13,
+    BL_LILAC_RDD_STOP_FILTER_NUMBER        = 14,
+    BL_LILAC_RDD_INGRESS_FILTERS_NUMBER    = 14,
+}
+BL_LILAC_RDD_INGRESS_FILTER_DTE;
+
+
+typedef enum
+{
+    RDD_LAYER4_FILTER_ERROR             = 0,
+    RDD_LAYER4_FILTER_EXCEPTION         = 1,
+    RDD_LAYER4_FILTER_IP_FIRST_FRAGMENT = 2,
+    RDD_LAYER4_FILTER_IP_FRAGMENT       = 3,
+    RDD_LAYER4_FILTER_GRE               = 4,
+    RDD_LAYER4_FILTER_LAYER3_IPV4       = 5,
+    RDD_LAYER4_FILTER_LAYER3_IPV6       = 6,
+    RDD_LAYER4_FILTER_ICMP              = 7,
+    RDD_LAYER4_FILTER_ESP               = 8,
+    RDD_LAYER4_FILTER_AH                = 9,
+    RDD_LAYER4_FILTER_IPV6              = 10,
+    RDD_LAYER4_FILTER_USER_DEFINED_0    = 11,
+    RDD_LAYER4_FILTER_USER_DEFINED_1    = 12,
+    RDD_LAYER4_FILTER_USER_DEFINED_2    = 13,
+    RDD_LAYER4_FILTER_USER_DEFINED_3    = 14,
+    RDD_LAYER4_FILTER_UNKNOWN           = 15,
+}
+RDD_LAYER4_FILTER_INDEX;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_LAYER4_FILTER_FORWARD  = 0,
+    BL_LILAC_RDD_LAYER4_FILTER_CPU_TRAP = 1,
+    BL_LILAC_RDD_LAYER4_FILTER_DROP     = 2,
+}
+BL_LILAC_RDD_LAYER4_FILTER_ACTION_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_FIREWALL_PROTOCOL_TYPE_TCP = 0,
+    BL_LILAC_RDD_FIREWALL_PROTOCOL_TYPE_UDP = 1,
+}
+BL_LILAC_RDD_FIREWALL_PROTOCOL_TYPE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_FLOW_CACHE_PBIT_ACTION_DSCP_COPY  = 0,
+    BL_LILAC_RDD_FLOW_CACHE_PBIT_ACTION_OUTER_COPY = 1,
+    BL_LILAC_RDD_FLOW_CACHE_PBIT_ACTION_INNER_COPY = 2,
+}
+BL_LILAC_RDD_FLOW_CACHE_PBIT_ACTION_DTE;
+
+
+typedef enum
+{
+    RDD_FLOW_CACHE_FORWARD_ACTION_CPU  = 0,
+    RDD_FLOW_CACHE_FORWARD_ACTION_DROP = 1,
+}
+RDD_FLOW_CACHE_FORWARD_ACTION;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_ACL_LAYER2_ACTION_DENY   = 0,
+    BL_LILAC_RDD_ACL_LAYER2_ACTION_ACCEPT = 1,
+}
+BL_LILAC_RDD_ACL_LAYER2_ACTION_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_1588_MODE_DISABLE = 0,
+    BL_LILAC_RDD_1588_MODE_ENABLE  = 1,
+}
+BL_LILAC_RDD_1588_MODE_DTE;
+
+
+typedef enum
+{
+    RDD_1588_TX_THREAD_RETURN_NO_RESULT = 0,
+    RDD_1588_TX_THREAD_RETURN_SUCCESS   = 1,
+    RDD_1588_TX_THREAD_RETURN_FAIL      = 2,
+}
+RDD_1588_TX_THREAD_RESULT_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_INTER_LAN_SCHEDULING_MODE_NORMAL          = 0,
+    BL_LILAC_RDD_INTER_LAN_SCHEDULING_MODE_STRICT_PRIORITY = 1,
+    BL_LILAC_RDD_INTER_LAN_SCHEDULING_MODE_ROUND_ROBIN     = 2,
+}
+BL_LILAC_RDD_INTER_LAN_SCHEDULING_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_UPSTREAM_PADDING_DISABLE = 0,
+    BL_LILAC_RDD_UPSTREAM_PADDING_ENABLE  = 1,
+}
+BL_LILAC_RDD_UPSTREAM_PADDING_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_NO_WAIT = 0,
+    BL_LILAC_RDD_WAIT    = 1,
+}
+BL_LILAC_RDD_CPU_WAIT_DTE;
+
+
+typedef enum
+{
+    RDD_US_PEAK_SCHEDULING_MODE_ROUND_ROBIN     = 0,
+    RDD_US_PEAK_SCHEDULING_MODE_STRICT_PRIORITY = 1,
+}
+RDD_US_PEAK_SCHEDULING_MODE;
+
+
+typedef enum
+{
+    rdd_queue_profile_0         = 0,
+    rdd_queue_profile_1         = 1,
+    rdd_queue_profile_2         = 2,
+    rdd_queue_profile_3         = 3,
+    rdd_queue_profile_4         = 4,
+    rdd_queue_profile_5         = 5,
+    rdd_queue_profile_6         = 6,
+    rdd_queue_profile_7         = 7,
+    rdd_queue_profile_disabled  = 8,
+} rdd_queue_profile;
+
+
+typedef struct
+{
+    uint16_t  min_threshold;
+    uint16_t  max_threshold;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ RDD_PRIORITY_CLASS_THRESHOLDS;
+
+
+typedef struct
+{
+    RDD_PRIORITY_CLASS_THRESHOLDS  high_priority_class;
+    RDD_PRIORITY_CLASS_THRESHOLDS  low_priority_class;
+    uint32_t                       max_drop_probability;
+    bdmf_boolean                   us_flow_control_mode;                         
+
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ RDD_QUEUE_PROFILE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_FLOW_PM_COUNTERS_RX   = 1,
+    BL_LILAC_RDD_FLOW_PM_COUNTERS_TX   = 2,
+    BL_LILAC_RDD_FLOW_PM_COUNTERS_BOTH = 3,
+}
+BL_LILAC_RDD_FLOW_PM_COUNTERS_TYPE_DTE;
+
+
+typedef struct
+{
+    uint32_t  good_rx_packet;
+    uint32_t  good_rx_bytes;
+    uint32_t  good_tx_packet;
+    uint32_t  good_tx_bytes;
+    uint16_t  error_rx_packets_discard;
+    uint16_t  error_tx_packets_discard;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ BL_LILAC_RDD_FLOW_PM_COUNTERS_DTE;
+
+
+typedef struct
+{
+    uint32_t  good_tx_packet;
+    uint16_t  error_tx_packets_discard;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ RDD_SERVICE_QUEUE_PM_COUNTERS_DTE;
+
+
+typedef struct
+{
+    uint32_t  rx_valid;
+    uint32_t  tx_valid;
+    uint16_t  error_rx_bpm_congestion;
+    uint16_t  bridge_filtered_packets;
+    uint16_t  bridge_tx_packets_discard;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ BL_LILAC_RDD_BRIDGE_PORT_PM_COUNTERS_DTE;
+
+
+typedef struct
+{
+    uint32_t  good_rx_packet;
+    uint32_t  good_tx_packet;
+    uint32_t  good_rx_bytes;
+    uint32_t  good_tx_bytes;
+    uint16_t  rx_dropped_packet;
+    uint16_t  tx_dropped_packet;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ BL_LILAC_RDD_SUBNET_PM_COUNTERS_DTE;
+
+
+typedef struct
+{
+    uint16_t  invalid_layer2_protocol_drop;
+    uint16_t  firewall_drop;
+    uint16_t  acl_oui_drop;
+    uint16_t  acl_l2_drop;
+    uint16_t  acl_l3_drop;
+    uint16_t  dst_mac_non_router_drop;
+    uint16_t  eth_flow_action_drop;
+    uint16_t  sa_lookup_failure_drop;
+    uint16_t  da_lookup_failure_drop;
+    uint16_t  sa_action_drop;
+    uint16_t  da_action_drop;
+    uint16_t  forwarding_matrix_disabled_drop;
+    uint16_t  connection_action_drop;
+    uint16_t  iptv_layer3_drop;
+    uint16_t  local_switching_congestion;
+    uint16_t  vlan_switching_drop;
+    uint16_t  downstream_policers_drop;
+    uint16_t  layer4_filters_drop[ 16 ];
+    uint16_t  ingress_filters_drop[ BL_LILAC_RDD_INGRESS_FILTERS_NUMBER ];
+    uint16_t  ip_validation_filter_drop[ 2 ];
+    uint16_t  emac_loopback_drop;
+    uint16_t  tpid_detect_drop;
+    uint16_t  dual_stack_lite_congestion_drop;
+    uint16_t  invalid_subnet_ip_drop;
+    uint16_t  us_ddr_queue_drop;
+    uint16_t  ds_parallel_processing_no_avialable_slave;
+    uint16_t  ds_parallel_processing_reorder_slaves;
+    uint16_t  absolute_address_list_overflow_drop;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ BL_LILAC_RDD_VARIOUS_COUNTERS_DTE;
+
+
+typedef enum
+{
+    INVALID_LAYER2_PROTOCOL_DROP_COUNTER_MASK    = 0x1,
+    FIREWALL_DROP_COUNTER_MASK                   = 0x2,
+    ACL_OUI_DROP_COUNTER_MASK                    = 0x4,
+    ACL_L2_DROP_COUNTER_MASK                     = 0x8,
+    ACL_L3_DROP_COUNTER_MASK                     = 0x10,
+    DST_MAC_NON_ROUTER_DROP_COUNTER_MASK         = 0x20,
+    ETHERNET_FLOW_ACTION_DROP_COUNTER_MASK       = 0x40,
+    SA_LOOKUP_FAILURE_DROP_COUNTER_MASK          = 0x80,
+    DA_LOOKUP_FAILURE_DROP_COUNTER_MASK          = 0x100,
+    SA_ACTION_DROP_COUNTER_MASK                  = 0x200,
+    DA_ACTION_DROP_COUNTER_MASK                  = 0x400,
+    FORWARDING_MATRIX_DISABLED_DROP_COUNTER_MASK = 0x800,
+    CONNECTION_ACTION_DROP_COUNTER_MASK          = 0x1000,
+    IPTV_LAYER3_DROP_COUNTER_MASK                = 0x2000,
+    LOCAL_SWITCHING_CONGESTION_COUNTER_MASK      = 0x4000,
+    VLAN_SWITCHING_DROP_COUNTER_MASK             = 0x8000,
+    DOWNSTREAM_POLICERS_DROP_COUNTER_MASK        = 0x10000,
+    LAYER4_FILTERS_DROP_COUNTER_MASK             = 0x20000,
+    INGRESS_FILTERS_DROP_COUNTER_MASK            = 0x40000,
+    IP_VALIDATION_FILTER_DROP_COUNTER_MASK       = 0x80000,
+    EMAC_LOOPBACK_DROP_COUNTER_MASK              = 0x100000,
+    TPID_DETECT_DROP_COUNTER_MASK                = 0x200000,
+    DUAL_STACK_LITE_CONGESTION_DROP_COUNTER_MASK = 0x400000,
+    INVALID_SUBNET_IP_DROP_COUNTER_MASK          = 0x800000,
+    EPON_DDR_QUEUEU_DROP_COUNTER_MASK            = 0x800000,
+    ABSOLUTE_ADDRESS_LIST_OVERFLOW_MASK          = 0x1000000,
+}
+RDD_VARIOUS_COUNTERS_MASK;
+
+typedef enum
+{
+    RDD_CHIP_REVISION_A0 = 0,
+    RDD_CHIP_REVISION_B0 = 1,
+}
+BL_LILAC_RDD_CHIP_REVISION_DTE;
+
+#if defined(WL4908)
+typedef struct
+{
+    uint8_t                             *ddr_bm_ptr;
+    uint32_t                            ddr_bm_phys;
+    uint32_t                            ddr1_bm_phys;
+    uint8_t                             *ddr_fm_ptr;
+    uint32_t                            ddr_fm_phys;
+    BL_LILAC_RDD_MAC_TABLE_SIZE_DTE     mac_table_size;
+    BL_LILAC_RDD_MAC_TABLE_SIZE_DTE     iptv_table_size;
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_DTE  wan_physical_port;
+    uint32_t                            ddr_headroom_size;
+    int16_t                             broadcom_switch_mode;
+    BL_LILAC_RDD_BRIDGE_PORT_DTE        broadcom_switch_physical_port;
+    uint32_t                            bridge_flow_cache_mode;
+    BL_LILAC_RDD_CHIP_REVISION_DTE      chip_revision;
+    uint16_t                            cpu_tx_abs_packet_limit;
+    uint8_t                             *runner_nat_cache_key_ptr; /*Virtual address*/
+    uint8_t                             *runner_nat_cache_context_ptr; /*Virtual address*/
+    uint8_t                             *runner_context_cont_ptr; /*Virtual address*/
+    uint16_t                            token_size;
+    uint8_t                             lp_mode;
+}
+RDD_INIT_PARAMS;
+#else
+typedef struct
+{
+    uint8_t                             *ddr_pool_ptr;       /* virtual address */
+    uint32_t                            ddr_pool_ptr_phys;   /* physical address */
+    uint8_t                             *extra_ddr_pool_ptr; /* virtual address */
+    uint32_t                            extra_ddr_pool_ptr_phys; /* physical address */
+    uint8_t                             *ddr_runner_tables_ptr;  /* virtual address */
+    uint32_t                            ddr_runner_tables_ptr_phys; /* physical address */
+    BL_LILAC_RDD_MAC_TABLE_SIZE_DTE     mac_table_size;
+    BL_LILAC_RDD_MAC_TABLE_SIZE_DTE     iptv_table_size;
+    BL_LILAC_RDD_WAN_PHYSICAL_PORT_DTE  wan_physical_port;
+    uint32_t                            ddr_headroom_size;
+    int16_t                             broadcom_switch_mode;
+    BL_LILAC_RDD_BRIDGE_PORT_DTE        broadcom_switch_physical_port;
+    uint32_t                            bridge_flow_cache_mode;
+    uint16_t                            epon_post_scheduling_queue_size;
+    BL_LILAC_RDD_CHIP_REVISION_DTE      chip_revision;
+    uint16_t                            cpu_tx_abs_packet_limit;
+    BL_LILAC_RDD_BRIDGE_PORT_DTE        lan_direct_to_cpu_port;
+    uint8_t                             lp_mode;
+}
+RDD_INIT_PARAMS;
+#endif
+
+
+typedef struct
+{
+    uint32_t  rate;
+    uint32_t  limit;
+}
+RDD_RATE_LIMIT_PARAMS;
+
+typedef struct
+{
+    uint32_t               sustain_budget;
+    RDD_RATE_LIMIT_PARAMS  peak_budget;
+    uint32_t               peak_weight;
+}
+RDD_RATE_CONTROLLER_PARAMS;
+
+
+typedef struct
+{
+    BL_LILAC_RDD_SUBNET_ID_DTE               subnet_id;
+    BL_LILAC_RDD_FIREWALL_PROTOCOL_TYPE_DTE  protocol;
+    uint32_t                                 dst_port;
+    uint32_t                                 dst_port_last;
+    bdmf_ip_t                                src_ip;
+    uint32_t                                 src_ip_mask;
+    bdmf_ip_t                                dst_ip;
+    uint32_t                                 check_mask_src_ip;
+    uint32_t                                 check_src_ip;
+    uint32_t                                 check_dst_ip;
+    uint32_t                                 next_rule_index;
+}
+RDD_FIREWALL_RULE_PARAMS;
+
+
+typedef struct
+{
+    bdmf_mac_t                         mac_addr;
+    uint16_t                           vlan_id;
+    BL_LILAC_RDD_BRIDGE_PORT_DTE       bridge_port;
+    BL_LILAC_RDD_MAC_ENTRY_TYPE_DTE    entry_type;
+    BL_LILAC_RDD_AGGREGATION_MODE_DTE  aggregation_mode;
+    uint8_t                            extension_entry;
+    BL_LILAC_RDD_MAC_FWD_ACTION_DTE    sa_action;
+    BL_LILAC_RDD_MAC_FWD_ACTION_DTE    da_action;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ RDD_MAC_PARAMS;
+
+
+typedef struct
+{
+    uint16_t                             vid;
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_DTE  isolation_mode_port_vector;
+    BL_LILAC_RDD_BRIDGE_PORT_VECTOR_DTE  aggregation_mode_port_vector;
+    uint16_t                             aggregation_vid_index;
+}
+__PACKING_ATTRIBUTE_STRUCT_END__ RDD_LAN_VID_PARAMS;
+
+
+typedef struct
+{
+    uint8_t                       *packet_ptr;
+    uint32_t                      packet_size;
+    BL_LILAC_RDD_BRIDGE_PORT_DTE  src_bridge_port;
+    uint8_t                       wifi_src_ssid_index;
+    uint16_t                      wifi_dst_ssid_vector;
+    uint16_t                      buffer_number;
+}
+RDD_PCI_TX_PARAMS;
+
+
+typedef struct
+{
+    uint8_t                         *packet_ptr;
+    uint32_t                        packet_size;
+    BL_LILAC_RDD_BRIDGE_PORT_DTE    src_bridge_port;
+    uint32_t                        flow_id;
+    rdpa_cpu_reason                 reason;
+    uint16_t                        buffer_number;
+}
+RDD_CPU_RX_PARAMS;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_UPSTREAM_FLOW_CLASSIFY_VID                = 0,
+    BL_LILAC_RDD_UPSTREAM_FLOW_CLASSIFY_VID_PBITS          = 0,
+    BL_LILAC_RDD_UPSTREAM_FLOW_CLASSIFY_VID_SRC_PORT       = 1,
+    BL_LILAC_RDD_UPSTREAM_FLOW_CLASSIFY_VID_PBITS_SRC_PORT = 2,
+}
+BL_LILAC_RDD_UPSTREAM_FLOW_CLASSIFY_MODE_DTE;
+
+
+typedef enum
+{
+    BL_LILAC_RDD_DOWNSTREAM_FLOW_CLASSIFY_WAN_FLOW = 0,
+    BL_LILAC_RDD_DOWNSTREAM_FLOW_CLASSIFY_PACKET   = 1,
+}
+BL_LILAC_RDD_DOWNSTREAM_FLOW_CLASSIFY_MODE_DTE;
+
+typedef struct
+{
+       uint32_t                                vlan_command_id;
+    rdd_bridge_vlan_command                 vlan_command;
+    rdd_bridge_pbits_command                pbits_command;
+    uint16_t                                outer_vid;
+    uint16_t                                inner_vid;
+    uint8_t                                 outer_pbits;
+    uint8_t                                 inner_pbits;
+       bdmf_boolean                            outer_tpid_overwrite_enable;
+       bdmf_boolean                            inner_tpid_overwrite_enable;
+    rdd_tpid_id                             outer_tpid_id; 
+    rdd_tpid_id                             inner_tpid_id; 
+}
+rdd_vlan_command_params;
+
+typedef enum
+{
+    rdd_dei_command_transparent                         = 0,
+    rdd_dei_command_clear                               = 1,
+    rdd_dei_command_set                                 = 2,
+}
+rdd_dei_command;
+
+/** Ingress classification lookup mode */
+typedef enum
+{
+    rdd_ingress_classification_lookup_mode_ih        = 0,
+    rdd_ingress_classification_lookup_mode_optimized = 1,
+    rdd_ingress_classification_lookup_mode_short     = 2,
+    rdd_ingress_classification_lookup_mode_long      = 3,
+} rdd_ingress_classification_lookup_mode;
+
+/** Full flow cache corner case acceleration modes */
+typedef enum
+{
+    rdd_full_fc_acceleration_non_ip       = 0,
+    rdd_full_fc_acceleration_multicast_ip = 1,
+} rdd_full_fc_acceleration_mode;
+
+typedef enum
+{
+    rdd_single_priority_mode = 0,
+    rdd_double_priority_mode = 1,
+} rdd_policer_mode;
+
+
+
+/** CPU TX redesign **/
+typedef enum
+{
+    rdd_cpu_tx_queue_table_fast_a = 0,
+    rdd_cpu_tx_queue_table_fast_b = 1,
+    rdd_cpu_tx_queue_table_pico_a = 2,
+    rdd_cpu_tx_queue_table_pico_b = 3,
+} rdd_cpu_tx_queue_table;
+
+
+typedef enum
+{
+    rdd_cpu_tx_mode_full         = 0,
+    rdd_cpu_tx_mode_interworking = 1,
+    rdd_cpu_tx_mode_egress_enq   = 2,
+} rdd_cpu_tx_mode;
+
+
+typedef enum
+{
+    rdd_host_buffer   = 0,
+    rdd_runner_buffer = 1,
+} rdd_buffer_type;
+
+typedef struct
+{
+    rdpa_traffic_dir  traffic_dir;
+    rdd_cpu_tx_mode   mode;
+    rdd_buffer_type   buffer_type;
+
+    uint8_t   wifi_ssid;
+    uint16_t  wan_flow;
+    rdpa_discard_prty  drop_precedence;
+
+    union 
+    {
+        struct 
+        {
+#if defined(LEGACY_RDP)
+            BL_LILAC_RDD_EMAC_ID_DTE   emac_id;
+#else
+            rdd_emac_id_t              emac_id;
+#endif
+            BL_LILAC_RDD_QUEUE_ID_DTE  queue_id;
+            bdmf_boolean               en_1588;
+        } ds;
+
+        struct
+        {
+            uint32_t                      wan_channel;
+            uint32_t                      rate_controller;
+            uint32_t                      queue;
+            BL_LILAC_RDD_BRIDGE_PORT_DTE  src_bridge_port;
+        } us;
+    } direction;
+    int is_spdsvc_setup_packet;
+} rdd_cpu_tx_args_t;
+
+static inline uint32_t rdd_rate_to_alloc_unit(uint32_t rate, uint32_t period)
+{
+    /* original algorithm cannot provide enough token for the rate */
+#if 0
+    return ((rate + ((1000000 / period) / 2)) / (1000000 / period));
+#endif
+    return rate;
+}
+
+typedef void ( * BL_LILAC_RDD_LOCK_CRITICAL_SECTION_FP_DTE )( bdmf_fastlock * );
+typedef void ( * BL_LILAC_RDD_UNLOCK_CRITICAL_SECTION_FP_DTE )( bdmf_fastlock * );
+typedef void ( * BL_LILAC_RDD_LOCK_CRITICAL_SECTION_FP_IRQ_DTE )( bdmf_fastlock *, unsigned long * );
+typedef void ( * BL_LILAC_RDD_UNLOCK_CRITICAL_SECTION_FP_IRQ_DTE )( bdmf_fastlock *, unsigned long );
+
+#endif