All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Westphal <fw@strlen.de>
To: Eyal Birger <eyal.birger@gmail.com>
Cc: Florian Westphal <fw@strlen.de>,
	David Miller <davem@davemloft.net>,
	Willem de Bruijn <willemb@google.com>,
	Eric Dumazet <edumazet@google.com>,
	Shmulik Ladkani <shmulik.ladkani@gmail.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH net-next v4 0/2] net: Introducing socket mark receive socket option
Date: Mon, 2 Mar 2015 15:36:47 +0100	[thread overview]
Message-ID: <20150302143647.GC7418@breakpoint.cc> (raw)
In-Reply-To: <CAHsH6Gu+ZHSdnnritKk5cjTg4NuKppYjffXjNpou2i+uVeykYA@mail.gmail.com>

Eyal Birger <eyal.birger@gmail.com> wrote:
> On Mon, Mar 2, 2015 at 3:29 PM, Florian Westphal <fw@strlen.de> wrote:
> > Eyal Birger <eyal.birger@gmail.com> wrote:
> >> This patch set introduces a new socket option for fetching the mark
> >> of skbs passed to sockets as ancillary data.
> >>
> >> A userspace program may wish to receive the mark of packets it
> >> receives, for example for distinguishing between different TPROXY
> >> diversion rules to the same userspace proxy socket.
> >
> > Hmm... Whats the use case?
> > Even if you cannot use multiple sockets for every divert rule,
> > TPROXY doesn't mangle payload; applications could use sockaddrs
> > returned by accept, getpeername, getsockname etc.  to figure out
> > which original port/address the packet was sent to?
> 
> Right. But that would mean the criteria for traffic diversion would need to
> be known to the application receiving the traffic.

For your solution to work the application needs to know about the TPROXY
rule set and how that is structured, no?

I don't see how that is 'better' than e.g. looking at dst port number.

> Also, the feature has use-cases outside of TPROXY as the skb->mark may be set
> by other mechanisms (including SO_MARK from user space).

Right, but to me it seems very hacky to use SO_MARK as some kind of OOB signal.

It won't work depending on loaded ruleset, it won't work with non-localhost
traffic and it won't work when other application runs in another network
namespace.

Seems such facility would be limited to some pre-configured distribution where
users don't run own software and make no changes to the default system
setup.

> For example, a user space daemon can receive traffic from multiple
> applications using a single socket and distinguish between different traffic groups
> according to the packet mark.

Right, but it might as well use SO_PEERCRED to identify the other pid, right?

  reply	other threads:[~2015-03-02 14:36 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-02 13:14 [PATCH net-next v4 0/2] net: Introducing socket mark receive socket option Eyal Birger
2015-03-02 13:14 ` [PATCH net-next v4 1/2] net: Rename sock_recv_ts_and_drops() to sock_cmsg_recv() Eyal Birger
2015-03-02 13:14 ` [PATCH net-next v4 2/2] net: Introducing socket mark receive socket option Eyal Birger
2015-03-02 13:29 ` [PATCH net-next v4 0/2] " Florian Westphal
2015-03-02 13:48   ` Eyal Birger
2015-03-02 14:36     ` Florian Westphal [this message]
2015-03-02 18:34       ` Eyal Birger
2015-03-02 18:55         ` Florian Westphal
2015-03-02 20:05       ` David Miller
2015-03-02 20:38         ` Eyal Birger
2015-03-02 20:57           ` David Miller
2015-03-02 21:11             ` Eyal Birger
2015-03-02 21:45               ` David Miller
2015-03-03  3:45                 ` Eyal Birger
2015-03-03  4:01                   ` David Miller
2015-03-02 20:01 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150302143647.GC7418@breakpoint.cc \
    --to=fw@strlen.de \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eyal.birger@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=shmulik.ladkani@gmail.com \
    --cc=willemb@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.