diff options
author | Raul Martinez <quic_mraul@quicinc.com> | 2022-06-23 17:41:43 -0700 |
---|---|---|
committer | Raul Martinez <quic_mraul@quicinc.com> | 2022-06-23 17:55:55 -0700 |
commit | 73d31ec862c1947798c78597b5737010d9d78e02 (patch) | |
tree | 7370df2d2ce57fe3e1895a04a8eb9342d850ec89 | |
parent | c7cf3b260b9bfdc1b85fe53028842265de65c3af (diff) | |
download | datarmnet-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-x | core/rmnet_handlers.c | 5 | ||||
-rw-r--r-- | core/rmnet_hook.h | 8 | ||||
-rw-r--r-- | core/rmnet_module.h | 1 |
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, |