Skip to content

Conversation

@opswill
Copy link
Contributor

@opswill opswill commented Nov 7, 2025

pppoe interfaces may lose QoS config on reconnect. This PR reapplies the QoS policy when the interface comes up.

Change summary

  1. QoS Fix: Adds a PPPoE hook script to /etc/ppp/ip-up.d/ to ensure QoS configuration is correctly reapplied and does not get lost when the PPPoE connection reconnects.

  2. Performance Fix: As mentioned in T7965: reapply the QoS policy when the interface reconnect #4816, To avoid the significant BRAS overhead issue caused by Python interpreter startup, the QoS helper is now executed through Bash scripts.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes)
  • Migration from an old Vyatta component to vyos-1x, please link to related PR inside obsoleted component
  • Other (please describe):

Related Task(s)

https://vyos.dev/T7965

Related PR(s)

How to test / Smoketest result

Checklist:

  • I have read the CONTRIBUTING document
  • I have linked this PR to one or more Phabricator Task(s)
  • I have run the components SMOKETESTS if applicable
  • My commit headlines contain a valid Task id
  • My change requires a change to the documentation
  • I have updated the documentation accordingly

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

👍
No issues in PR Title / Commit Title

Copy link
Member

@sarthurdev sarthurdev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not have the hooks in the root of src/etc/ppp/ip-up.d merged into a single file?

...

if [[ "$interface" == sstpc* ]]; then
    /etc/ppp/ip-up.d/ppp-hook-scripts/96-vyos-sstpc-callback "$@"
fi

if [[ "$interface" == pppoe* ]]; then
    /etc/ppp/ip-up.d/ppp-hook-scripts/99-vyos-pppoe-callback "$@"
    /etc/ppp/ip-up.d/ppp-hook-scripts/99-vyos-pppoe-qos "$@"
fi

if [ -f "$WLB_PID_FILE" ]; then
    /etc/ppp/ip-up.d/ppp-hook-scripts/99-vyos-pppoe-wlb "$@"
fi

@opswill
Copy link
Contributor Author

opswill commented Nov 14, 2025

@sarthurdev The bash scripts have been merged as you suggested; only one is left in the directory.

@github-actions
Copy link

CI integration 👍 passed!

Details

CI logs

  • CLI Smoketests (no interfaces) 👍 passed
  • CLI Smoketests VPP ❌ failed
  • CLI Smoketests (interfaces only) 👍 passed
  • Config tests 👍 passed
  • Config tests VPP 👍 passed
  • RAID1 tests 👍 passed
  • TPM tests 👍 passed

@c-po
Copy link
Member

c-po commented Nov 20, 2025

@opswill I just wanted to add a short comment on this - it‘s not that we do not appreciate this idea. I am currently mocking up a NETLINK daemon which we could use to hook into and drop all these helper scripts.

@opswill
Copy link
Contributor Author

opswill commented Nov 21, 2025

@c-po No worries at all. My patch was just intended as a direct fix for the immediate issue I encountered as a user. I completely understand that from a maintainer's perspective, a more proper solution is preferable.
Looking forward to seeing the NETLINK daemon implementation。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants