ソースを参照

rmnet_core: Add shs_ll_handler hook

Add a hook into shs for LL traffic to go into.

CRs-Fixed: 3229047
Change-Id: I4b81c82f77d3aaf685e6c50106cd6e28d7c94753
Signed-off-by: Raul Martinez <[email protected]>
Raul Martinez 3 年 前
コミット
73d31ec862
3 ファイル変更14 行追加0 行削除
  1. 5 0
      core/rmnet_handlers.c
  2. 8 0
      core/rmnet_hook.h
  3. 1 0
      core/rmnet_module.h

+ 5 - 0
core/rmnet_handlers.c

@@ -29,6 +29,8 @@
 #include "rmnet_handlers.h"
 #include "rmnet_descriptor.h"
 #include "rmnet_ll.h"
+#include "rmnet_module.h"
+
 
 #include "rmnet_qmi.h"
 #include "qmi_rmnet.h"
@@ -135,6 +137,9 @@ rmnet_deliver_skb(struct sk_buff *skb, struct rmnet_port *port)
 	rcu_read_unlock();
 
 skip_shs:
+	if (rmnet_module_hook_shs_skb_ll_entry(NULL, skb, &port->shs_cfg))
+		return;
+
 	netif_receive_skb(skb);
 }
 EXPORT_SYMBOL(rmnet_deliver_skb);

+ 8 - 0
core/rmnet_hook.h

@@ -40,6 +40,14 @@ RMNET_MODULE_HOOK(shs_skb_entry,
 	RMNET_MODULE_HOOK_RETURN_TYPE(int)
 );
 
+RMNET_MODULE_HOOK(shs_skb_ll_entry,
+	RMNET_MODULE_HOOK_NUM(SHS_SKB_LL_ENTRY),
+	RMNET_MODULE_HOOK_PROTOCOL(struct sk_buff *skb,
+				   struct rmnet_shs_clnt_s *cfg),
+	RMNET_MODULE_HOOK_ARGS(skb, cfg),
+	RMNET_MODULE_HOOK_RETURN_TYPE(int)
+);
+
 RMNET_MODULE_HOOK(shs_switch,
 	RMNET_MODULE_HOOK_NUM(SHS_SWITCH),
 	RMNET_MODULE_HOOK_PROTOCOL(struct sk_buff *skb,

+ 1 - 0
core/rmnet_module.h

@@ -19,6 +19,7 @@ enum {
 	RMNET_MODULE_HOOK_OFFLOAD_INGRESS,
 	RMNET_MODULE_HOOK_OFFLOAD_CHAIN_END,
 	RMNET_MODULE_HOOK_SHS_SKB_ENTRY,
+	RMNET_MODULE_HOOK_SHS_SKB_LL_ENTRY,
 	RMNET_MODULE_HOOK_SHS_SWITCH,
 	RMNET_MODULE_HOOK_PERF_TETHER_INGRESS,
 	RMNET_MODULE_HOOK_PERF_TETHER_EGRESS,