summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaul Martinez <quic_mraul@quicinc.com>2022-06-23 17:41:43 -0700
committerRaul Martinez <quic_mraul@quicinc.com>2022-06-23 17:55:55 -0700
commit73d31ec862c1947798c78597b5737010d9d78e02 (patch)
tree7370df2d2ce57fe3e1895a04a8eb9342d850ec89
parentc7cf3b260b9bfdc1b85fe53028842265de65c3af (diff)
downloaddatarmnet-73d31ec862c1947798c78597b5737010d9d78e02.tar.gz
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 <quic_mraul@quicinc.com>
-rwxr-xr-xcore/rmnet_handlers.c5
-rw-r--r--core/rmnet_hook.h8
-rw-r--r--core/rmnet_module.h1
3 files changed, 14 insertions, 0 deletions
diff --git a/core/rmnet_handlers.c b/core/rmnet_handlers.c
index b8b9381..48d7921 100755
--- a/core/rmnet_handlers.c
+++ b/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);
diff --git a/core/rmnet_hook.h b/core/rmnet_hook.h
index 93d88ef..f1979dc 100644
--- a/core/rmnet_hook.h
+++ b/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,
diff --git a/core/rmnet_module.h b/core/rmnet_module.h
index 4a893da..e69ebd4 100644
--- a/core/rmnet_module.h
+++ b/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,