From: Guillaume Nault <gnault@redhat.com>
To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
Dominique Martinet <asmadeus@codewreck.org>,
James Chapman <jchapman@katalix.com>,
tparkin@katalix.com, edumazet@google.com, davem@davemloft.net,
kuba@kernel.org, pabeni@redhat.com, corbet@lwn.net,
netdev@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] PPPoL2TP: Add more code snippets
Date: Tue, 18 Apr 2023 10:03:53 +0200 [thread overview]
Message-ID: <ZD5O6VzyEAggakb2@debian> (raw)
In-Reply-To: <20230416224316.xlvgjor65nejldwh@begin>
On Mon, Apr 17, 2023 at 12:43:16AM +0200, Samuel Thibault wrote:
> Dominique Martinet, le lun. 17 avril 2023 07:26:41 +0900, a ecrit:
> > Also, this got me wondering if the 'if' fd can be closed immediately or
> > if the interface will be removed when the fd is closed (probably not?)
>
> Closing the fd would close the if, yes. AIUI one really has to keep the
> pppox socket (for stats), the ppp chan (for non-data ppp packets), and
> the ppp if (for the if).
L2TP has control and data packets. The L2TP socket is there to handle
L2TP control packets in user space, as the kernel only handles L2TP
data packets. You have to keep the L2TP session socket open, otherwise
you can't handle the session anymore.
Then there are the PPP file descriptors. A PPP channel is used to send
and receive PPP frames. It has to be associated with a lower transport,
for example an L2TP session if you want to encapsulate PPP into L2TP.
But that could be something else (a PPPoE session, a serial link, etc.).
Same as for L2TP session sockets, you need to keep the PPP channel fd
open, otherwise you can't handle the PPP session anymore.
Finally there are PPP units. A PPP unit represents the PPP networking
device (like ppp0). A PPP unit has to be associated with a PPP channel
(or several PPP channels for multilink PPP, but better avoid that). A
PPP unit doesn't know how to send packets, it delegates that to its PPP
channels.
You can avoid creating PPP units if you don't need a PPP network
device. In particular, if you're forwarding a PPP session between a
PPPoE and an L2TP session (or between two different L2TP sesions), you
typically don't need to create any PPP unit. You handle the initial LCP
negociation and PPP authentication using a PPP channel on the incoming
side, then you create another PPP channel on the other side (where you
want to forward the incoming PPP session) and finally bridge them
together with PPPIOCBRIDGECHAN.
> Samuel
>
next prev parent reply other threads:[~2023-04-18 8:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-16 22:07 [PATCH] PPPoL2TP: Add more code snippets Samuel Thibault
2023-04-16 22:26 ` Dominique Martinet
2023-04-16 22:43 ` Samuel Thibault
2023-04-18 8:03 ` Guillaume Nault [this message]
2023-04-18 8:14 ` Guillaume Nault
2023-04-18 8:34 ` Guillaume Nault
2023-04-18 8:53 ` Samuel Thibault
2023-04-18 9:06 ` Guillaume Nault
2023-04-18 9:11 ` Samuel Thibault
2023-04-18 10:17 ` Guillaume Nault
2023-04-18 10:31 ` Samuel Thibault
2023-04-18 11:25 ` Guillaume Nault
2023-04-18 11:54 ` Samuel Thibault
2023-04-18 13:38 ` Guillaume Nault
2023-04-18 14:18 ` Samuel Thibault
2023-04-19 10:49 ` Tom Parkin
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=ZD5O6VzyEAggakb2@debian \
--to=gnault@redhat.com \
--cc=asmadeus@codewreck.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jchapman@katalix.com \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=samuel.thibault@ens-lyon.org \
--cc=tparkin@katalix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).