diff options
author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2024-02-08 11:00:04 +0000 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-02-09 10:13:09 +0000 |
commit | cd5adb59b0172d4fcbebae69129358fde1f8c763 (patch) | |
tree | 8e1ab1f623336afd718cd94ce591cbd787f988fc /src/op_mode | |
parent | 094e1eeb90961e82ff5f0d3c116eb791c0f3731f (diff) | |
download | vyos-1x-cd5adb59b0172d4fcbebae69129358fde1f8c763.tar.gz vyos-1x-cd5adb59b0172d4fcbebae69129358fde1f8c763.zip |
T5703: Fix reapply QoS for connection-oriented interfaces
After `disconnect` and `connect` connection-oriented interfaces
like PPPoE, QoS policy has to be reapplied
(cherry picked from commit ffc6dc28780f4d3e8c548f3709c7f3d17babda68)
Diffstat (limited to 'src/op_mode')
-rwxr-xr-x | src/op_mode/connect_disconnect.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/op_mode/connect_disconnect.py b/src/op_mode/connect_disconnect.py index 10034e499..bd02dc6ea 100755 --- a/src/op_mode/connect_disconnect.py +++ b/src/op_mode/connect_disconnect.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2020-2023 VyOS maintainers and contributors +# Copyright (C) 2020-2024 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as @@ -19,6 +19,7 @@ import argparse from psutil import process_iter +from vyos.configquery import ConfigTreeQuery from vyos.utils.process import call from vyos.utils.commit import commit_in_progress from vyos.utils.network import is_wwan_connected @@ -59,6 +60,17 @@ def connect(interface): else: print(f'Unknown interface {interface}, can not connect. Aborting!') + # Reaply QoS configuration + config = ConfigTreeQuery() + if config.exists(f'qos interface {interface}'): + count = 1 + while commit_in_progress(): + if ( count % 60 == 0 ): + print(f'Commit still in progress after {count}s - waiting') + count += 1 + time.sleep(1) + call('/usr/libexec/vyos/conf_mode/qos.py') + def disconnect(interface): """ Disconnect dialer interface """ |