+From 5d0cfcf3f26b5aafe91f23fa9095461bdf83c074 Mon Sep 17 00:00:00 2001
+From: S.Çağlar Onur <caglar@cs.princeton.edu>
+Date: Tue, 7 Dec 2010 11:06:08 -0500
+Subject: [PATCH] linux-2.6-521-packet-tagging.patch
+
+---
+ include/linux/skbuff.h | 2 ++
+ net/core/skbuff.c | 2 ++
+ net/core/sock.c | 2 ++
+ net/ipv4/af_inet.c | 2 ++
+ net/ipv4/netfilter/ipt_LOG.c | 2 ++
+ 5 files changed, 10 insertions(+), 0 deletions(-)
+
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 567776e..1b64e1e 100644
+index 69af253..0670992 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -394,6 +394,8 @@ struct sk_buff {
+@@ -391,6 +391,8 @@ struct sk_buff {
__u32 dropcount;
};
+#define skb_tag mark
+
__u16 vlan_tci;
-
- sk_buff_data_t transport_header;
+ #ifndef __GENKSYMS__
+ __u16 rxhash;
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index ec85681..d5a641e 100644
+index 841664f..371324c 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -208,6 +208,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
/* make sure we initialize shinfo sequentially */
shinfo = skb_shinfo(skb);
atomic_set(&shinfo->dataref, 1);
-@@ -559,6 +560,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
+@@ -562,6 +563,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
#endif
#endif
new->vlan_tci = old->vlan_tci;
skb_copy_secmark(new, old);
}
diff --git a/net/core/sock.c b/net/core/sock.c
-index 617fae7..d276d4b 100644
+index f406c4b..40197d6 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -1056,6 +1056,8 @@ struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
+@@ -1081,6 +1081,8 @@ struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
sk->sk_prot = sk->sk_prot_creator = prot;
sock_lock_init(sk);
sock_net_set(sk, get_net(net));
+ if (!in_interrupt())
+ sk->sk_mark = nx_current_nid();
atomic_set(&sk->sk_wmem_alloc, 1);
- }
+ sock_update_classid(sk);
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
-index 7731d22..026c3b1 100644
+index e3213b2..3f29c1f 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -181,6 +181,8 @@ static int inet_autobind(struct sock *sk)