From c83c4e27b06c6c57eccafa4643fc8e13159a8224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Wed, 20 Sep 2023 18:46:25 -0600 Subject: [PATCH 01/19] Update Compute.md --- docs/SystemRequirements/Compute.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/SystemRequirements/Compute.md b/docs/SystemRequirements/Compute.md index 630a7ed8..21837662 100644 --- a/docs/SystemRequirements/Compute.md +++ b/docs/SystemRequirements/Compute.md @@ -11,10 +11,12 @@ Single-thread CPU performance will determine the max throughput of a single HTB | Customer Max Plan | Passmark Single-Thread | | --------------------| ------------------------ | | 100 Mbps | 1000 | -| 250 Mbps | 1500 | -| 500 Mbps | 2000 | -| 1 Gbps | 2500 | -| 2 Gbps | 3000 | +| 250 Mbps | 1250 | +| 500 Mbps | 1500 | +| 1 Gbps | 1750 | +| 2 Gbps | 2000 | +| 3 Gbps | 2500 | +| 4 Gbps | 3000 | Below is a table of approximate aggregate throughput capacity, assuming a a CPU with a [single thread](https://www.cpubenchmark.net/singleThread.html#server-thread) performance of 2700 or greater: From 43834b3be8c119427e813941f2bc0bf87dc20327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Wed, 20 Sep 2023 18:46:38 -0600 Subject: [PATCH 02/19] Update Networking.md --- docs/SystemRequirements/Networking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/SystemRequirements/Networking.md b/docs/SystemRequirements/Networking.md index cf2eea11..5578523e 100644 --- a/docs/SystemRequirements/Networking.md +++ b/docs/SystemRequirements/Networking.md @@ -6,5 +6,5 @@ * Known supported cards: * [NVIDIA Mellanox MCX512A-ACAT](https://www.fs.com/products/119649.html) * NVIDIA Mellanox MCX416A-CCAT - * [Intel X710](https://www.fs.com/products/75600.html) + * [Intel X710](https://www.fs.com/products/75600.html) * Note - possible i40e driver issue with XDP Redirect for high throughput 10G+ * Intel X520 From 0d0834df72a7583a516dfe8649e05ce1fe8a4c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Wed, 20 Sep 2023 18:47:07 -0600 Subject: [PATCH 03/19] Update README.md --- README.md | 93 +------------------------------------------------------ 1 file changed, 1 insertion(+), 92 deletions(-) diff --git a/README.md b/README.md index 6b251476..96967353 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Learn more about [Equinix Metal here](https://deploy.equinix.com/metal/). Please support the continued development of LibreQoS by sponsoring us via [GitHub Sponsors](https://github.com/sponsors/LibreQoE) or [Patreon](https://patreon.com/libreqos). -## Documentation / Get Started +## Documentation / Get Started / System Requirements [ReadTheDocs](https://libreqos.readthedocs.io/en/latest/) @@ -24,94 +24,3 @@ Please support the continued development of LibreQoS by sponsoring us via [GitHu Our Matrix chat channel is available at [https://matrix.to/#/#libreqos:matrix.org](https://matrix.to/#/#libreqos:matrix.org). LibreQoS - -## Features - -### Flexible Hierarchical Shaping / Back-Haul Congestion Mitigation - - - -Starting in version v1.1+, operators can map their network hierarchy in LibreQoS. This enables both simple network hierarchies (Site>AP>Client) as well as much more complex ones (Site>Site>Micro-PoP>AP>Site>AP>Client). This can be used to ensure that a given site’s peak bandwidth will not exceed the capacity of its back-haul links (back-haul congestion control). Operators can support more users on the same network equipment with LibreQoS than with competing QoE solutions which only shape by AP and Client. - -### CAKE - -CAKE is the product of nearly a decade of development efforts to improve on fq\_codel. With the diffserv\_4 parameter enabled – CAKE groups traffic in to Bulk, Best Effort, Video, and Voice. This means that without having to fine-tune traffic priorities as you would with DPI products – CAKE automatically ensures your clients’ OS update downloads will not disrupt their zoom calls. It allows for multiple video conferences to operate on the same connection which might otherwise “fight” for upload bandwidth causing call disruptions. With work-from-home, remote learning, and tele-medicine becoming increasingly common – minimizing video call disruptions can save jobs, keep students engaged, and help ensure equitable access to medical care. - -### XDP - -Fast, multi-CPU queueing leveraging xdp-cpumap-tc and cpumap-pping. Currently tested in the real world past 11 Gbps (so far) with just 30% CPU use on a 16 core Intel Xeon Gold 6254. It's likely capable of 30Gbps or more. - -### Graphing - -You can graph bandwidth and TCP RTT by client and node (Site, AP, etc), using InfluxDB. - -### CRM Integrations - -## Server Recommendations -It is most cost-effective to buy a used server with specifications matching your unique requirements, as laid out in the System Requirements section below. -For those who do not have the time to do that, here are some off-the-shelf options to consider: -* 1 Gbps | [Supermicro SuperServer E100-9W-L](https://www.thinkmate.com/system/superserver-e100-9w-l) -* 10 Gbps | [Supermicro SuperServer 510T-ML (Choose E-2388G)](https://www.thinkmate.com/system/superserver-510t-ml) -* 20 Gbps | [Dell R450 Config](https://www.dell.com/en-us/shop/servers-storage-and-networking/poweredge-r450-rack-server/spd/poweredge-r450/pe_r450_15127_vi_vp?configurationid=a7663c54-6e4a-4c96-9a21-bc5a69d637ba) - -The [AsRock 1U4LW-B6502L2T](https://www.thinkmate.com/system/asrock-1u4lw-b6502l2t/635744) can be a great lower-cost option as well. - -## System Requirements -### VM or physical server -* For VMs, NIC passthrough is required for optimal throughput and latency (XDP vs generic XDP). Using Virtio / bridging is much slower than NIC passthrough. Virtio / bridging should not be used for large amounts of traffic. - -### CPU -* 2 or more CPU cores -* A CPU with solid [single-thread performance](https://www.cpubenchmark.net/singleThread.html#server-thread) within your budget. Queuing is very CPU-intensive, and requires high single-thread performance. - -Single-thread CPU performance will determine the max throughput of a single HTB (cpu core), and in turn, what max speed plan you can offer customers. - -| Customer Max Plan | Passmark Single-Thread | -| --------------------| ------------------------ | -| 100 Mbps | 1000 | -| 250 Mbps | 1250 | -| 500 Mbps | 1500 | -| 1 Gbps | 1750 | -| 2 Gbps | 2000 | -| 3 Gbps | 2500 | -| 4 Gbps | 3000 | - -Below is a table of approximate aggregate throughput capacity, assuming a a CPU with a [single thread](https://www.cpubenchmark.net/singleThread.html#server-thread) performance of 2700 or greater: - -| Aggregate Throughput | CPU Cores | -| ------------------------| ------------- | -| 500 Mbps | 2 | -| 1 Gbps | 4 | -| 5 Gbps | 6 | -| 10 Gbps | 8 | -| 20 Gbps | 16 | -| 50 Gbps* | 32 | - -(* Estimated) - -So for example, an ISP delivering 1Gbps service plans with 10Gbps aggregate throughput would choose a CPU with a 2500+ single-thread score and 8 cores, such as the Intel Xeon E-2388G @ 3.20GHz. - -### Memory -* Minimum RAM = 2 + (0.002 x Subscriber Count) GB -* Recommended RAM: - -| Subscribers | RAM | -| ------------- | ------------- | -| 100 | 4 GB | -| 1,000 | 8 GB | -| 5,000 | 16 GB | -| 10,000* | 18 GB | -| 50,000* | 24 GB | - -(* Estimated) - -### Network Interface Requirements -* One management network interface completely separate from the traffic shaping interfaces. Usually this would be the Ethernet interface built in to the motherboard. -* Dedicated Network Interface Card for Shaping Interfaces - * NIC must have 2 or more interfaces for traffic shaping. - * NIC must have multiple TX/RX transmit queues. [Here's how to check from the command line](https://serverfault.com/questions/772380/how-to-tell-if-nic-has-multiqueue-enabled). - * Known supported cards: - * [NVIDIA Mellanox MCX512A-ACAT](https://www.fs.com/products/119649.html) - * NVIDIA Mellanox MCX416A-CCAT - * [Intel X710](https://www.fs.com/products/75600.html) * Note - possible i40e driver issue with XDP Redirect for high throughput 10G+ - * Intel X520 From 1d00a4e46a64314121fd158b4fdaa8fe156b6874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Wed, 20 Sep 2023 19:00:20 -0600 Subject: [PATCH 04/19] Update Compute.md --- docs/SystemRequirements/Compute.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/SystemRequirements/Compute.md b/docs/SystemRequirements/Compute.md index 21837662..66d1580f 100644 --- a/docs/SystemRequirements/Compute.md +++ b/docs/SystemRequirements/Compute.md @@ -50,8 +50,13 @@ So for example, an ISP delivering 1Gbps service plans with 10Gbps aggregate thro ### Server Recommendations It is most cost-effective to buy a used server with specifications matching your unique requirements, as laid out in the System Requirements section below. For those who do not have the time to do that, here are some off-the-shelf options to consider: -* 1 Gbps | [Supermicro SuperServer E100-9W-L](https://www.thinkmate.com/system/superserver-e100-9w-l) -* 10 Gbps | [Supermicro SuperServer 510T-ML (Choose E-2388G)](https://www.thinkmate.com/system/superserver-510t-ml) -* 20 Gbps | [Dell R450 Config](https://www.dell.com/en-us/shop/servers-storage-and-networking/poweredge-r450-rack-server/spd/poweredge-r450/pe_r450_15127_vi_vp?configurationid=a7663c54-6e4a-4c96-9a21-bc5a69d637ba) -The [AsRock 1U4LW-B6502L2T](https://www.thinkmate.com/system/asrock-1u4lw-b6502l2t/635744) can be a great lower-cost option as well. +| Aggregate | 100Mbps Plans | 250Mbps Plans | 500Mbps Plans | 1Gbps Plans | 2Gbps Plans | +| ------------- | ------------- | ------------- | ------------- | ------------- | ------------- | +| 1 Gbps Total | A | | | | | +| 10 Gbps Total | | | | B | | +| 20 Gbps Total | | | | | C | + +* A | [Supermicro SuperServer E100-9W-L](https://www.thinkmate.com/system/superserver-e100-9w-l) +* B | [Supermicro SuperServer 510T-ML](https://www.thinkmate.com/system/superserver-510t-ml) (Select E-2388G) +* C | [Supermicro AS-1015A-MT](https://store.supermicro.com/us_en/as-1015a-mt.html) (Ryzen 9 7700X, 2x16GB DDR5 4800MHz ECC, 1xSupermicro 10-Gigabit XL710+ X557) From 0ac581e7c51ac91708611dc89bd540d4ffaeabc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Wed, 20 Sep 2023 19:00:52 -0600 Subject: [PATCH 05/19] Update Compute.md --- docs/SystemRequirements/Compute.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/SystemRequirements/Compute.md b/docs/SystemRequirements/Compute.md index 66d1580f..6df3db7b 100644 --- a/docs/SystemRequirements/Compute.md +++ b/docs/SystemRequirements/Compute.md @@ -15,8 +15,8 @@ Single-thread CPU performance will determine the max throughput of a single HTB | 500 Mbps | 1500 | | 1 Gbps | 1750 | | 2 Gbps | 2000 | -| 3 Gbps | 2500 | -| 4 Gbps | 3000 | +| 3 Gbps | 3000 | +| 4 Gbps | 4000 | Below is a table of approximate aggregate throughput capacity, assuming a a CPU with a [single thread](https://www.cpubenchmark.net/singleThread.html#server-thread) performance of 2700 or greater: From 007c4f31d42740633d1887e6d070db6bb4d2e69e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Wed, 20 Sep 2023 19:05:15 -0600 Subject: [PATCH 07/19] Update Compute.md --- docs/SystemRequirements/Compute.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/SystemRequirements/Compute.md b/docs/SystemRequirements/Compute.md index 6df3db7b..656af599 100644 --- a/docs/SystemRequirements/Compute.md +++ b/docs/SystemRequirements/Compute.md @@ -13,9 +13,8 @@ Single-thread CPU performance will determine the max throughput of a single HTB | 100 Mbps | 1000 | | 250 Mbps | 1250 | | 500 Mbps | 1500 | -| 1 Gbps | 1750 | -| 2 Gbps | 2000 | -| 3 Gbps | 3000 | +| 1 Gbps | 2000 | +| 2 Gbps | 3000 | | 4 Gbps | 4000 | Below is a table of approximate aggregate throughput capacity, assuming a a CPU with a [single thread](https://www.cpubenchmark.net/singleThread.html#server-thread) performance of 2700 or greater: @@ -51,11 +50,10 @@ So for example, an ISP delivering 1Gbps service plans with 10Gbps aggregate thro It is most cost-effective to buy a used server with specifications matching your unique requirements, as laid out in the System Requirements section below. For those who do not have the time to do that, here are some off-the-shelf options to consider: -| Aggregate | 100Mbps Plans | 250Mbps Plans | 500Mbps Plans | 1Gbps Plans | 2Gbps Plans | -| ------------- | ------------- | ------------- | ------------- | ------------- | ------------- | -| 1 Gbps Total | A | | | | | -| 10 Gbps Total | | | | B | | -| 20 Gbps Total | | | | | C | +| Aggregate | 100Mbps Plans | 1Gbps Plans | 4Gbps Plans | +| ------------- | ------------- | ------------- | ------------- | +| 1 Gbps Total | A | | | +| 10 Gbps Total | | B | C | * A | [Supermicro SuperServer E100-9W-L](https://www.thinkmate.com/system/superserver-e100-9w-l) * B | [Supermicro SuperServer 510T-ML](https://www.thinkmate.com/system/superserver-510t-ml) (Select E-2388G) From 51c4e258952a473aa0098aad4b39720df3279793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 21 Sep 2023 14:08:57 -0600 Subject: [PATCH 08/19] Update troubleshooting.md --- docs/TechnicalDocs/troubleshooting.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/TechnicalDocs/troubleshooting.md b/docs/TechnicalDocs/troubleshooting.md index 950475ff..4b27cc55 100644 --- a/docs/TechnicalDocs/troubleshooting.md +++ b/docs/TechnicalDocs/troubleshooting.md @@ -22,3 +22,15 @@ This tends to show up when the MQ qdisc cannot be added correctly to the NIC int The scheduler (scheduler.py) runs the InfluxDB integration within a try/except statement. If it fails to update InfluxDB, it will report "Failed to update bandwidth graphs". To find the exact cause of the failure, please run ```python3 graphInfluxDB.py``` which will provde more specific errors. + +### All customer IPs are listed under Unknown IPs, rather than Shaped Devices in GUI +``` +cd /opt/libreqos/src +sudo systemctl stop lqos_scheduler +sudo python3 LibreQoS.py +``` + +The console output from running LibreQoS.py directly provides more specific errors regarding issues with ShapedDevices.csv and network.json +Once you have identified the error and fixed ShapedDevices.csv and/or Network.json, please then run + +```sudo systemctl start lqos_scheduler``` From 0aa82ecd99be31087da8234d53e1ec694253f18b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 08:45:18 -0600 Subject: [PATCH 09/19] Update integrations.md --- docs/TechnicalDocs/integrations.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/TechnicalDocs/integrations.md b/docs/TechnicalDocs/integrations.md index a88e7b7c..fcbc17d7 100644 --- a/docs/TechnicalDocs/integrations.md +++ b/docs/TechnicalDocs/integrations.md @@ -20,6 +20,8 @@ You have the option to run integrationUISP.py automatically on boot and every 30 First, set the relevant parameters for Splynx (splynx_api_key, splynx_api_secret, etc.) in ispConfig.py. +The Splynx Integration uses Basic authentication. For using this type of authentication, please make sure you enable [Unsecure access](https://splynx.docs.apiary.io/#introduction/authentication) in your Splynx API key settings. Also the Splynx API key should be granted access to the necessary permissions. + To test the Splynx Integration, use ```shell From 491cb61cb4b5bfca5d90d577538ad05c67f477c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 08:55:53 -0600 Subject: [PATCH 10/19] Create .readthedocs.yaml --- .readthedocs.yaml | 64 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .readthedocs.yaml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..6358d856 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,64 @@ +# Read the Docs configuration file for Sphinx projects + +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + + +# Required + +version: 2 + + +# Set the OS, Python version and other tools you might need + +build: + + os: ubuntu-22.04 + + tools: + + python: "3.11" + + # You can also specify other tool versions: + + # nodejs: "20" + + # rust: "1.70" + + # golang: "1.20" + + +# Build documentation in the "docs/" directory with Sphinx + +sphinx: + + configuration: docs/conf.py + + # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs + + # builder: "dirhtml" + + # Fail on all warnings to avoid broken references + + # fail_on_warning: true + + +# Optionally build your docs in additional formats such as PDF and ePub + +# formats: + +# - pdf + +# - epub + + +# Optional but recommended, declare the Python requirements required + +# to build your documentation + +# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html + +# python: + +# install: + +# - requirements: docs/requirements.txt From 67dfb60575427ad7e814bbadea474cfb2c0c419f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:03:37 -0600 Subject: [PATCH 11/19] Create conf.py --- docs/conf.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/conf.py diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..44271861 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,8 @@ +import sys, os +project = 'LibreQoS' +copyright = '2023, LibreQoE, LLC' +version = '1.4' +release = 'version 1.4' +highlight_language = 'python' +pygments_style = 'sphinx' +needs_sphinx = '1.3' From 8dfa61c10d57ac7eacf2cc0b0a6b0484fa6793d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:06:50 -0600 Subject: [PATCH 12/19] Update conf.py --- docs/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/conf.py b/docs/conf.py index 44271861..e4e345a3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -6,3 +6,4 @@ release = 'version 1.4' highlight_language = 'python' pygments_style = 'sphinx' needs_sphinx = '1.3' +master_doc = 'index' From b703c032900de71c921e2639d394d0f86cc69e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:09:03 -0600 Subject: [PATCH 13/19] Delete docs/conf.py --- docs/conf.py | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 docs/conf.py diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index e4e345a3..00000000 --- a/docs/conf.py +++ /dev/null @@ -1,9 +0,0 @@ -import sys, os -project = 'LibreQoS' -copyright = '2023, LibreQoE, LLC' -version = '1.4' -release = 'version 1.4' -highlight_language = 'python' -pygments_style = 'sphinx' -needs_sphinx = '1.3' -master_doc = 'index' From a7b66d7ddd1272cf483c42f33172f0826dce4c98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:09:26 -0600 Subject: [PATCH 14/19] Update conf.py --- conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf.py b/conf.py index 3303d4a7..4348d102 100644 --- a/conf.py +++ b/conf.py @@ -7,7 +7,7 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = "LibreQoE" -copyright = "2023, LibreQoE" +copyright = "2023, LibreQoE, LLC" author = "Zach Biles" # -- General configuration --------------------------------------------------- From 94c4c86e962cc1212f90ee565382db0444bcf1bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:10:29 -0600 Subject: [PATCH 15/19] Update .readthedocs.yaml --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 6358d856..eb6996ea 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -31,7 +31,7 @@ build: sphinx: - configuration: docs/conf.py + configuration: conf.py # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs From 0dfb5e676d06857563fe901488a7f26d13472982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:22:08 -0600 Subject: [PATCH 16/19] Update conf.py --- conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf.py b/conf.py index 4348d102..4bb2c5cc 100644 --- a/conf.py +++ b/conf.py @@ -13,7 +13,7 @@ author = "Zach Biles" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ["myst_parser"] +extensions = ["myst-parser"] templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] From 54b95807579a0fda9dd0333c59c1cdea5c346003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:25:36 -0600 Subject: [PATCH 17/19] Update conf.py --- conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf.py b/conf.py index 4bb2c5cc..4348d102 100644 --- a/conf.py +++ b/conf.py @@ -13,7 +13,7 @@ author = "Zach Biles" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ["myst-parser"] +extensions = ["myst_parser"] templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] From 5e2be51115e0165491715b1a07bae6b606671393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Thu, 28 Sep 2023 09:27:32 -0600 Subject: [PATCH 18/19] Update .readthedocs.yaml --- .readthedocs.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index eb6996ea..790a554d 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -57,8 +57,8 @@ sphinx: # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html -# python: +python: -# install: + install: -# - requirements: docs/requirements.txt + - requirements: requirements.txt From cdcb4cbfc9cf97c892b079b63070952c1b74a073 Mon Sep 17 00:00:00 2001 From: janrovner Date: Tue, 10 Oct 2023 07:54:45 +0200 Subject: [PATCH 19/19] throughput_reader sizeof fix, buld_rust.sh fix --- src/build_rust.sh | 4 ++++ src/rust/lqos_sys/src/bpf/lqos_kern.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/build_rust.sh b/src/build_rust.sh index bebc1c58..253d13da 100755 --- a/src/build_rust.sh +++ b/src/build_rust.sh @@ -60,6 +60,10 @@ for prog in $PROGS do pushd $prog > /dev/null cargo build $BUILD_FLAGS + if [ $? -ne 0 ]; then + echo "Cargo build failed. Exiting with code 1." + exit 1 + fi popd > /dev/null done diff --git a/src/rust/lqos_sys/src/bpf/lqos_kern.c b/src/rust/lqos_sys/src/bpf/lqos_kern.c index c4980a69..06a323c2 100644 --- a/src/rust/lqos_sys/src/bpf/lqos_kern.c +++ b/src/rust/lqos_sys/src/bpf/lqos_kern.c @@ -359,7 +359,7 @@ int throughput_reader(struct bpf_iter__bpf_map_elem *ctx) bpf_seq_write(seq, ip, sizeof(struct in6_addr)); for (__u32 i=0; i