[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1255869758.4815.40.camel@dogo.mojatatu.com>
Date: Sun, 18 Oct 2009 08:42:38 -0400
From: jamal <hadi@...erus.ca>
To: netdev@...r.kernel.org
Cc: David Miller <davem@...emloft.net>, Atis Elsts <atis@...rotik.com>,
eric.dumazet@...il.com,
Maciej Żenczykowski <zenczykowski@...il.com>
Subject: [PATCH][RFC]: ingress socket filter by mark
Maciej forced me to dig into this ;->
at the socket level if a packet arrives with a different mark than
what we bind to, drop it. I have tested this patch and it drops a packet
with mismatching mark.
There are several approaches - and i think the patch suggestion i have
made here maybe too strict. I assume that if someone binds to a mark,
they want to not only send packets with that mark but receive
only if that mark is set.
A looser check would be something along the line accept as well if mark
is not set i.e
if (sk->sk_mark && skb->mark && sk->sk_mark != skb->mark)
Alternatively i could add one bit in the socket flags and have it so
that check is made only if app has been explicit:
if (sock_flag(sk, SOCK_CHK_SOMARK) && sk->sk_mark != skb->mark) drop
Another approach is to set sock filter from app. I dont like this
approach because it will be the least usable from app level and would be
the least simple from kernel level.
cheers,
jamal
View attachment "filt-sock-m" of type "text/x-patch" (376 bytes)
Powered by blists - more mailing lists