summaryrefslogtreecommitdiff
path: root/src/op_mode/connect_disconnect.py
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2024-02-08 11:00:04 +0000
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-02-09 10:13:09 +0000
commitcd5adb59b0172d4fcbebae69129358fde1f8c763 (patch)
tree8e1ab1f623336afd718cd94ce591cbd787f988fc /src/op_mode/connect_disconnect.py
parent094e1eeb90961e82ff5f0d3c116eb791c0f3731f (diff)
downloadvyos-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/connect_disconnect.py')
-rwxr-xr-xsrc/op_mode/connect_disconnect.py14
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 """