summaryrefslogtreecommitdiff
path: root/src/conf_mode/interfaces-pppoe.py
AgeCommit message (Collapse)Author
2020-08-22dhcpv6-pd: T2677: optimize CLI interface for PD configurationChristian Poessinger
The current CLI did not support multiple prefix-delegations per interface. Some ISPs only send one /64 to a client per prefix-delegation request, but they allow the customer to request multiple prefixes. The 'dhcpv6-options prefix-delegation' node has been renamed and converted to a tag node named 'dhcpv6-options pd'. The tag node specifies a PD request (>=0). In the past the user needed to know what prefix will be assigned and required to calculate the sla-len by himself. The 'sla-len' node was dropped and is now calculated in the background from the 'dhcpv6-options pd 0 length' node. It is no longer mandatory to supply the 'sla-id' node, if sla-id is not specified it is 'guessed' by counting upwards. Example configuration: ---------------------- ethernet eth1 { address dhcpv6 dhcpv6-options { pd 0 { length 56 interface eth2 { address 1 } } } } This will request a /56 assignment from the ISP and will delegate a /64 network to interface eth2. VyOS will use the interface address ::1 on the delegate interface (eth2) as its local address.
2020-08-03ifconfig: T2740: pass config dict to DHCP class for IPv6Christian Poessinger
This removes additional code paths as we can instatly work with the input dict the same was as it was done for PPPoE. This fixes the entire DHCPv6-PD support on non PPPoE interfaces as this was lost in translation while processing T2653.
2020-07-25ifconfig: T2653: make ifname an optional argument to get_interface_dict()Christian Poessinger
Further reduce the boiler-plate code to determine interface tag node or not. It can be passed into get_interface_dict() if explicitly required - else it is taken from the environment.
2020-07-25interfaces: ifconfig: T2653: migrate to get_interface_dict() APIChristian Poessinger
After switching from raw parsing of the interface options to get_config_dict() this utilizes another utility function which wraps get_config_dict() and adds other common and reused parameters (like deleted or bridge member). Overall this drops redundant code (again) and makes the rest more maintainable as we only utilize a single function.
2020-07-01config: T2667: add missing flagJohn Estabrook
2020-07-01ifconfig: T2653: use better names for vyos.configverify functionsChristian Poessinger
2020-07-01ifconfig: T2653: move pppoe interface to get_config_dict()Christian Poessinger
2020-06-06dhcpv6-pd: T2551: fix prefix length not set in configChristian Poessinger
Retrieving the CLI nodes from current config was missed out and only implemented for PPPoE.
2020-05-29Merge pull request #439 from thomas-mangin/T2088-explicit-airbagChristian Poessinger
airbag :T2088: make airbag explicit
2020-05-29airbag: T2088: explicit enabling of the featureThomas Mangin
airbag must now be explicitly installed. the patch also allow to fully disables the installation of the logging code at setup (and not just installing and doing nothing)
2020-05-26dhcpv6-pd: T2506: use common dictionary definition for config parametersChristian Poessinger
2020-05-26dhcpv6-pd: T2506: add option to request specific prefix lengthChristian Poessinger
Some ISPs (e.g. Comcast) only delegate a /64 by default. You have to explicitly "ask" for a bigger (e.g. /60) prefix. This commit adds a CLI node to request a specific prefix length in the range 32 - 64. dhcpv6-options { prefix-delegation { length 60 } }
2020-05-26dhcpv6-pd: pppoe: T2506: restructure CLIChristian Poessinger
Rename the CLI nodes for prefix delegation from "dhcpv6-options delegate <interface>" to "dhcpv6-options prefix-delegation interface <interface>". The change is required to add the possibility to request for specific prefix sized via the CLI. That option was not possible with the old configuration tree.
2020-05-22pppoe: T2488: bugfix, missing not in if condition prevented startupChristian Poessinger
Commit 39c53aadbf9e ("pppoe: T2488: remove logfile generation") accidently missed a not in an if statement.
2020-05-21pppoe: T2380: fix NameError: name 'intf' is not definedChristian Poessinger
2020-05-21pppoe: T2380: dis-/connect should use proper systemd callsChristian Poessinger
2020-05-21pppoe: T2488: remove logfile generationChristian Poessinger
2020-05-17pppoe: dhcpv6-pd: T421: stop service when config is removedChristian Poessinger
2020-05-17pppoe: dhcpv6-pd: T421: start/stop delegation with interface statusChristian Poessinger
2020-05-17pppoe: dhcpv6-pd: T421: initial supportChristian Poessinger
The following configuration will assign a /64 prefix out of a /56 delegation to eth0. The IPv6 address assigned to eth0 will be <prefix>::ffff/64. If you do not know the prefix size delegated to you, start with sla-len 0. pppoe pppoe0 { authentication { password vyos user vyos } description sadfas dhcpv6-options { delegate eth0 { interface-id 65535 sla-id 0 sla-len 8 } } ipv6 { address { autoconf } enable } source-interface eth1 } vyos@vyos:~$ show interfaces Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address S/L Description --------- ---------- --- ----------- eth0 2001:db8:8003:400::ffff/64 u/u
2020-04-29pppoe: template: T2388: fix unexpected keyword argumentChristian Poessinger
Commit 2bf12b579e0 ("template: T2388: move mkdir/chmod/chown within render()") passed an unexpected keyword to the render() function, it was simply wrongly spelled.
2020-04-27template: T2388: move mkdir/chmod/chown within render()Thomas Mangin
2020-04-12template: T2230: use render to generate templatesThomas Mangin
convert all call to jinja to use template.render
2020-04-12vyos.util: rename chmod_x() -> chmod_755()Christian Poessinger
2020-04-10pppoe: T2248: connect-on-demand and vrf are mutually exclusiveChristian Poessinger
As PPP can be used to establish a connection on-demand it manages the Kernel default route. This can not be used when using VRFs which are managed by the ip-up.d and ip-down.d scripts - thus those options are now mutially exclusive. The best fix would be adding support for VRFs into PPP.
2020-04-09pppoe: enable Jinja2 trim_blocksChristian Poessinger
2020-04-08vyos-util: rename chown_file() > chown()Christian Poessinger
... to make it clear also directories can be chown(-ed)
2020-04-06util: T2226: rewrite pppoe to use cmdThomas Mangin
2020-04-04vyos.util: rename chmod_x_file() to chmod_x()Christian Poessinger
Now both files and directories are supported.
2020-04-04pppoe: T1318: bugfix: proper use of ip-pre-up.d directoryChristian Poessinger
Commit b250b233ec1 ("pppoe: T1318: move Jinja2 templates to data/templates folder") actually placed the pre-up configuration script into the ip-up folder.
2020-04-04pppoe: T2219: move adding of default route to ip-(up|down) scriptChristian Poessinger
As PPPoE interfaces should be part of a VRF it is required that the default can also be set into the specified VRF. The default way of PPP by setting the "defaultroute" option does not take a VRF into account. In this case PPP installs a Kernel route forwarding all default traffic over this interface. This change installs a static route with metric 1 instead into the routing table via FRR. This is not the same as a Kernel route in terms of metric 1 compared to 0 but it should do the trick.
2020-04-04pppoe: T1318: move Jinja2 templates to data/templates folderChristian Poessinger
This makes the actual code which generates the configs much more human readable.
2020-04-04vyos.util: use common subprocess_cmd wrapperChristian Poessinger
2020-04-03pppoe: T1318: minor cleanupsChristian Poessinger
2020-04-03pppoe: bugfix template name after migration to ip-up scriptsChristian Poessinger
Commit 6a0c6783d8b2 ("pppoe: migrate alias and vrf script from pre-up to up") changed the name of the ip-up script template but the template definition has been forgotten. This caused: NameError: name 'config_pppoe_ip_up_tmpl' is not defined
2020-04-02pppoe: migrate alias and vrf script from pre-up to upChristian Poessinger
As the pre-up script is only run once when the interface is brought up but not when the interface maybe only comes up 20 seconds later due to the remote site some actions can not be performed as placing the interface e.g. into a VRF instance.
2020-04-02pppoe: migrate to new new helpers in vyos.utilChristian Poessinger
Commit d2cf287 ("vyos.util: add chown_file and chmod_x_file helpers") added common helper functions to chown or chmod +x a file. Make use of those helpers.
2020-04-02pppoe: vrf: bugfix - only pppoe0 could be assigned to a VRFChristian Poessinger
2020-03-29pppoe: T1318: create peer directory on demandChristian Poessinger
2020-03-29pppoe: T1988: bugfix creating ip-pre-up.d directory after moving to vyos-1xChristian Poessinger
The creation of this directory has been done in the past using vyatta- wirelessmodem and after it's replacement in vyos-1x the directory has not been deployed anymore. Thos when rendering the PPPoE configuration the directory will be created on deemand.
2020-03-10pppoe: T1318: add missing ondemand config settingChristian Poessinger
2020-03-10pppoe: T1318: minor code cleanupChristian Poessinger
2020-03-07pppoe: T1318: move to Python3 f-strings where possibleChristian Poessinger
2020-03-07vrf: T31: enable vrf support for pppoe interfaceChristian Poessinger
2020-03-07pppoe: T1493: rename variables on ipv6-up scriptChristian Poessinger
2020-03-05pppoe: T1493: fix for fix of invalid reference of ipv6-up script fileChristian Poessinger
Commit d161cbb ("pppoe: T1493: fix invalid reference of ipv6-up script file") actually introduced another bug instead of fixing it. It was catched by vyos-smoketest ... luckily! Sorry!
2020-03-05pppoe: T1493: fix invalid reference of ipv6-up script fileChristian Poessinger
2020-03-05pppoe: T1493: support IPv6 address negotiation which is required for DHCPv6-PDChristian Poessinger
2020-03-04pppoe: T1318: IPv6 supportChristian Poessinger
2020-03-03interfaces: T1579: fix c/p error when evaluating ↵Christian Poessinger
os.environ['VYOS_TAGNODE_VALUE'] This has been only a theoretical problem but then the error condition was triggered - only an error has been printed instead of raising an Exception.