Subject: Re: [PATCH] ppp: Add rtnl attribute IFLA_PPP_UNIT_ID for specifying ppp unit id

From: James Carlson <[email-masked]>
Date: Tue, 10 Aug 2021 14:11:11 -0400

On 8/10/21 1:16 PM, Pali Rohár wrote:
> On Tuesday 10 August 2021 16:38:32 Chris Fowler wrote:
>> Isn't the UNIT ID the interface number?  As in 'unit 100' will give me ppp100?
> 
> If you do not specify pppd 'ifname' argument then pppd argument 'unit 100'
> will cause that interface name would be ppp100.
> 
> But you are free to rename interface to any string which you like, even
> to "ppp99".
> 
> But this ppp unit id is not interface number. Interface number is
> another number which has nothing with ppp unit id and is assigned to
> every network interface (even loopback). You can see them as the first
> number in 'ip -o l' output. Or you can retrieve it via if_nametoindex()
> function in C.

Correct; completely unrelated to the notion of "interface index."

> ... So if people are really using pppd's 'unit' argument then I think it
> really make sense to support it also in new rtnl interface.

The pppd source base is old.  It dates to the mid-80's.  So it predates 
not just rename-able interfaces in Linux but Linux itself.

I recall supported platforms in the past (BSD-derived) that didn't 
support allowing the user to specify the unit number.  In general, on 
those platforms, the option was accepted and just ignored, and there 
were either release notes or man page updates (on that platform) that 
indicated that "unit N" wouldn't work there.

Are there users on Linux who make use of the "unit" option and who would 
mourn its loss?  Nobody really knows.  It's an ancient feature that was 
originally intended to deal with systems that couldn't rename interfaces 
(where one had to make sure that the actual interface selected matched 
up with pre-configured filtering rules or static routes or the like), 
and to make life nice for administrators (e.g., making sure that serial 
port 1 maps to ppp1, port 2 is ppp2, and so on).

I would think and hope most users reach for the more-flexible "ifname" 
option first, but I certainly can't guarantee it.  It could be buried in 
a script somewhere or (god forbid) some kind of GUI or "usability" tool.

If I were back at Sun, I'd probably call it suitable only for a "Major" 
release, as it removes a publicly documented feature.  But I don't know 
what the considerations are here.  Maybe it's just a "don't really care."

-- 
James Carlson         42.703N 71.076W         <[email-masked]>