diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ethernet/src/dp/adk_eth_dp_uli.c adk_source.snowfish_transportIP/code/adk_modules/ethernet/src/dp/adk_eth_dp_uli.c
--- adk_source.snowfish_transportIP/code/adk_modules/ethernet/src/dp/adk_eth_dp_uli.c	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ethernet/src/dp/adk_eth_dp_uli.c	2020-05-01 08:51:54.337314435 +0530
@@ -431,6 +431,7 @@
     uint8_t pktColor;
     uint16_t dev_tx_queue_id;
     uint16_t frag_count = 0;
+    adk_dsi_tx_metadata_t *dsi_md_p = NULL;
 
     eth_uli_imc_param_p = (adk_ethernet_dp_uli_imc_param_t *)
         &adk_md_p->imc_param_start;
@@ -520,7 +521,8 @@
 
         adk_eth_dp_tx_md_update(task_out, eth_action_params->ethDevId,
                 ADK_HOS_CPK_PORT, &qos_queue, coreIndex);
-
+        dsi_md_p = ADK_DSI_TX_METADATA_PTR(task_out);
+        dsi_md_p->l2_domain = eth_action_params->l2Domain;
 
         ret = adk_pal_nic_event_prepare(task_out->port, pktColor, dev_tx_queue_id, task_out, &ev[eventIndex]);
         if(ret == ADK_E_INTERNAL_ERROR)
@@ -630,6 +632,8 @@
                 (*dp_bridge_intf_pp)->eth_dev_id);
 
     }
+    ADK_SYS_DP_FLOW_CACHE_SET_PARAM(eth_action_params->l2Domain,
+            dsi_md_p->l2_domain);
     return ADK_SUCCESS;
 }
 
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ip/src/cp/adk_ip_route.c adk_source.snowfish_transportIP/code/adk_modules/ip/src/cp/adk_ip_route.c
--- adk_source.snowfish_transportIP/code/adk_modules/ip/src/cp/adk_ip_route.c	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ip/src/cp/adk_ip_route.c	2020-05-01 08:51:58.917314655 +0530
@@ -295,7 +295,8 @@
         goto adk_ip_route_add_return;
     }
 
-    if ((ipRoute_p->routeMTU < IP_IF_MTU_MIN) || (ipRoute_p->routeMTU > IP_IF_MTU_MAX))
+    if ( ipRoute_p->routeMTU != 0 && 
+    ((ipRoute_p->routeMTU < IP_IF_MTU_MIN) || (ipRoute_p->routeMTU > IP_IF_MTU_MAX)) )
     {
         retValue = ADK_ERROR_SEV_LEVEL_SET(ADK_IP_E_INVALID_IP_ADDRESS);
         ADK_IPV4_LOG_ERROR(ipHandle, ADK_IP_E_INVALID_MTU, "Invalid MTU Value %d\n", ipRoute_p->routeMTU);
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ip/src/dp/adk_ip_dp_reasm.c adk_source.snowfish_transportIP/code/adk_modules/ip/src/dp/adk_ip_dp_reasm.c
--- adk_source.snowfish_transportIP/code/adk_modules/ip/src/dp/adk_ip_dp_reasm.c	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ip/src/dp/adk_ip_dp_reasm.c	2020-05-01 08:52:03.909314895 +0530
@@ -1563,6 +1563,7 @@
     adk_pktio_task_t *free_mbuf_p,*free_next_p;
     adk_ip_dp_frag_error_t ret = ADK_IP_DP_FRAG_OK;
     adk_pktio_task_t *parent_chained_task = (adk_pktio_task_t *)ADK_MD_GET_NEXT_FRAG((*task_out_p));
+    adk_metadata_t  *adk_md_initial_p= ADK_METADATA_PTR(*task_out_p);
 
     /* make sure frag length is multiple of 8 */
     mtu = ((mtu- IP_HDR_LEN) & 0xFFF8) + IP_HDR_LEN;
@@ -1714,7 +1715,9 @@
             offset += copy_length;
             new_seg = new_seg->next;
         }
-
+        adk_metadata_t * adk_md_frag_p= ADK_METADATA_PTR(current);
+        rte_memcpy(adk_md_frag_p, adk_md_initial_p,
+                        (sizeof(adk_metadata_t)));
         ADK_MD_SET_IP_OFF(current, 0);
         ADK_MD_GET_NEXT_FRAG(prev) = (struct rte_mbuf *)current;
         if(last_fragment == TRUE)
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ip/src/include/adk_ip_dp.h adk_source.snowfish_transportIP/code/adk_modules/ip/src/include/adk_ip_dp.h
--- adk_source.snowfish_transportIP/code/adk_modules/ip/src/include/adk_ip_dp.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ip/src/include/adk_ip_dp.h	2020-05-01 08:52:08.273315105 +0530
@@ -358,7 +358,7 @@
 
 #define ADK_IPV4_REASSEMBLY_TBL_MAX_COLLISION 7
 #define ADK_IPV4_REASSEMBLY_SESSION_TBL_MAX 16000
-#define ADK_IP_DP_REASS_MAX_FRAGS 8
+#define ADK_IP_DP_REASS_MAX_FRAGS 64
 #define ADK_IP_DP_REASM_SESSION_CACHE_SIZE 16
 #define ADK_IP_DP_REASM_SESSION_TBL_NAME "adk_ip_reasm_session_tbl"
 
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_cp_utils.c adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_cp_utils.c
--- adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_cp_utils.c	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_cp_utils.c	2020-05-01 08:52:13.745315367 +0530
@@ -510,12 +510,20 @@
         if ((ipsecModuleInfo_p->staleSaEntries[i] >> ADK_IPSEC_SA_DIR_SHIFT) &
                     ADK_IPSEC_INBOUND)
         {
-            if (ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoSession)
+            if(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoOp)
+            {
+                ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_crypto_op_free", "Free "
+                        "cryptodev operation buffer\n");
+                rte_crypto_op_free(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoOp);
+            }
+            if(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoSession)
             {
                 ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_cryptodev_sym_session_free", "Free "
-                                    "inbound lookaside cryptodev session\n");
+                        "cryptodev lookaside session\n");
+                rte_cryptodev_sym_session_clear(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoDevId,
+                        ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoSession);
                 rte_cryptodev_sym_session_free(
-                            ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoSession);
+                        ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIndex].cryptoSession);
             }
 
             if (adk_rm_resource_isset (ipsecModuleInfo_p->iSASetHdl, saIndex))
@@ -692,9 +700,14 @@
 
                     ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_mempool_create", "Create "
                             "mempool for sessions on crypto device\n");
+                    /*
+                     * Create session mempool, with two objects per session,
+                     * one for the session header and another one for the
+                     * private session data for the crypto device.
+                     */
                     ipsecModuleInfo_p->dpTbl->cryptoDevMap[ipsecModuleInfo_p->numCryptoDevices].sessPool =
                                       rte_mempool_create(poolName,
-                                                         ADK_IPSEC_NUM_OF_SESSIONS,
+                                                         ADK_IPSEC_NUM_OF_SESSIONS * 2,
                                                          maxSessSize,
                                                          0, 0, NULL, NULL, NULL, NULL,
                                                          socketId, 0);
@@ -4361,9 +4374,14 @@
 #endif
                         ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_mempool_create", "Create "
                                 "mempool for sessions on crypto device\n");
+                        /*
+                         * Create session mempool, with two objects per session,
+                         * one for the session header and another one for the
+                         * private session data for the crypto device.
+                         */
                         ipsecModuleInfo_p->dpTbl->cryptoDevMap[ipsecModuleInfo_p->numCryptoDevices].sessPool =
                                             rte_mempool_create(poolName,
-                                                               ADK_IPSEC_NUM_OF_SESSIONS,
+                                                               ADK_IPSEC_NUM_OF_SESSIONS * 2,
                                                                maxSessSize,
                                                                0, 0, NULL, NULL, NULL, NULL,
                                                                socketId, 0);
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_hw_cp.c adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_hw_cp.c
--- adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_hw_cp.c	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipsec/src/cp/adk_ipsec_hw_cp.c	2020-05-01 08:52:18.897315615 +0530
@@ -411,6 +411,7 @@
         digestLen = 16;
         break;
     case ADK_IPSEC_ENCR_NULL_GMAC:
+        cipherAlgo = RTE_CRYPTO_CIPHER_NULL;
         ivLen = 8;
         blockSize = 16;
         break;
@@ -487,27 +488,6 @@
             aead.aead.op = RTE_CRYPTO_AEAD_OP_DECRYPT;
         }
     }
-    else if (authAlgo == RTE_CRYPTO_AUTH_AES_GMAC)
-    {
-        /* for GMAC, there is no "encryption"
-         */
-        auth.type = RTE_CRYPTO_SYM_XFORM_AUTH;
-        auth.auth.algo = authAlgo;
-        auth.auth.key.data = (uint8_t *) saConfig->SASPPContext.authKey.buf;
-        auth.auth.key.length = saConfig->SASPPContext.authKey.len;
-        auth.auth.digest_length = digestLen;
-        if (dir == ADK_IPSEC_OUTBOUND)
-        {
-            auth.auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
-            auth.next = NULL;
-        }
-        else
-        {
-            auth.auth.op = RTE_CRYPTO_AUTH_OP_VERIFY;
-            auth.next = NULL;
-        }
-        init_xform = auth;
-    }
     else
     {
         cipher.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
@@ -698,6 +678,12 @@
     if (!modeInline || 
         (ADK_IPSEC_INBOUND == dir))
     {
+        if (authAlgo == RTE_CRYPTO_AUTH_AES_GMAC)
+        {
+            auth.next = NULL;
+            init_xform = auth;
+        }
+
         devSessPool = allocate_crypto_qp(ipsecModuleInfo_p,
                 &cryptoInfo->cryptoDevId, &cryptoInfo->cryptoQP,
                 priority,
@@ -958,12 +944,20 @@
 
     ADK_IPSEC_LOG_INFO(ipsecHandle, "\n DEL_SA :: %d\n", saIdx);
 
-    if (ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoSession)
+    if(ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoOp)
+    {
+        ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_crypto_op_free", "Free "
+                "cryptodev operation buffer\n");
+        rte_crypto_op_free(ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoOp);
+    }
+    if(ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoSession)
     {
         ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_cryptodev_sym_session_free", "Free "
-                            "cryptodev lookaside session\n");
+                "cryptodev lookaside session\n");
+        rte_cryptodev_sym_session_clear(ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoDevId,
+                ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoSession);
         rte_cryptodev_sym_session_free(
-                    ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoSession);
+                ipsecModuleInfo_p->dpTbl->egCryptoInfo[saIdx].cryptoSession);
     }
     if (ADK_IPSEC_ENCR_NULL != ipsecModuleInfo_p->dpTbl->eSATbl[saIdx].saConfig.SASPPContext.encr)
     {
@@ -1108,14 +1102,21 @@
     uint16_t i;
     ADK_IPSEC_LOG_INFO(ipsecHandle, "\n stop_isa :: %d\n", saIdx);
 
-    if (ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoSession)
+    if(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoOp)
+    {
+        ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_crypto_op_free", "Free "
+                "cryptodev operation buffer\n");
+        rte_crypto_op_free(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoOp);
+    }
+    if(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoSession)
     {
         ADK_LOG_EXT_API (sysHandle, ipsecHandle, "rte_cryptodev_sym_session_free", "Free "
-                            "cryptodev lookaside session\n");
+                "cryptodev lookaside session\n");
+        rte_cryptodev_sym_session_clear(ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoDevId,
+                ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoSession);
         rte_cryptodev_sym_session_free(
-                    ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoSession);
+                ipsecModuleInfo_p->dpTbl->ingCryptoInfo[saIdx].cryptoSession);
     }
-
     if (ADK_IPSEC_ENCR_NULL != ipsecModuleInfo_p->dpTbl->iSATbl[saIdx].saConfig.SASPPContext.encr)
     {
         ADK_NVM_FREE(ipsecModuleInfo_p->dpTbl->iSATbl[saIdx].saConfig.SASPPContext.encrKey.buf);
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6_const.h adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6_const.h
--- adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6_const.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6_const.h	2020-05-01 08:52:30.965316194 +0530
@@ -228,7 +228,7 @@
 #define ADK_IPV6_NO_OF_DEST_MTU_ENTRIES         1024
 #define ADK_IPV6_NO_OF_DEST_MTU_COL_ENTRIES     8
 #define ADK_IPV6_MAX_DYNAMIC_DEST_MTU_TABLE     10
-#define ADK_IPV6_MAX_REASS_ELE                  8
+#define ADK_IPV6_MAX_REASS_ELE                  64
 
 #define ADK_IPV6_MAX_TIMEOUT  2000000
 #define ADK_IPV6_MAX_PERC_CHANGE_TIMEOUT 100
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6.h adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6.h
--- adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipv6/include/adk_ipv6.h	2020-05-01 08:52:25.145315915 +0530
@@ -1001,6 +1001,9 @@
     /*! Generic drop counter due to mismatched configuration */
     uint32_t ipv6GenericDroppedPkts;
 
+    /*! Counter increments for those packets were raising forwarding disable exception has failed */
+    uint32_t ipv6InFwdDisableExceptionFail;
+
 } __attribute__((aligned(64)))adk_ipv6_global_statistics_t;   /* ------  end of struct adk_ipv6_global_statistics_t  ------ */
 
 typedef adk_qos_ingress_stats_t adk_ipv6_ingress_qos_stats_t;
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/cp/adk_ipv6_stats.c adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/cp/adk_ipv6_stats.c
--- adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/cp/adk_ipv6_stats.c	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/cp/adk_ipv6_stats.c	2020-05-01 08:52:36.025316437 +0530
@@ -203,6 +203,10 @@
                                         (global_stats[i]->InvalidIfFail);
         ipv6GlobalStats_p->ipv6GenericDroppedPkts +=
                                         (global_stats[i]->ipv6GenericDroppedPkts);
+
+        ipv6GlobalStats_p->ipv6InFwdDisableExceptionFail +=
+                                        (global_stats[i]->ipv6InFwdDisableExceptionFail);
+
     }
 adk_ipv6_get_global_stats_return:
     ADK_RELEASE_MODULE_LOCK(ipv6Handle, retValue);
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/dp/adk_ipv6_dp_lli.c adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/dp/adk_ipv6_dp_lli.c
--- adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/dp/adk_ipv6_dp_lli.c	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/dp/adk_ipv6_dp_lli.c	2020-05-01 08:52:41.657316707 +0530
@@ -105,7 +105,7 @@
                         INC_NON_NULL(if_stats, ipv6IfL4Hdrtruncated, 1);
                     INC_NON_NULL(ipv6_addr_stats, ipv6InErrors, 1);
                 }
-                return(ADK_E_TASK_CONSUMED);
+                return(ADK_DP_E_ERROR);
             }
 
             dest_port = rte_be_to_cpu_16(dst_port);
@@ -698,7 +698,6 @@
             INC_NON_NULL(if_stats, ipv6IfStatsInReceives, 1);
             INC_NON_NULL(if_stats, ipv6IfStatsHCInOctets, ipv6_len);
             INC_NON_NULL(if_stats, ipv6IfForwardingDisableDrop, 1);
-            ADK_IPV6_DP_LOG_ERROR("Forwarding is disabled \n");
 
             /*raise an exception */
             ret = adk_dp_send_ipv6_exception(task, ipv6_if_entry->vrd_id, task->port,
@@ -706,8 +705,7 @@
                     ADK_IPV6_INTERFACE_FORWARDING_DISABLE, coreIndex, 0);
             if(unlikely(ret != ADK_SUCCESS))
             {
-                ADK_IPV6_DP_LOG_ERROR("error: IPV6 failed to send exception"
-                        "ADK_IPV6_INTERFACE_FORWARDING_DISABLE \n");
+                INC_NON_NULL(ipv6_global_stats, ipv6InFwdDisableExceptionFail, 1);
                 ret = ADK_E_DROP_TASK;
                 goto adk_ipv6_outer_hdr_esp_processing_return;
             }
@@ -1160,7 +1158,6 @@
             INC_NON_NULL(if_stats, ipv6IfStatsInReceives, 1);
             INC_NON_NULL(if_stats, ipv6IfStatsHCInOctets, ipv6_len);
             INC_NON_NULL(if_stats, ipv6IfForwardingDisableDrop, 1);
-            ADK_IPV6_DP_LOG_ERROR("Forwarding is disabled \n");
 
             /*raise an exception */
             ret = adk_dp_send_ipv6_exception(task, ipv6_if_entry->vrd_id, task->port,
@@ -1168,8 +1165,7 @@
                     ADK_IPV6_INTERFACE_FORWARDING_DISABLE, coreIndex, 0);
             if(unlikely(ret != ADK_SUCCESS))
             {
-                ADK_IPV6_DP_LOG_ERROR("error: IPV6 failed to send exception"
-                        "ADK_IPV6_INTERFACE_FORWARDING_DISABLE \n");
+                INC_NON_NULL(ipv6_global_stats, ipv6InFwdDisableExceptionFail, 1);
                 ret = ADK_E_DROP_TASK;
                 goto adk_ipv6_outer_hdr_plain_processing_return;
             }
@@ -1440,7 +1436,6 @@
                         }
                         INC_NON_NULL(if_stats, ipv6IfStatsInMcastErrors, 1);
                         INC_NON_NULL(if_stats, ipv6IfInDiscardedMCastOctets, ipv6_len);
-                        ADK_IPV6_DP_LOG_ERROR("error: while IPv6 Ingress Mcast Group lookup \n");
                         goto adk_ipv6_dp_pkt_proc_lli_return;
                     }
                     else
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp.h adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp.h
--- adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp.h	2020-05-01 08:52:47.137316970 +0530
@@ -1457,6 +1457,9 @@
     /*! Counts the PDUs which are dropped due to errors in ingress direction*/
     uint32_t ipv6InError;
 
+    /*! Counter increments for those packets were raising forwarding disable exception has failed */
+    uint32_t ipv6InFwdDisableExceptionFail;
+
 } __attribute__((aligned(64)))adk_ipv6_dp_global_statistics_t;
 
 typedef struct adk_ipv6_dp_l4counter_statistics_s
diff -Naur adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp_tables.h adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp_tables.h
--- adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp_tables.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/adk_modules/ipv6/src/include/adk_ipv6_dp_tables.h	2020-05-01 08:52:52.349317221 +0530
@@ -144,7 +144,6 @@
 
     if(adk_hos_is_ip_classifier_invalid(ADK_DSI_RX_METADATA_PTR(task)))
     {
-        ADK_IPV6_DP_LOG_DEBUG("IPv6 IngressClassifier HW lookup failed. Falling back to SW lookup\n");
         classifierRules.ipIntfHandle = adk_htonl(interface_id);
         classifierRules.proto = next_header;
         classifierRules.sip0 = src_ipv6_addr[0];
diff -Naur adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos_constants.h adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos_constants.h
--- adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos_constants.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos_constants.h	2020-05-01 08:53:03.453317754 +0530
@@ -68,7 +68,7 @@
 #define ADK_HOS_DEFAULT_ASSIGNED_VLAN_ID        1
 #define ADK_HOS_DEFAULT_L2_DOMAIN               0x1FF
 #define ADK_HOS_DEFAULT_L3_DOMAIN               0x3F
-#define ADK_HOS_DEFAULT_L2_INTERFACE            0x1F
+#define ADK_HOS_DEFAULT_L2_INTERFACE            0x1FF
 #define ADK_HOS_DEFAULT_L2_INGRESS_FLOW         0x3FF
 #define ADK_HOS_DEFAULT_IP_CLASSIFIER           0x3FF
 #define ADK_HOS_DEFAULT_ACL_SET_ID              0xFF
diff -Naur adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos.h adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos.h
--- adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/sif/hos/include/adk_hos.h	2020-05-01 08:52:58.517317517 +0530
@@ -144,7 +144,7 @@
     uint32_t vsi_id;
     uint32_t vsi_q;
     bool is_l2_term;
-    uint8_t l2_interface;
+    uint16_t l2_interface;
 } adk_hos_l2_term_intf_tbl_rule_attr_t;
 
 /*!
diff -Naur adk_source.snowfish_transportIP/code/sif/hos/src/include/adk_hos_conf.h adk_source.snowfish_transportIP/code/sif/hos/src/include/adk_hos_conf.h
--- adk_source.snowfish_transportIP/code/sif/hos/src/include/adk_hos_conf.h	2020-03-20 10:39:23.000000000 +0530
+++ adk_source.snowfish_transportIP/code/sif/hos/src/include/adk_hos_conf.h	2020-05-01 08:53:07.565317951 +0530
@@ -65,7 +65,7 @@
 #define HOS_L2_DOMAIN_WIDTH 9
 #define HOS_L2_DOMAIN_MASK  0x1ff
 #define HOS_L2_INTF_WIDTH   8
-#define HOS_L2_INTF_MASK    0xff
+#define HOS_L2_INTF_MASK    0x1ff
 #define HOS_L3_DOMAIN_WIDTH 6
 #define HOS_L3_DOMAIN_MASK  0x3f
 #define HOS_PKT_TYPE_WIDTH  7
