diff -Nurp linux-2.6.22-526/include/linux/netfilter/xt_CLASSIFY.h linux-2.6.22-527/include/linux/netfilter/xt_CLASSIFY.h --- linux-2.6.22-526/include/linux/netfilter/xt_CLASSIFY.h 2007-07-08 19:32:17.000000000 -0400 +++ linux-2.6.22-527/include/linux/netfilter/xt_CLASSIFY.h 2008-07-25 14:46:22.000000000 -0400 @@ -3,6 +3,7 @@ struct xt_classify_target_info { u_int32_t priority; + u_int8_t add_mark; }; #endif /*_XT_CLASSIFY_H */ diff -Nurp linux-2.6.22-526/net/netfilter/xt_CLASSIFY.c linux-2.6.22-527/net/netfilter/xt_CLASSIFY.c --- linux-2.6.22-526/net/netfilter/xt_CLASSIFY.c 2007-07-08 19:32:17.000000000 -0400 +++ linux-2.6.22-527/net/netfilter/xt_CLASSIFY.c 2008-07-25 14:50:50.000000000 -0400 @@ -36,6 +36,9 @@ target(struct sk_buff **pskb, const struct xt_classify_target_info *clinfo = targinfo; (*pskb)->priority = clinfo->priority; + if (clinfo->add_mark) + (*pskb)->priority += (*pskb)->mark; + return XT_CONTINUE; }