summaryrefslogtreecommitdiff
path: root/src/conf_mode/intel_qat.py
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2023-12-30 23:25:20 +0100
committerChristian Breunig <christian@breunig.cc>2024-01-01 09:25:32 +0100
commitc9eaafd9f808aba8d29be73054e11d37577e539a (patch)
treeaeccfda0a305cf6aca41630900e75bd32961a911 /src/conf_mode/intel_qat.py
parent2078253176046ea4d07e69caeb7932ea439b5614 (diff)
downloadvyos-1x-c9eaafd9f808aba8d29be73054e11d37577e539a.tar.gz
vyos-1x-c9eaafd9f808aba8d29be73054e11d37577e539a.zip
T5474: establish common file name pattern for XML conf mode commands
We will use _ as CLI level divider. The XML definition filename and also the Python helper should match the CLI node. Example: set interfaces ethernet -> interfaces_ethernet.xml.in set interfaces bond -> interfaces_bond.xml.in set service dhcp-server -> service_dhcp-server-xml.in (cherry picked from commit 4ef110fd2c501b718344c72d495ad7e16d2bd465)
Diffstat (limited to 'src/conf_mode/intel_qat.py')
-rwxr-xr-xsrc/conf_mode/intel_qat.py106
1 files changed, 0 insertions, 106 deletions
diff --git a/src/conf_mode/intel_qat.py b/src/conf_mode/intel_qat.py
deleted file mode 100755
index e4b248675..000000000
--- a/src/conf_mode/intel_qat.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (C) 2019-2023 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
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import re
-
-from sys import exit
-
-from vyos.config import Config
-from vyos.utils.process import popen
-from vyos.utils.process import run
-from vyos import ConfigError
-from vyos import airbag
-airbag.enable()
-
-qat_init_script = '/etc/init.d/qat_service'
-
-def get_config(config=None):
- if config:
- conf = config
- else:
- conf = Config()
-
- data = {}
-
- if conf.exists(['system', 'acceleration', 'qat']):
- data.update({'qat_enable' : ''})
-
- if conf.exists(['vpn', 'ipsec']):
- data.update({'ipsec' : ''})
-
- if conf.exists(['interfaces', 'openvpn']):
- data.update({'openvpn' : ''})
-
- return data
-
-
-def vpn_control(action, force_ipsec=False):
- # XXX: Should these commands report failure?
- if action == 'restore' and force_ipsec:
- return run('ipsec start')
-
- return run(f'ipsec {action}')
-
-
-def verify(qat):
- if 'qat_enable' not in qat:
- return
-
- # Check if QAT service installed
- if not os.path.exists(qat_init_script):
- raise ConfigError('QAT init script not found')
-
- # Check if QAT device exist
- output, err = popen('lspci -nn', decode='utf-8')
- if not err:
- # PCI id | Chipset
- # 19e2 -> C3xx
- # 37c8 -> C62x
- # 0435 -> DH895
- # 6f54 -> D15xx
- # 18ee -> QAT_200XX
- data = re.findall(
- '(8086:19e2)|(8086:37c8)|(8086:0435)|(8086:6f54)|(8086:18ee)', output)
- # If QAT devices found
- if not data:
- raise ConfigError('No QAT acceleration device found')
-
-def apply(qat):
- # Shutdown VPN service which can use QAT
- if 'ipsec' in qat:
- vpn_control('stop')
-
- # Enable/Disable QAT service
- if 'qat_enable' in qat:
- run(f'{qat_init_script} start')
- else:
- run(f'{qat_init_script} stop')
-
- # Recover VPN service
- if 'ipsec' in qat:
- vpn_control('start')
-
-
-if __name__ == '__main__':
- try:
- c = get_config()
- verify(c)
- apply(c)
- except ConfigError as e:
- print(e)
- vpn_control('restore', force_ipsec=('ipsec' in c))
- exit(1)