Setting the MRU triggers an exception on 2026.03

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.

To my knowledge MRU normally is something like 16384 or 65535 and usually not changed at all.

What you do change is the MTU.

However it seems to be a thing with PPPoE to define MTU = MRU = 1492 (by default).

Fixed in the ⚓ T8404 PPPoE commit crash: TypeError in pppoe.py when `ipv6 address` node exists without `autoconf`