ANDROID: GKI: net: add vendor hooks net qos for gki purpose
We want to do some network policies when sending and receiving tcp and udp packets in the user process context Bug: 190523684 Change-Id: Id790a381d5ce6c35a747697510f14678ccf3ff2f Signed-off-by: Liangliang Li <liliangliang@vivo.com> Signed-off-by: jujiang <jyu.jiang@vivo.corp-partner.google.com>
This commit is contained in:
@@ -287,6 +287,12 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_udp6_unicast_rcv_skb);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tcp_rcv_established_fast_path);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tcp_rcv_established_slow_path);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tcp_rcv_rtt_update);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_tcp_sendmsg);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_tcp_recvmsg);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_udp_sendmsg);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_udp_recvmsg);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_udpv6_sendmsg);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_udpv6_recvmsg);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_should_memcg_bypass);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_capacity_show);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init);
|
||||
|
||||
@@ -93,6 +93,26 @@ DECLARE_HOOK(android_vh_dc_receive,
|
||||
TP_PROTO(struct sk_buff *skb, int *flag), TP_ARGS(skb, flag));
|
||||
DECLARE_HOOK(android_vh_tcp_rcv_rtt_update,
|
||||
TP_PROTO(struct tcp_sock *tp, u32 sample, int win_dep), TP_ARGS(tp, sample, win_dep));
|
||||
struct msghdr;
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_tcp_sendmsg,
|
||||
TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len),
|
||||
TP_ARGS(sk, msg, len), 1);
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_tcp_recvmsg,
|
||||
TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len, int flags, int *addr_len),
|
||||
TP_ARGS(sk, msg, len, flags, addr_len), 1);
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_udp_sendmsg,
|
||||
TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len),
|
||||
TP_ARGS(sk, msg, len), 1);
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_udp_recvmsg,
|
||||
TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len, int flags, int *addr_len),
|
||||
TP_ARGS(sk, msg, len, flags, addr_len), 1);
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_udpv6_sendmsg,
|
||||
TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len),
|
||||
TP_ARGS(sk, msg, len), 1);
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_udpv6_recvmsg,
|
||||
TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len, int flags, int *addr_len),
|
||||
TP_ARGS(sk, msg, len, flags, addr_len), 1);
|
||||
|
||||
/* macro versions of hooks are no longer required */
|
||||
|
||||
#endif /* _TRACE_HOOK_NET_VH_H */
|
||||
|
||||
@@ -1356,6 +1356,7 @@ int tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
|
||||
{
|
||||
int ret;
|
||||
|
||||
trace_android_rvh_tcp_sendmsg(sk, msg, size);
|
||||
lock_sock(sk);
|
||||
ret = tcp_sendmsg_locked(sk, msg, size);
|
||||
release_sock(sk);
|
||||
@@ -2877,6 +2878,9 @@ int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int flags,
|
||||
sizeof(msg->msg_inq), &msg->msg_inq);
|
||||
}
|
||||
}
|
||||
|
||||
trace_android_rvh_tcp_recvmsg(sk, msg, len, flags, addr_len);
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(tcp_recvmsg);
|
||||
|
||||
@@ -1135,6 +1135,8 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
||||
struct ip_options_data opt_copy;
|
||||
int uc_index;
|
||||
|
||||
trace_android_rvh_udp_sendmsg(sk, msg, len);
|
||||
|
||||
if (len > 0xFFFF)
|
||||
return -EMSGSIZE;
|
||||
|
||||
@@ -1958,6 +1960,8 @@ try_again:
|
||||
if (flags & MSG_TRUNC)
|
||||
err = ulen;
|
||||
|
||||
trace_android_rvh_udp_recvmsg(sk, msg, len, flags, addr_len);
|
||||
|
||||
skb_consume_udp(sk, skb, peeking ? -err : err);
|
||||
return err;
|
||||
|
||||
|
||||
@@ -494,6 +494,8 @@ try_again:
|
||||
if (flags & MSG_TRUNC)
|
||||
err = ulen;
|
||||
|
||||
trace_android_rvh_udpv6_recvmsg(sk, msg, len, flags, addr_len);
|
||||
|
||||
skb_consume_udp(sk, skb, peeking ? -err : err);
|
||||
return err;
|
||||
|
||||
@@ -1401,6 +1403,8 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
||||
int is_udplite = IS_UDPLITE(sk);
|
||||
int (*getfrag)(void *, char *, int, int, int, struct sk_buff *);
|
||||
|
||||
trace_android_rvh_udpv6_sendmsg(sk, msg, len);
|
||||
|
||||
ipcm6_init(&ipc6);
|
||||
ipc6.gso_size = READ_ONCE(up->gso_size);
|
||||
ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags);
|
||||
|
||||
Reference in New Issue
Block a user