aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/route.h
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2014-03-31 16:23:51 +0900
committerZiyan <jaraidaniel@gmail.com>2016-03-11 15:57:06 +0100
commite11d303b31ecdbd900e95d7bc4a8ad0bd7fe67bf (patch)
tree82e0b65d6e9e418a8a0781b920674b9e784ca709 /include/net/route.h
parenta9b7aa107807bd5c2d7dd15ee4abada284f5de4d (diff)
downloadkernel_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.h6
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,