Page MenuHomePhabricator

PPPoE client CLI redesign
Open, Requires assessmentPublicFEATURE REQUEST

Description

The current PPPoE CLI is rather clumsy, like everything that is nested in interface for no good reason.
It's hard to extend it to support new interface types, and it's also hard for the user to change the interface it's sourced from.

I suggest moving it to its own interface type.

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close

Event Timeline

c-po added a subscriber: c-po.Mar 28 2019, 7:03 AM

Cisco has the interface type Dialer which is used to configure a ton of PPPoE stuff. In addition a dialer is later assigned to a physical interface, e.g. ATM line card or an ethernet port. With this type of configuration a physical interface can be moved easily.

runar added a subscriber: runar.Mar 28 2019, 7:50 AM

PPP supports many forms of transfer, hense the dialer interface on cisco. almost all supported ppp/slip etc. functions are supported by the dialer function in a cisco device. Now, vyos supports PPPoE, but we don't support any other PPP "format".. if we intend to add support for more formats (serial nullmodem, modem, isdn++) then i would favor a new Dialer or Dialup interface type.. if not.. why not call it pppoe?

runar added a comment.Mar 28 2019, 7:58 AM

And yea, i feel like the configuration is quite backwards in the curremt implementation... Configuration of the ppp interface should be in its own interface block, and not inside a parent interface like it is today.. the parent is only an attribute on the ppp interface...

pasik added a subscriber: pasik.Mar 30 2019, 10:59 AM
c-po added a comment.May 29 2019, 3:05 PM

If there is a refactoring ongoing please also consider the following change to flatten the PPPoE IPv6 configuration by making use of a present nested node:

IMHO it makes no sense to have a dedicated enable-ipv6 leafnode in parallel to the ipv6 node. It should be placed under the ipv6 node instead as enable or enabled

current

vyos@vyos# show interfaces ethernet eth0 vif 7
+pppoe 0 {
+    enable-ipv6
+    ipv6 {
+        address {
+            autoconf
+        }
+        dup-addr-detect-transmits 2
+    }
+}

preferred

vyos@vyos# show interfaces ethernet eth0 vif 7
+pppoe 0 {
+    ipv6 {
+        enable
+        address {
+            autoconf
+        }
+        dup-addr-detect-transmits 2
+    }
+}

This change only applies to pppoe, regular ethernet interfaces do not have this CLI design flaw

vyos@vyos:~$ find /opt/vyatta/share/vyatta-cfg -name node.def | grep enable-ipv6
/opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/pppoe/node.tag/enable-ipv6/node.def
/opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/enable-ipv6/node.def
/opt/vyatta/share/vyatta-cfg/templates/interfaces/ethernet/node.tag/pppoe/node.tag/enable-ipv6/node.def
/opt/vyatta/share/vyatta-cfg/templates/interfaces/ethernet/node.tag/vif/node.tag/pppoe/node.tag/enable-ipv6/node.def