[qca-nss-drv] Modify subsystem dataplane registration APIs

Modify subsystem dataplane registration APIs to add features
argument which is used to determine the skb types supported by the interface.

Change-Id: Id9a30ada42d83d62043f976a7a2f9803c465106d
Signed-off-by: Sundarajan Srinivasan <sundaraj@codeaurora.org>
diff --git a/nss_tunipip6.c b/nss_tunipip6.c
index 0fc78bb..257bda0 100644
--- a/nss_tunipip6.c
+++ b/nss_tunipip6.c
@@ -64,7 +64,7 @@
 	 * callback
 	 */
 	cb = (nss_tunipip6_msg_callback_t)ncm->cb;
-	ctx =  nss_ctx->nss_top->if_ctx[ncm->interface];
+	ctx =  nss_ctx->nss_top->subsys_dp_register[ncm->interface].ndev;
 
 	/*
 	 * call ipip6 tunnel callback
@@ -152,14 +152,19 @@
  */
 struct nss_ctx_instance *nss_register_tunipip6_if(uint32_t if_num,
 			nss_tunipip6_callback_t tunipip6_callback,
-			nss_tunipip6_msg_callback_t event_callback, struct net_device *netdev)
+			nss_tunipip6_msg_callback_t event_callback,
+			struct net_device *netdev,
+			uint32_t features)
 {
 	nss_assert((if_num >= NSS_MAX_VIRTUAL_INTERFACES) && (if_num < NSS_MAX_NET_INTERFACES));
 
-	nss_top_main.if_ctx[if_num] = netdev;
-	nss_top_main.if_rx_callback[if_num] = tunipip6_callback;
 	nss_top_main.tunipip6_msg_callback = event_callback;
 
+	nss_top_main.subsys_dp_register[if_num].ndev = netdev;
+	nss_top_main.subsys_dp_register[if_num].cb = tunipip6_callback;
+	nss_top_main.subsys_dp_register[if_num].app_data = NULL;
+	nss_top_main.subsys_dp_register[if_num].features = features;
+
 	return (struct nss_ctx_instance *)&nss_top_main.nss[nss_top_main.tunipip6_handler_id];
 }
 
@@ -170,8 +175,9 @@
 {
 	nss_assert((if_num >= NSS_MAX_VIRTUAL_INTERFACES) && (if_num < NSS_MAX_NET_INTERFACES));
 
-	nss_top_main.if_rx_callback[if_num] = NULL;
-	nss_top_main.if_ctx[if_num] = NULL;
+	nss_top_main.subsys_dp_register[if_num].cb = NULL;
+	nss_top_main.subsys_dp_register[if_num].ndev = NULL;
+	nss_top_main.subsys_dp_register[if_num].features = 0;
 	nss_top_main.tunipip6_msg_callback = NULL;
 }