All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guillaume Nault <gnault@redhat.com>
To: "Pali Rohár" <pali@kernel.org>
Cc: James Carlson <carlsonj@workingcode.com>,
	Chris Fowler <cfowler@outpostsentinel.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paul Mackerras <paulus@samba.org>,
	"David S. Miller" <davem@davemloft.net>,
	"linux-ppp@vger.kernel.org" <linux-ppp@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ppp: Add rtnl attribute IFLA_PPP_UNIT_ID for specifying ppp unit id
Date: Mon, 16 Aug 2021 18:11:14 +0200	[thread overview]
Message-ID: <20210816161114.GA3611@pc-32.home> (raw)
In-Reply-To: <20210812190440.fknfthdk3mazm6px@pali>

On Thu, Aug 12, 2021 at 09:04:40PM +0200, Pali Rohár wrote:
> The point here is that there is application (pppd) which allows
> specifying custom unit id as an option argument. Also it allows to call
> external applications (at some events) with sharing file descriptors.
> And it is one of the options how to touch part of ppp connection via
> external scripts / applications. You start pppd for /dev/ttyUSB<N> with
> unit id <N> and then in external script you use <N> for ioctls. And I do
> not know if there is a way how to retrieve unit id in those external
> scripts. There was already discussion about marking all file descriptors
> in pppd as close-on-exec and it was somehow rejected as it will broke
> custom scripts / applications which pppd invokes on events. So looks
> like that people are using these "features" of pppd.

Potential external pppd scripts, that depend on the unit id, may be a
valid use case for letting the netlink api define this identifier (if
pppd ever gets netlink support).

> Option "unit" in pppd specifies ppp unit id. And if new API (rtnl) would
> not provide equivalent for allowing to specify it then migrating pppd
> from ioctl to rtnl is not possible without breaking compatibility.
> 
> As you already described, we can simulate setting default interface name
> in pppd application. But above usage or any other which expose pppd API
> to other application is not possible to simulate.

If the pppd project is interested in adding support for the netlink
api, then I'm fine with adding this feature. I just want to make sure
that it'll have a real world use case.

> So I think we need to first decide or solve issue if rtnl ppp API should
> provide same functionality as ioctl ppp API. If answer is yes, then some
> kind of specifying custom ppp unit id is required. If answer is no (e.g.
> because we do not want ppp unit id in rtnl API as it looks legacy and
> has issues) then rtnl ppp API cannot be used by ppp as it cannot provide
> all existing / supported features without breaking legacy compatibility.
> 
> I see pros & cons for both answers. Not supporting legacy code paths in
> new code/API is the way how to clean up code and prevent repeating old
> historic issues. But if new code/API is not fully suitable for pppd --
> which is de-facto standard Linux userspace implementation -- does it
> make sense to have it? Or does it mean to also implement new userspace
> part of implementation (e.g. pppd2) to avoid these legacy / historic
> issues? Or... is not whole ppp protocol just legacy part of our history
> which should not be used in new modern setups? And for "legacy usage" is
> current implementation enough and it does not make sense to invest time
> into this area? I cannot answer to these questions, but I think it is
> something quite important as it can show what should be direction and
> future of ppp subsystem.

PPP isn't legacy, but very few people are interested in working on and
maintaining the code.

Do you have plans for adding netlink support to pppd? If so, is the
project ready to accept such code?

BTW, sorry for the delay.


WARNING: multiple messages have this Message-ID (diff)
From: Guillaume Nault <gnault@redhat.com>
To: "Pali Rohár" <pali@kernel.org>
Cc: James Carlson <carlsonj@workingcode.com>,
	Chris Fowler <cfowler@outpostsentinel.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paul Mackerras <paulus@samba.org>,
	"David S. Miller" <davem@davemloft.net>,
	"linux-ppp@vger.kernel.org" <linux-ppp@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ppp: Add rtnl attribute IFLA_PPP_UNIT_ID for specifying ppp unit id
Date: Mon, 16 Aug 2021 16:11:14 +0000	[thread overview]
Message-ID: <20210816161114.GA3611@pc-32.home> (raw)
In-Reply-To: <20210812190440.fknfthdk3mazm6px@pali>

On Thu, Aug 12, 2021 at 09:04:40PM +0200, Pali Rohár wrote:
> The point here is that there is application (pppd) which allows
> specifying custom unit id as an option argument. Also it allows to call
> external applications (at some events) with sharing file descriptors.
> And it is one of the options how to touch part of ppp connection via
> external scripts / applications. You start pppd for /dev/ttyUSB<N> with
> unit id <N> and then in external script you use <N> for ioctls. And I do
> not know if there is a way how to retrieve unit id in those external
> scripts. There was already discussion about marking all file descriptors
> in pppd as close-on-exec and it was somehow rejected as it will broke
> custom scripts / applications which pppd invokes on events. So looks
> like that people are using these "features" of pppd.

Potential external pppd scripts, that depend on the unit id, may be a
valid use case for letting the netlink api define this identifier (if
pppd ever gets netlink support).

> Option "unit" in pppd specifies ppp unit id. And if new API (rtnl) would
> not provide equivalent for allowing to specify it then migrating pppd
> from ioctl to rtnl is not possible without breaking compatibility.
> 
> As you already described, we can simulate setting default interface name
> in pppd application. But above usage or any other which expose pppd API
> to other application is not possible to simulate.

If the pppd project is interested in adding support for the netlink
api, then I'm fine with adding this feature. I just want to make sure
that it'll have a real world use case.

> So I think we need to first decide or solve issue if rtnl ppp API should
> provide same functionality as ioctl ppp API. If answer is yes, then some
> kind of specifying custom ppp unit id is required. If answer is no (e.g.
> because we do not want ppp unit id in rtnl API as it looks legacy and
> has issues) then rtnl ppp API cannot be used by ppp as it cannot provide
> all existing / supported features without breaking legacy compatibility.
> 
> I see pros & cons for both answers. Not supporting legacy code paths in
> new code/API is the way how to clean up code and prevent repeating old
> historic issues. But if new code/API is not fully suitable for pppd --
> which is de-facto standard Linux userspace implementation -- does it
> make sense to have it? Or does it mean to also implement new userspace
> part of implementation (e.g. pppd2) to avoid these legacy / historic
> issues? Or... is not whole ppp protocol just legacy part of our history
> which should not be used in new modern setups? And for "legacy usage" is
> current implementation enough and it does not make sense to invest time
> into this area? I cannot answer to these questions, but I think it is
> something quite important as it can show what should be direction and
> future of ppp subsystem.

PPP isn't legacy, but very few people are interested in working on and
maintaining the code.

Do you have plans for adding netlink support to pppd? If so, is the
project ready to accept such code?

BTW, sorry for the delay.

  reply	other threads:[~2021-08-16 16:11 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-07 16:37 [PATCH] ppp: Add rtnl attribute IFLA_PPP_UNIT_ID for specifying ppp unit id Pali Rohár
2021-08-07 16:37 ` Pali Rohár
2021-08-09 19:25 ` Jakub Kicinski
2021-08-09 19:25   ` Jakub Kicinski
2021-08-09 19:31   ` Pali Rohár
2021-08-09 19:31     ` Pali Rohár
2021-08-10 15:39     ` Guillaume Nault
2021-08-10 15:39       ` Guillaume Nault
2021-08-10 16:04       ` Pali Rohár
2021-08-10 16:04         ` Pali Rohár
2021-08-11 17:19         ` Guillaume Nault
2021-08-11 17:19           ` Guillaume Nault
2021-08-11 17:54           ` Pali Rohár
2021-08-11 17:54             ` Pali Rohár
2021-08-12  9:19             ` Guillaume Nault
2021-08-12  9:19               ` Guillaume Nault
2021-08-12 14:09               ` Pali Rohár
2021-08-12 14:09                 ` Pali Rohár
2021-08-12 19:12                 ` Guillaume Nault
2021-08-12 19:12                   ` Guillaume Nault
     [not found]       ` <BN0P223MB0327A247724B7AE211D2E84EA7F79@BN0P223MB0327.NAMP223.PROD.OUTLOOK.COM>
2021-08-10 17:16         ` Pali Rohár
2021-08-10 17:16           ` Pali Rohár
2021-08-10 18:11           ` James Carlson
2021-08-10 18:11             ` James Carlson
2021-08-11 17:38             ` Guillaume Nault
2021-08-11 17:38               ` Guillaume Nault
2021-08-11 18:04               ` Pali Rohár
2021-08-11 18:04                 ` Pali Rohár
2021-08-12  9:28                 ` Guillaume Nault
2021-08-12  9:28                   ` Guillaume Nault
2021-08-12 13:48                   ` Pali Rohár
2021-08-12 13:48                     ` Pali Rohár
2021-08-12 18:26                     ` Guillaume Nault
2021-08-12 18:26                       ` Guillaume Nault
2021-08-12 19:04                       ` Pali Rohár
2021-08-12 19:04                         ` Pali Rohár
2021-08-16 16:11                         ` Guillaume Nault [this message]
2021-08-16 16:11                           ` Guillaume Nault
2021-08-16 16:23                           ` Pali Rohár
2021-08-16 16:23                             ` Pali Rohár
2021-08-17 16:05                             ` Guillaume Nault
2021-08-17 16:05                               ` Guillaume Nault
2021-08-17 16:21                               ` Pali Rohár
2021-08-17 16:21                                 ` Pali Rohár
2022-07-09 12:09                                 ` Pali Rohár
2022-07-12 17:34                                   ` Guillaume Nault

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=20210816161114.GA3611@pc-32.home \
    --to=gnault@redhat.com \
    --cc=carlsonj@workingcode.com \
    --cc=cfowler@outpostsentinel.com \
    --cc=davem@davemloft.net \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-ppp@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pali@kernel.org \
    --cc=paulus@samba.org \
    /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.