diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2014-03-31 16:23:51 +0900 |
---|---|---|
committer | Ziyan <jaraidaniel@gmail.com> | 2016-03-11 15:57:06 +0100 |
commit | e11d303b31ecdbd900e95d7bc4a8ad0bd7fe67bf (patch) | |
tree | 82e0b65d6e9e418a8a0781b920674b9e784ca709 /include/net/route.h | |
parent | a9b7aa107807bd5c2d7dd15ee4abada284f5de4d (diff) | |
download | kernel_samsung_espresso10-e11d303b31ecdbd900e95d7bc4a8ad0bd7fe67bf.zip kernel_samsung_espresso10-e11d303b31ecdbd900e95d7bc4a8ad0bd7fe67bf.tar.gz kernel_samsung_espresso10-e11d303b31ecdbd900e95d7bc4a8ad0bd7fe67bf.tar.bz2 |
net: core: Support UID-based routing.
This contains the following commits:
1. 0149763 net: core: Add a UID range to fib rules.
2. 1650474 net: core: Use the socket UID in routing lookups.
3. 0b16771 net: ipv4: Add the UID to the route cache.
4. ee058f1 net: core: Add a RTA_UID attribute to routes.
This is so that userspace can do per-UID route lookups.
Bug: 15413527
Change-Id: I1285474c6734614d3bda6f61d88dfe89a4af7892
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
Diffstat (limited to 'include/net/route.h')
-rw-r--r-- | include/net/route.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/net/route.h b/include/net/route.h index 5d7aae4..3245ce2 100644 --- a/include/net/route.h +++ b/include/net/route.h @@ -60,6 +60,7 @@ struct rtable { int rt_iif; int rt_oif; __u32 rt_mark; + uid_t rt_uid; /* Info on neighbour */ __be32 rt_gateway; @@ -146,7 +147,7 @@ static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi flowi4_init_output(fl4, oif, sk ? sk->sk_mark : 0, tos, RT_SCOPE_UNIVERSE, proto, sk ? inet_sk_flowi_flags(sk) : 0, - daddr, saddr, dport, sport); + daddr, saddr, dport, sport, sock_i_uid(sk)); if (sk) security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); return ip_route_output_flow(net, fl4, sk); @@ -250,7 +251,8 @@ static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst, __be32 flow_flags |= FLOWI_FLAG_CAN_SLEEP; flowi4_init_output(fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE, - protocol, flow_flags, dst, src, dport, sport); + protocol, flow_flags, dst, src, dport, sport, + sock_i_uid(sk)); } static inline struct rtable *ip_route_connect(struct flowi4 *fl4, |