Page MenuHomeVyOS Platform

QoS fails to reapply on pppoe0 after server-side reconnection
In progress, NormalPublicBUG

Description

When pppoe0 reconnects due to server-side disconnection, CAKE QoS on pppoe0 (upload) is removed, while ifb0 (download) remains unchanged. This breaks traffic shaping.

QoS config:

vyos@vyos# show qos
 interface ifb0 {
     egress pppoe0_download
 }
 interface pppoe0 {
     egress pppoe0_upload
 }
 policy {
     cake pppoe0_download {
         bandwidth 1000mbit
         description "pppoe0 download cake policy"
         flow-isolation flow
         flow-isolation-nat
         rtt 100
     }
     cake pppoe0_upload {
         bandwidth 60mbit
         description "pppoe0 upload cake policy"
         flow-isolation flow
         flow-isolation-nat
         rtt 100
     }
 }

Before Reconnect:

show qos cake interface pppoe0 → CAKE active (60Mbit)
show qos cake interface ifb0 → CAKE active (1Gbit)
vyos@vyos:/var/log$ show qos cake interface ifb0
qdisc cake 1: root refcnt 2 bandwidth 1Gbit diffserv3 flows nat nowash no-ack-filter split-gso rtt 100ms raw overhead 0
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 0b of 15140Kb
 capacity estimate: 1Gbit
 min/max network layer size:        65535 /       0
 min/max overhead-adjusted size:    65535 /       0
 average network hdr offset:            0

                   Bulk  Best Effort        Voice
  thresh      62500Kbit        1Gbit      250Mbit
  target            5ms          5ms          5ms
  interval        100ms        100ms        100ms
  pk_delay          0us          0us          0us
  av_delay          0us          0us          0us
  sp_delay          0us          0us          0us
  backlog            0b           0b           0b
  pkts                0            0            0
  bytes               0            0            0
  way_inds            0            0            0
  way_miss            0            0            0
  way_cols            0            0            0
  drops               0            0            0
  marks               0            0            0
  ack_drop            0            0            0
  sp_flows            0            0            0
  bk_flows            0            0            0
  un_flows            0            0            0
  max_len             0            0            0
  quantum          1514         1514         1514

qdisc ingress ffff: parent ffff:fff1 ----------------
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
vyos@vyos:/var/log$ show qos cake interface pppoe0
qdisc cake 1: root refcnt 2 bandwidth 60Mbit diffserv3 flows nat nowash no-ack-filter split-gso rtt 100ms raw overhead 0
 Sent 219679739 bytes 1217724 pkt (dropped 6, overlimits 135654 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 848640b of 4Mb
 capacity estimate: 60Mbit
 min/max network layer size:           30 /    1480
 min/max overhead-adjusted size:       30 /    1480
 average network hdr offset:            0

                   Bulk  Best Effort        Voice
  thresh       3750Kbit       60Mbit       15Mbit
  target            5ms          5ms          5ms
  interval        100ms        100ms        100ms
  pk_delay          0us        145us         19us
  av_delay          0us          8us          3us
  sp_delay          0us          1us          2us
  backlog            0b           0b           0b
  pkts                0      1216652         1078
  bytes               0    219631060        56216
  way_inds            0        62031            0
  way_miss            0        59711            9
  way_cols            0            0            0
  drops               0            6            0
  marks               0            0            0
  ack_drop            0            0            0
  sp_flows            0            3            1
  bk_flows            0            1            0
  un_flows            0            0            0
  max_len             0        31080           60
  quantum           300         1514          457

Logs (pppoe0 reconnect):

vyos@vyos:/var/log$ show log pppoe interface pppoe0
Oct 24 11:16:40 pppd[38635]: rcvd [LCP TermReq id=0x3]
Oct 24 11:16:40 pppd[38635]: LCP terminated by peer
Oct 24 11:16:40 pppd[38635]: Connect time 10080.4 minutes.
Oct 24 11:16:40 pppd[38635]: Sent 3277473360 bytes, received 2347432764 bytes.
Oct 24 11:16:40 pppd[38635]: Script /etc/ppp/ip-down started (pid 3559021)
Oct 24 11:16:40 pppd[38635]: Script /etc/ppp/ipv6-down started (pid 3559025)
Oct 24 11:16:40 pppd[38635]: sent [LCP TermAck id=0x3]
Oct 24 11:16:40 pppd[38635]: Modem hangup
Oct 24 11:16:40 pppd[38635]: Connection terminated.
Oct 24 11:16:40 pppd[38635]: Connect time 10080.4 minutes.
Oct 24 11:16:40 pppd[38635]: Sent 3277477612 bytes, received 2347432764 bytes.
Oct 24 11:16:40 pppd[38635]: Script /etc/ppp/ipv6-down finished (pid 3559025), status = 0x0
Oct 24 11:16:41 pppd[38635]: Script /etc/ppp/ip-down finished (pid 3559021), status = 0x0
Oct 24 11:17:11 pppd[38635]: Send PPPOE Discovery V1T1 PADI session 0x0 length 12

.........

Oct 24 11:17:14 pppd[38635]: local  IP address 10.59.65.56
Oct 24 11:17:14 pppd[38635]: remote IP address 10.59.64.1
Oct 24 11:17:14 pppd[38635]: Script /etc/ppp/ip-up started (pid 3559138)
Oct 24 11:17:48 pppd[38635]: Script /etc/ppp/ip-up finished (pid 3559138), status = 0x0

After Reconnect:

show qos cake interface pppoe0 → No output (QoS gone)
show qos cake interface ifb0 → Still active
vyos@vyos:~$ show qos cake interface ifb0
qdisc cake 1: root refcnt 2 bandwidth 1Gbit diffserv3 flows nat nowash no-ack-filter split-gso rtt 100ms raw overhead 0
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 0b of 15140Kb
 capacity estimate: 1Gbit
 min/max network layer size:        65535 /       0
 min/max overhead-adjusted size:    65535 /       0
 average network hdr offset:            0

                   Bulk  Best Effort        Voice
  thresh      62500Kbit        1Gbit      250Mbit
  target            5ms          5ms          5ms
  interval        100ms        100ms        100ms
  pk_delay          0us          0us          0us
  av_delay          0us          0us          0us
  sp_delay          0us          0us          0us
  backlog            0b           0b           0b
  pkts                0            0            0
  bytes               0            0            0
  way_inds            0            0            0
  way_miss            0            0            0
  way_cols            0            0            0
  drops               0            0            0
  marks               0            0            0
  ack_drop            0            0            0
  sp_flows            0            0            0
  bk_flows            0            0            0
  un_flows            0            0            0
  max_len             0            0            0
  quantum          1514         1514         1514

qdisc ingress ffff: parent ffff:fff1 ----------------
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0

vyos@vyos:~$ show qos cake interface pppoe0
vyos@vyos:~$

Details

Version
2025.08.05-0021-rolling
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

Not the perfect fix, but a script in /etc/ppp/ip-up.d/ keeps QoS alive when the PPPoE link comes back up.

PR: https://github.com/vyos/vyos-1x/pull/4816

c-po changed the task status from Open to In progress.Oct 29 2025, 11:40 AM
c-po assigned this task to opswill.
c-po triaged this task as Normal priority.

open another PR : https://github.com/vyos/vyos-1x/pull/4837

Try to fix the qos configuration loss issue, and call the python helper from bash script as @c-po suggested in previous PR

dmbaturin changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.