Hi,
I ran into two related issues while configuring a PPPoE connection. For context, I want to set the MTU/MRU to 1500 on a PPPoE interface, my ISP supports baby jumbo frames.
Issue 1: Setting MRU explicitly causes a crash on commit
On a PPPoE interface with no IPv6 configuration, conifguring an explicit MRU value causes the commit to fail:
set interfaces pppoe pppoe0 mtu 1500
set interfaces pppoe pppoe0 mru 1500
commit
Results in:
[ interfaces pppoe pppoe0 ]
Traceback (most recent call last):
File "/usr/libexec/vyos/services/vyos-configd", line 157, in run_script
script.apply(c)
File "/usr/libexec/vyos//conf_mode/interfaces_pppoe.py", line 132, in apply
p.update(pppoe)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/pppoe.py", line 153, in update
if 'autoconf' in dict_search('ipv6.address', config):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable
[[interfaces pppoe pppoe0]] failed
I’ve tried to configure IPv6 on the interface:
set interfaces pppoe pppoe0 ipv6 address autoconf
but it didn’t help (my ISP doesn’t support IPv6):
[ interfaces pppoe pppoe0 ]
Traceback (most recent call last):
File "/usr/libexec/vyos/services/vyos-configd", line 157, in run_script
script.apply(c)
File "/usr/libexec/vyos//conf_mode/interfaces_pppoe.py", line 132, in apply
p.update(pppoe)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/pppoe.py", line 154, in update
self._cmd(f'rdisc6 --single --retry 3 {self.ifname}')
File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 66, in _cmd
return cmd(command, self.debug, env=env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 174, in cmd
raise OSError(code, feedback)
PermissionError: [Errno 1] failed to run command: rdisc6 --single --retry 3 pppoe0
returned: Soliciting ff02::2 (ff02::2) on pppoe0...
exit code: 1
[[interfaces pppoe pppoe0]] failed
Issue 2: Question about the documented MRU default
The documentation suggests that the MRU value defaults to 1492. However, the autogenerated /etc/ppp/peers/pppoe0 file on my system shows:
# delete interfaces pppoe pppoe0 mru
Nothing to delete (the specified node does not exist)
# grep -iE 'mru|mtu' /etc/ppp/peers/pppoe0
mtu 1500
mru 1500
It looks like the MRU is derived from the MTU automatically, which would make the documented 1492 default inaccurate but I may be misreading something. Happy to be corrected : )
Thanks.