summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorLaszlo Attila Toth <panther@balabit.hu>2008-01-31 03:08:16 (GMT)
committerDavid S. Miller <davem@davemloft.net>2008-02-01 03:27:19 (GMT)
commit4a19ec5800fc3bb64e2d87c4d9fdd9e636086fe0 (patch)
tree610bd4e7dbcbdae25ba3806f4256745e98617825 /include/net
parent036c2e27bc3a6498afb35de017d810194032d765 (diff)
downloadlinux-fsl-qoriq-4a19ec5800fc3bb64e2d87c4d9fdd9e636086fe0.tar.xz
[NET]: Introducing socket mark socket option.
A userspace program may wish to set the mark for each packets its send without using the netfilter MARK target. Changing the mark can be used for mark based routing without netfilter or for packet filtering. It requires CAP_NET_ADMIN capability. Signed-off-by: Laszlo Attila Toth <panther@balabit.hu> Acked-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/route.h2
-rw-r--r--include/net/sock.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/include/net/route.h b/include/net/route.h
index 4eabf00..fcc6d5b 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -27,6 +27,7 @@
#include <net/dst.h>
#include <net/inetpeer.h>
#include <net/flow.h>
+#include <net/sock.h>
#include <linux/in_route.h>
#include <linux/rtnetlink.h>
#include <linux/route.h>
@@ -149,6 +150,7 @@ static inline int ip_route_connect(struct rtable **rp, __be32 dst,
int flags)
{
struct flowi fl = { .oif = oif,
+ .mark = sk->sk_mark,
.nl_u = { .ip4_u = { .daddr = dst,
.saddr = src,
.tos = tos } },
diff --git a/include/net/sock.h b/include/net/sock.h
index 9023244..e3fb4c0 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -262,6 +262,8 @@ struct sock {
__u32 sk_sndmsg_off;
int sk_write_pending;
void *sk_security;
+ __u32 sk_mark;
+ /* XXX 4 bytes hole on 64 bit */
void (*sk_state_change)(struct sock *sk);
void (*sk_data_ready)(struct sock *sk, int bytes);
void (*sk_write_space)(struct sock *sk);