mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
docs: 📝 update a bunch of formatting and clarifications
This commit is contained in:
parent
20c58309a8
commit
282c6ebde0
BIN
_build/doctrees/docs/Quickstart/configuration.doctree
Normal file
BIN
_build/doctrees/docs/Quickstart/configuration.doctree
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
_build/doctrees/docs/Quickstart/services-and-run.doctree
Normal file
BIN
_build/doctrees/docs/Quickstart/services-and-run.doctree
Normal file
Binary file not shown.
BIN
_build/doctrees/docs/TechnicalDocs/complex-install.doctree
Normal file
BIN
_build/doctrees/docs/TechnicalDocs/complex-install.doctree
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
39
_build/html/.github/CODE_OF_CONDUCT.html
vendored
39
_build/html/.github/CODE_OF_CONDUCT.html
vendored
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
BIN
_build/html/_images/stp-diagram.png
Normal file
BIN
_build/html/_images/stp-diagram.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 121 KiB |
103
_build/html/_sources/docs/Quickstart/configuration.md.txt
Normal file
103
_build/html/_sources/docs/Quickstart/configuration.md.txt
Normal file
@ -0,0 +1,103 @@
|
||||
# Configure LibreQoS
|
||||
|
||||
## Configure lqos.conf
|
||||
|
||||
Copy the lqosd daemon configuration file to `/etc`:
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos/src
|
||||
sudo cp lqos.example /etc/lqos.conf
|
||||
```
|
||||
|
||||
Now edit the file to match your setup with
|
||||
|
||||
```shell
|
||||
sudo nano /etc/lqos.conf
|
||||
```
|
||||
|
||||
Change `enp1s0f1` and `enp1s0f2` to match your network interfaces. It doesn't matter which one is which. Notice, it's paring the interfaces, so when you first enter enps0f<ins>**1**</ins> in the first line, the `redirect_to` parameter is enp1s0f<ins>**2**</ins> (replacing with your actual interface names).
|
||||
|
||||
- First Line: `name = "enp1s0f1", redirect_to = "enp1s0f2"`
|
||||
- Second Line: `name = "enp1s0f2", redirect_to = "enp1s0f1"`
|
||||
|
||||
Then, if using Bifrost/XDP set `use_xdp_bridge = true` under that same `[bridge]` section.
|
||||
|
||||
## Configure ispConfig.py
|
||||
|
||||
Copy ispConfig.example.py to ispConfig.py and edit as needed
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos/src/
|
||||
cp ispConfig.example.py ispConfig.py
|
||||
nano ispConfig.py
|
||||
```
|
||||
|
||||
- Set upstreamBandwidthCapacityDownloadMbps and upstreamBandwidthCapacityUploadMbps to match the bandwidth in Mbps of your network's upstream / WAN internet connection. The same can be done for generatedPNDownloadMbps and generatedPNUploadMbps.
|
||||
- Set interfaceA to the interface facing your core router (or bridged internal network if your network is bridged)
|
||||
- Set interfaceB to the interface facing your edge router
|
||||
- Set ```enableActualShellCommands = True``` to allow the program to actually run the commands.
|
||||
|
||||
## Network.json
|
||||
|
||||
Network.json allows ISP operators to define a Hierarchical Network Topology, or Flat Network Topology.
|
||||
|
||||
For networks with no Parent Nodes (no strictly defined Access Points or Sites) edit the network.json to use a Flat Network Topology with
|
||||
```nano network.json```
|
||||
setting the following file content:
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
If you plan to use the built-in UISP or Splynx integrations, you do not need to create a network.json file quite yet.
|
||||
|
||||
If you plan to use the built-in UISP integration, it will create this automatically on its first run (assuming network.json is not already present). You can then modify the network.json to more accurately reflect your topology.
|
||||
|
||||
If you will not be using an integration, you can manually define the network.json following the template file - network.example.json
|
||||
|
||||
```text
|
||||
+-----------------------------------------------------------------------+
|
||||
| Entire Network |
|
||||
+-----------------------+-----------------------+-----------------------+
|
||||
| Parent Node A | Parent Node B | Parent Node C |
|
||||
+-----------------------+-------+-------+-------+-----------------------+
|
||||
| Parent Node D | Sub 3 | Sub 4 | Sub 5 | Sub 6 | Sub 7 | Parent Node F |
|
||||
+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
| Sub 1 | Sub 2 | | | | Sub 8 | Sub 9 |
|
||||
+-------+-------+-------+-----------------------+-------+-------+-------+
|
||||
```
|
||||
|
||||
## Manual Setup
|
||||
|
||||
You can use
|
||||
|
||||
```shell
|
||||
python3 csvToNetworkJSON.py
|
||||
```
|
||||
|
||||
to convert manualNetwork.csv to a network.json file.
|
||||
manualNetwork.csv can be copied from the template file, manualNetwork.template.csv
|
||||
|
||||
Note: The parent node name must match that used for clients in ShapedDevices.csv
|
||||
|
||||
## ShapedDevices.csv
|
||||
|
||||
If you are using an integration, this file will be automatically generated. If you are not using an integration, you can manually edit the file.
|
||||
|
||||
### Manual Editing
|
||||
|
||||
- Modify the ShapedDevices.csv file using your preferred spreadsheet editor (LibreOffice Calc, Excel, etc), following the template file - ShapedDevices.example.csv
|
||||
- Circuit ID is required. Must be a string of some sort (int is fine, gets parsed as string). Must NOT include any number symbols (#).
|
||||
- An IPv4 address or IPv6 address is required for each entry.
|
||||
- The Access Point or Site name should be set in the Parent Node field. Parent Node can be left blank for flat networks.
|
||||
- The ShapedDevices.csv file allows you to set minimum guaranteed, and maximum allowed bandwidth per subscriber.
|
||||
- The minimum allowed plan rates for Circuits are 2Mbit. Bandwidth min and max should both be above that threshold.
|
||||
- Recommendation: set the min bandwidth to something like 25/10 and max to 1.15X advertised plan rate by using bandwidthOverheadFactor = 1.15
|
||||
- This way, when an AP hits its ceiling, users have any remaining AP capacity fairly distributed between them.
|
||||
- Ensure a reasonable minimum bandwidth minimum for every subscriber, allowing them to utilize up to the maximum provided when AP utilization is below 100%.
|
||||
|
||||
Note regarding SLAs: For customers with SLA contracts that guarantee them a minimum bandwidth, set their plan rate as the minimum bandwidth. That way when an AP approaches its ceiling, SLA customers will always get that amount.
|
||||
|
||||

|
||||
|
||||
Once your configuration is complete. You're ready to run the application and start the [Deamons](./services-and-run.md)
|
@ -1,20 +1,42 @@
|
||||
## Network Design Assumptions
|
||||
Officially supported configuration:
|
||||
# Network Design Assumptions
|
||||
|
||||
## Officially supported configuration
|
||||
|
||||
- LibreQoS placed inline in network, usually between an edge router (NAT, firewall) and core router (distribution to sites across network).
|
||||
* If you use NAT/CG-NAT, place LibreQoS inline south of where NAT is applied, as LibreQoS needs to shape internal addresses (100.64.0.0/12) not public post-NAT IPs.
|
||||
- If you use NAT/CG-NAT, place LibreQoS inline south of where NAT is applied, as LibreQoS needs to shape internal addresses (100.64.0.0/12) not public post-NAT IPs.
|
||||
- Edge and Core routers should have 1500 MTU on links between them
|
||||
- If you use MPLS, you would terminate MPLS traffic at the core router. LibreQoS cannot decapsulate MPLS on its own.
|
||||
- OSPF primary link (low cost) through the server running LibreQoS
|
||||
- OSPF backup link (high cost, maybe 200 for example)
|
||||
|
||||

|
||||
|
||||
Is it possible to use LibreQoS in-line without a core router, but that setup requires depending on STP instead of OSPF, which can cause issues. Such configurations are not officially supported.
|
||||

|
||||
|
||||
### Network Interface Card
|
||||
|
||||
```{note}
|
||||
You must have one of these:
|
||||
*single NIC with two interfaces,
|
||||
*two NICs with single interface,
|
||||
*2x VLANs interface (using one or two NICs).
|
||||
- single NIC with two interfaces,
|
||||
- two NICs with single interface,
|
||||
- 2x VLANs interface (using one or two NICs).
|
||||
```
|
||||
|
||||
LibreQoS requires NICs to have 2 or more RX/TX queues and XDP support. While many cards theoretically meet these requirements, less commonly used cards tend to have unreported driver bugs which impede XDP functionality and make them unusable for our purposes. At this time we recommend the Intel x520, Intel x710, and Nvidia (ConnectX-5 or newer) NICs. We cannot guarantee compatibility with other cards.
|
||||
|
||||
## Alternate configuration (Not officially supported)
|
||||
|
||||
This alternate configuration uses Spanning Tree Protocol (STP) to modify the data path in the event the LibreQoS device is offline for maintenance or another problem.
|
||||
|
||||
```{note}
|
||||
Most of the same considerations apply to the alternate configuration as they do to the officially supported configuation
|
||||
```
|
||||
|
||||
- LibreQoS placed inline in network, usually between an edge router (NAT, firewall) and core router (distribution to sites across network).
|
||||
- If you use NAT/CG-NAT, place LibreQoS inline south of where NAT is applied, as LibreQoS needs to shape internal addresses (100.64.0.0/12) not public post-NAT IPs.
|
||||
- Edge router and Core switch should have 1500 MTU on links between them
|
||||
- If you use MPLS, you would terminate MPLS traffic somewhere south of the core/distribution switch. LibreQoS cannot decapsulate MPLS on its own.
|
||||
- Spanning Tree primary link (low cost) through the server running LibreQoS
|
||||
- Spanning Tree backup link (high cost, maybe 80 for example)
|
||||
|
||||
Keep in mind that if you use different bandwidth links, for example, 10 Gbps through LibreQoS, and 1 Gbps between core switch and edge router, you may need to be more intentional with your STP costs.
|
||||
|
||||

|
||||
|
@ -1,212 +1,37 @@
|
||||
## Install LibreQoS 1.4
|
||||
# Install LibreQoS 1.4
|
||||
|
||||
### Updating from v1.3
|
||||
#### Remove offloadOff.service
|
||||
```
|
||||
## Updating from v1.3
|
||||
|
||||
### Remove offloadOff.service
|
||||
|
||||
```shell
|
||||
sudo systemctl disable offloadOff.service
|
||||
sudo rm /usr/local/sbin/offloadOff.sh /etc/systemd/system/offloadOff.service
|
||||
```
|
||||
#### Remove cron tasks from v1.3
|
||||
|
||||
### Remove cron tasks from v1.3
|
||||
|
||||
Run ```sudo crontab -e``` and remove any entries pertaining to LibreQoS from v1.3.
|
||||
|
||||
### Simple install via .Deb package (Recommended)
|
||||
## Simple install via .Deb package (Recommended)
|
||||
|
||||
Use the deb package from the [latest v1.4 release](https://github.com/LibreQoE/LibreQoS/releases/).
|
||||
|
||||
### Complex install (Not Recommended)
|
||||
#### Clone the repo
|
||||
|
||||
The recommended install location is `/opt/libreqos`
|
||||
Go to the install location, and clone the repo:
|
||||
|
||||
```
|
||||
cd /opt/
|
||||
git clone https://github.com/LibreQoE/LibreQoS.git libreqos
|
||||
sudo chown -R YOUR_USER /opt/libreqos
|
||||
```
|
||||
By specifying `libreqos` at the end, git will ensure the folder name is lowercase.
|
||||
|
||||
#### Install Dependencies from apt and pip
|
||||
|
||||
You need to have a few packages from `apt` installed:
|
||||
|
||||
```
|
||||
sudo apt-get install -y python3-pip clang gcc gcc-multilib llvm libelf-dev git nano graphviz curl screen llvm pkg-config linux-tools-common linux-tools-`uname -r` libbpf-dev
|
||||
```shell
|
||||
sudo echo "deb http://stats.libreqos.io/ubuntu jammy main" > /etc/apt/sources.list.d/libreqos.list
|
||||
wget -O - -q http://stats.libreqos.io/repo.asc | apt-key add -
|
||||
apt-get update
|
||||
apt-get install libreqos
|
||||
```
|
||||
|
||||
Then you need to install some Python dependencies:
|
||||
You will be asked some questions about your configuration, and the management daemon and webserver will automatically start. Go to http://<your_ip>:9123/ to finish installation.
|
||||
|
||||
```
|
||||
cd /opt/libreqos
|
||||
python3 -m pip install -r requirements.txt
|
||||
sudo python3 -m pip install -r requirements.txt
|
||||
## Complex Install (Not Reccomended)
|
||||
|
||||
```{note}
|
||||
Use this install if you'd like to constantly deploy from the main branch on Github. For experienced users only!
|
||||
```
|
||||
|
||||
#### Install the Rust development system
|
||||
[Complex Installation](../TechnicalDocs/complex-install.md)
|
||||
|
||||
Go to [RustUp](https://rustup.rs) and follow the instructions. Basically, run the following:
|
||||
|
||||
```
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
```
|
||||
|
||||
When Rust finishes installing, it will tell you to execute a command to place the Rust build tools into your path. You need to either execute this command or logout and back in again.
|
||||
|
||||
Once that's done, please run:
|
||||
```
|
||||
cd /opt/libreqos/src/
|
||||
./build_rust.sh
|
||||
```
|
||||
|
||||
This will take a while the first time, but it puts everything in the right place.
|
||||
|
||||
Now, to build rust crates, run:
|
||||
```
|
||||
cd rust
|
||||
cargo build --all
|
||||
```
|
||||
|
||||
### Configure LibreQoS
|
||||
|
||||
#### Configure lqos.conf
|
||||
|
||||
Copy the lqosd daemon configuration file to `/etc`:
|
||||
|
||||
```
|
||||
cd /opt/libreqos/src
|
||||
sudo cp lqos.example /etc/lqos.conf
|
||||
```
|
||||
|
||||
Now edit the file to match your setup with
|
||||
|
||||
```
|
||||
sudo nano /etc/lqos.conf
|
||||
```
|
||||
|
||||
Change `enp1s0f1` and `enp1s0f2` to match your network interfaces. It doesn't matter which one is which. Notice, it's paring the interfaces, so when you first enter enps0f<ins>**1**</ins> in the first line, the `redirect_to` parameter is enp1s0f<ins>**2**</ins> (replacing with your actual interface names).
|
||||
|
||||
- First Line: `name = "enp1s0f1", redirect_to = "enp1s0f2"`
|
||||
- Second Line: `name = "enp1s0f2", redirect_to = "enp1s0f1"`
|
||||
|
||||
Then, if using Bifrost/XDP set `use_xdp_bridge = true` under that same `[bridge]` section.
|
||||
|
||||
|
||||
#### Configure ispConfig.py
|
||||
Copy ispConfig.example.py to ispConfig.py and edit as needed
|
||||
```
|
||||
cd /opt/libreqos/src/
|
||||
cp ispConfig.example.py ispConfig.py
|
||||
nano ispConfig.py
|
||||
```
|
||||
* Set upstreamBandwidthCapacityDownloadMbps and upstreamBandwidthCapacityUploadMbps to match the bandwidth in Mbps of your network's upstream / WAN internet connection. The same can be done for generatedPNDownloadMbps and generatedPNUploadMbps.
|
||||
* Set interfaceA to the interface facing your core router (or bridged internal network if your network is bridged)
|
||||
* Set interfaceB to the interface facing your edge router
|
||||
* Set ```enableActualShellCommands = True``` to allow the program to actually run the commands.
|
||||
|
||||
|
||||
### Network.json
|
||||
Network.json allows ISP operators to define a Hierarchical Network Topology, or Flat Network Topology.
|
||||
|
||||
For networks with no Parent Nodes (no strictly defined Access Points or Sites) edit the network.json to use a Flat Network Topology with
|
||||
```nano network.json```
|
||||
setting the following file content:
|
||||
```
|
||||
{}
|
||||
```
|
||||
If you plan to use the built-in UISP or Splynx integrations, you do not need to create a network.json file quite yet.
|
||||
|
||||
If you plan to use the built-in UISP integration, it will create this automatically on its first run (assuming network.json is not already present). You can then modify the network.json to more accurately reflect your topology.
|
||||
|
||||
If you will not be using an integration, you can manually define the network.json following the template file - network.example.json
|
||||
```
|
||||
+-----------------------------------------------------------------------+
|
||||
| Entire Network |
|
||||
+-----------------------+-----------------------+-----------------------+
|
||||
| Parent Node A | Parent Node B | Parent Node C |
|
||||
+-----------------------+-------+-------+-------+-----------------------+
|
||||
| Parent Node D | Sub 3 | Sub 4 | Sub 5 | Sub 6 | Sub 7 | Parent Node F |
|
||||
+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
| Sub 1 | Sub 2 | | | | Sub 8 | Sub 9 |
|
||||
+-------+-------+-------+-----------------------+-------+-------+-------+
|
||||
```
|
||||
#### Manual Setup
|
||||
You can use
|
||||
```
|
||||
python3 csvToNetworkJSON.py
|
||||
```
|
||||
to convert manualNetwork.csv to a network.json file.
|
||||
manualNetwork.csv can be copied from the template file, manualNetwork.template.csv
|
||||
|
||||
Note: The parent node name must match that used for clients in ShapedDevices.csv
|
||||
|
||||
### ShapedDevices.csv
|
||||
If you are using an integration, this file will be automatically generated. If you are not using an integration, you can manually edit the file.
|
||||
#### Manual Editing
|
||||
* Modify the ShapedDevices.csv file using your preferred spreadsheet editor (LibreOffice Calc, Excel, etc), following the template file - ShapedDevices.example.csv
|
||||
* Circuit ID is required. Must be a string of some sort (int is fine, gets parsed as string). Must NOT include any number symbols (#).
|
||||
* An IPv4 address or IPv6 address is required for each entry.
|
||||
* The Access Point or Site name should be set in the Parent Node field. Parent Node can be left blank for flat networks.
|
||||
* The ShapedDevices.csv file allows you to set minimum guaranteed, and maximum allowed bandwidth per subscriber.
|
||||
* The minimum allowed plan rates for Circuits are 2Mbit. Bandwidth min and max should both be above that threshold.
|
||||
* Recommendation: set the min bandwidth to something like 25/10 and max to 1.15X advertised plan rate by using bandwidthOverheadFactor = 1.15
|
||||
* This way, when an AP hits its ceiling, users have any remaining AP capacity fairly distributed between them.
|
||||
* Ensure a reasonable minimum bandwidth minimum for every subscriber, allowing them to utilize up to the maximum provided when AP utilization is below 100%.
|
||||
|
||||
Note regarding SLAs: For customers with SLA contracts that guarantee them a minimum bandwidth, set their plan rate as the minimum bandwidth. That way when an AP approaches its ceiling, SLA customers will always get that amount.
|
||||
|
||||

|
||||
|
||||
### LibreQoS daemons
|
||||
lqosd
|
||||
* Manages actual XDP code. Build with Rust.
|
||||
|
||||
lqos_node_manager
|
||||
* Runs the GUI available at http://a.b.c.d:9123
|
||||
|
||||
lqos_scheduler
|
||||
* lqos_scheduler handles statistics and performs continuous refreshes of LibreQoS' shapers, including pulling from any enabled CRM Integrations (UISP, Splynx).
|
||||
* On start: Run a full setup of queues
|
||||
* Every 10 seconds: Graph bandwidth and latency stats
|
||||
* Every 30 minutes: Update queues, pulling new configuration from CRM integration if enabled
|
||||
|
||||
### Run daemons with systemd
|
||||
|
||||
You can setup `lqosd`, `lqos_node_manager`, and `lqos_scheduler` as systemd services.
|
||||
|
||||
```
|
||||
sudo cp /opt/libreqos/src/bin/lqos_node_manager.service.example /etc/systemd/system/lqos_node_manager.service
|
||||
sudo cp /opt/libreqos/src/bin/lqosd.service.example /etc/systemd/system/lqosd.service
|
||||
sudo cp /opt/libreqos/src/bin/lqos_scheduler.service.example /etc/systemd/system/lqos_scheduler.service
|
||||
```
|
||||
Finally, run
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable lqosd lqos_node_manager lqos_scheduler
|
||||
```
|
||||
|
||||
You can now point a web browser at `http://a.b.c.d:9123` (replace `a.b.c.d` with the management IP address of your shaping server) and enjoy a real-time view of your network.
|
||||
|
||||
### Debugging lqos_scheduler
|
||||
In the background, lqos_scheduler runs scheduler.py, which in turn runs LibreQoS.py
|
||||
|
||||
One-time runs of these individual components can be very helpful for debugging and to make sure everything is correctly configured.
|
||||
|
||||
First, stop lqos_scheduler
|
||||
```
|
||||
sudo systemctl stop lqos_scheduler
|
||||
```
|
||||
For one-time runs of LibreQoS.py, use
|
||||
```
|
||||
sudo ./LibreQoS.py
|
||||
```
|
||||
* To use the debug mode with more verbose output, use:
|
||||
```
|
||||
sudo ./LibreQoS.py --debug
|
||||
```
|
||||
To confirm that lqos_scheduler (scheduler.py) is able to work correctly, run:
|
||||
```
|
||||
sudo python3 scheduler.py
|
||||
```
|
||||
Once you have any errors eliminated, restart lqos_scheduler with
|
||||
```
|
||||
sudo systemctl start lqos_scheduler
|
||||
```
|
||||
You are now ready to [Configure](./configuration.md) LibreQoS!
|
||||
|
@ -1,13 +1,13 @@
|
||||
## Server Setup - Pre-requisites
|
||||
# Server Setup - Pre-requisites
|
||||
|
||||
Disable hyperthreading on the BIOS/UEFI of your host system. Hyperthreaading is also known as Simultaneous Multi Threading (SMT) on AMD systems. Disabling this is very important for optimal performance of the XDP cpumap filtering and, in turn, throughput and latency.
|
||||
|
||||
* Boot, pressing the appropriate key to enter the BIOS settings
|
||||
* For AMD systems, you will have to navigate the settings to find the "SMT Control" setting. Usually it is under something like ```Advanced -> AMD CBS -> CPU Common Options -> Thread Enablement -> SMT Control``` Once you find it, switch to "Disabled" or "Off"
|
||||
* For Intel systems, you will also have to navigate the settings to find the "hyperthrading" toggle option. On HP servers it's under ```System Configuration > BIOS/Platform Configuration (RBSU) > Processor Options > Intel (R) Hyperthreading Options.```
|
||||
* Save changes and reboot
|
||||
- Boot, pressing the appropriate key to enter the BIOS settings
|
||||
- For AMD systems, you will have to navigate the settings to find the "SMT Control" setting. Usually it is under something like ```Advanced -> AMD CBS -> CPU Common Options -> Thread Enablement -> SMT Control``` Once you find it, switch to "Disabled" or "Off"
|
||||
- For Intel systems, you will also have to navigate the settings to find the "hyperthrading" toggle option. On HP servers it's under ```System Configuration > BIOS/Platform Configuration (RBSU) > Processor Options > Intel (R) Hyperthreading Options.```
|
||||
- Save changes and reboot
|
||||
|
||||
### Install Ubuntu Server
|
||||
## Install Ubuntu Server
|
||||
|
||||
We recommend Ubuntu Server because its kernel version tends to track closely with the mainline Linux releases. Our current documentation assumes Ubuntu Server. To run LibreQoS v1.4, Linux kernel 5.11 or greater is required, as 5.11 includes some important XDP patches. Ubuntu Server 22.04 uses kernel 5.13, which meets that requirement.
|
||||
|
||||
@ -21,28 +21,36 @@ You can download Ubuntu Server 22.04 from <a href="https://ubuntu.com/download/s
|
||||
6. You can use scp or sftp to access files from your LibreQoS server for easier file editing. Here's how to access via scp or sftp using an [Ubuntu](https://www.addictivetips.com/ubuntu-linux-tips/sftp-server-ubuntu/) or [Windows](https://winscp.net/eng/index.php) machine.
|
||||
|
||||
### Choose Bridge Type
|
||||
|
||||
There are two options for the bridge to pass data through your two interfaces:
|
||||
* Bifrost XDP-Accelerated Bridge
|
||||
* Regular Linux Bridge
|
||||
|
||||
- Bifrost XDP-Accelerated Bridge
|
||||
- Regular Linux Bridge
|
||||
|
||||
The Bifrost Bridge is faster and generally recommended, but may not work perfectly in a VM setup using virtualized NICs.
|
||||
To use the Bifrost bridge, skip the regular Linux bridge section below, and be sure to enable Bifrost/XDP in lqos.conf a few sections below.
|
||||
|
||||
### Adding a regular Linux bridge (if not using Bifrost XDP bridge)
|
||||
|
||||
From the Ubuntu VM, create a linux interface bridge - br0 - with the two shaping interfaces.
|
||||
Find your existing .yaml file in /etc/netplan/ with
|
||||
```
|
||||
|
||||
```shell
|
||||
cd /etc/netplan/
|
||||
ls
|
||||
```
|
||||
|
||||
Then edit the .yaml file there with
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo nano XX-cloud-init.yaml
|
||||
```
|
||||
with XX corresponding to the name of the existing file.
|
||||
|
||||
With XX corresponding to the name of the existing file.
|
||||
|
||||
Editing the .yaml file, we need to define the shaping interfaces (here, ens19 and ens20) and add the bridge with those two interfaces. Assuming your interfaces are ens18, ens19, and ens20, here is what your file might look like:
|
||||
```
|
||||
|
||||
```yaml
|
||||
# This is the network config written by 'subiquity'
|
||||
network:
|
||||
ethernets:
|
||||
@ -68,10 +76,12 @@ network:
|
||||
- ens19
|
||||
- ens20
|
||||
```
|
||||
|
||||
Make sure to replace 10.0.0.12/24 with your LibreQoS VM's address and subnet, and to replace the default gateway 10.0.0.1 with whatever your default gateway is.
|
||||
|
||||
Then run
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo netplan apply
|
||||
```
|
||||
|
||||
@ -84,24 +94,34 @@ To install InfluxDB 2.x., follow the steps at [https://portal.influxdata.com/dow
|
||||
For high throughput networks (5+ Gbps) you will likely want to install InfluxDB to a separate machine or VM from that of the LibreQoS server to avoid CPU load.
|
||||
|
||||
Restart your system that is running InfluxDB
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Check to ensure InfluxDB is running properly. This command should show "Active: active" with green dot.
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo service influxdb status
|
||||
```
|
||||
|
||||
Check that Web UI is running:<br>
|
||||
```
|
||||
|
||||
```shell
|
||||
http://SERVER_IP_ADDRESS:8086
|
||||
```
|
||||
|
||||
Create Bucket
|
||||
* Data > Buckets > Create Bucket
|
||||
|
||||
- Data > Buckets > Create Bucket
|
||||
|
||||
Call the bucket `libreqos` (all lowercase).<br>
|
||||
Have it store as many days of data as you prefer. 7 days is standard.<>
|
||||
Import Dashboard
|
||||
* Boards > Create Dashboard > Import Dashboard
|
||||
Import Dashboard `Boards > Create Dashboard > Import Dashboard`
|
||||
Then upload the file [influxDBdashboardTemplate.json](https://github.com/rchac/LibreQoS/blob/main/src/influxDBdashboardTemplate.json) to InfluxDB.
|
||||
|
||||
[Generate an InfluxDB Token](https://docs.influxdata.com/influxdb/cloud/security/tokens/create-token/). It will be added to ispConfig.py in the following steps.
|
||||
|
||||
```{note}
|
||||
You may want to install a reverse proxy in front of the web interfaces for influx and lqos. Setting these up is outside the scope of this document, but some examples are [Caddy](https://caddyserver.com/), and Nginx [Proxy Manager](https://nginxproxymanager.com/)
|
||||
```
|
||||
|
71
_build/html/_sources/docs/Quickstart/services-and-run.md.txt
Normal file
71
_build/html/_sources/docs/Quickstart/services-and-run.md.txt
Normal file
@ -0,0 +1,71 @@
|
||||
# LibreQoS daemons
|
||||
|
||||
lqosd
|
||||
|
||||
- Manages actual XDP code. Build with Rust.
|
||||
|
||||
lqos_node_manager
|
||||
|
||||
- Runs the GUI available at http://a.b.c.d:9123
|
||||
|
||||
lqos_scheduler
|
||||
|
||||
- lqos_scheduler handles statistics and performs continuous refreshes of LibreQoS' shapers, including pulling from any enabled CRM Integrations (UISP, Splynx).
|
||||
- On start: Run a full setup of queues
|
||||
- Every 10 seconds: Graph bandwidth and latency stats
|
||||
- Every 30 minutes: Update queues, pulling new configuration from CRM integration if enabled
|
||||
|
||||
## Run daemons with systemd
|
||||
|
||||
You can setup `lqosd`, `lqos_node_manager`, and `lqos_scheduler` as systemd services.
|
||||
|
||||
```shell
|
||||
sudo cp /opt/libreqos/src/bin/lqos_node_manager.service.example /etc/systemd/system/lqos_node_manager.service
|
||||
sudo cp /opt/libreqos/src/bin/lqosd.service.example /etc/systemd/system/lqosd.service
|
||||
sudo cp /opt/libreqos/src/bin/lqos_scheduler.service.example /etc/systemd/system/lqos_scheduler.service
|
||||
```
|
||||
|
||||
Finally, run
|
||||
|
||||
```shell
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable lqosd lqos_node_manager lqos_scheduler
|
||||
```
|
||||
|
||||
You can now point a web browser at `http://a.b.c.d:9123` (replace `a.b.c.d` with the management IP address of your shaping server) and enjoy a real-time view of your network.
|
||||
|
||||
## Debugging lqos_scheduler
|
||||
|
||||
In the background, lqos_scheduler runs scheduler.py, which in turn runs LibreQoS.py
|
||||
|
||||
One-time runs of these individual components can be very helpful for debugging and to make sure everything is correctly configured.
|
||||
|
||||
First, stop lqos_scheduler
|
||||
|
||||
```shell
|
||||
sudo systemctl stop lqos_scheduler
|
||||
```
|
||||
|
||||
For one-time runs of LibreQoS.py, use
|
||||
|
||||
```shell
|
||||
sudo ./LibreQoS.py
|
||||
```
|
||||
|
||||
- To use the debug mode with more verbose output, use:
|
||||
|
||||
```shell
|
||||
sudo ./LibreQoS.py --debug
|
||||
```
|
||||
|
||||
To confirm that lqos_scheduler (scheduler.py) is able to work correctly, run:
|
||||
|
||||
```shell
|
||||
sudo python3 scheduler.py
|
||||
```
|
||||
|
||||
Once you have any errors eliminated, restart lqos_scheduler with
|
||||
|
||||
```shell
|
||||
sudo systemctl start lqos_scheduler
|
||||
```
|
@ -1,4 +1,4 @@
|
||||
## Share your before and after
|
||||
# Share your before and after
|
||||
|
||||
We ask that you please share an anonymized screenshot of your LibreQoS deployment before (monitor only mode) and after (queuing enabled) to our [Matrix Channel](https://matrix.to/#/#libreqos:matrix.org). This helps us gauge the impact of our software. It also makes us smile.
|
||||
|
||||
@ -8,7 +8,7 @@ We ask that you please share an anonymized screenshot of your LibreQoS deploymen
|
||||
4. Resume regular queuing
|
||||
5. Screenshot
|
||||
|
||||
### Enable monitor only mode
|
||||
## Enable monitor only mode
|
||||
|
||||
```shell
|
||||
sudo systemctl stop lqos_scheduler
|
||||
@ -16,16 +16,16 @@ sudo systemctl restart lqosd
|
||||
sudo systemctl restart lqos_node_manager
|
||||
```
|
||||
|
||||
### Klingon mode
|
||||
## Klingon mode
|
||||
|
||||
Please go to the Web UI and click Configuration. Toggle Redact Customer Information (screenshot mode) and then Apply Changes.
|
||||
|
||||
### Resume regular queuing
|
||||
## Resume regular queuing
|
||||
|
||||
```shell
|
||||
sudo systemctl start lqos_scheduler
|
||||
```
|
||||
|
||||
### Screenshot
|
||||
## Screenshot
|
||||
|
||||
To generate a screenshot - please go to the Web UI and click Configuration. Toggle Redact Customer Information (screenshot mode), Apply Changes, and then return to the dashboard to take a screenshot.
|
||||
|
@ -0,0 +1,56 @@
|
||||
# Complex install (Not Recommended)
|
||||
|
||||
## Clone the repo
|
||||
|
||||
The recommended install location is `/opt/libreqos`
|
||||
Go to the install location, and clone the repo:
|
||||
|
||||
```shell
|
||||
cd /opt/
|
||||
git clone https://github.com/LibreQoE/LibreQoS.git libreqos
|
||||
sudo chown -R YOUR_USER /opt/libreqos
|
||||
```
|
||||
|
||||
By specifying `libreqos` at the end, git will ensure the folder name is lowercase.
|
||||
|
||||
## Install Dependencies from apt and pip
|
||||
|
||||
You need to have a few packages from `apt` installed:
|
||||
|
||||
```shell
|
||||
sudo apt-get install -y python3-pip clang gcc gcc-multilib llvm libelf-dev git nano graphviz curl screen llvm pkg-config linux-tools-common linux-tools-`uname -r` libbpf-dev
|
||||
```
|
||||
|
||||
Then you need to install some Python dependencies:
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos
|
||||
python3 -m pip install -r requirements.txt
|
||||
sudo python3 -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Install the Rust development system
|
||||
|
||||
Go to [RustUp](https://rustup.rs) and follow the instructions. Basically, run the following:
|
||||
|
||||
```shell
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
```
|
||||
|
||||
When Rust finishes installing, it will tell you to execute a command to place the Rust build tools into your path. You need to either execute this command or logout and back in again.
|
||||
|
||||
Once that's done, please run:
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos/src/
|
||||
./build_rust.sh
|
||||
```
|
||||
|
||||
This will take a while the first time, but it puts everything in the right place.
|
||||
|
||||
Now, to build rust crates, run:
|
||||
|
||||
```shell
|
||||
cd rust
|
||||
cargo build --all
|
||||
```
|
@ -1,27 +1,31 @@
|
||||
## Integrations
|
||||
# Integrations
|
||||
|
||||
### UISP Integration
|
||||
## UISP Integration
|
||||
|
||||
First, set the relevant parameters for UISP (uispAuthToken, UISPbaseURL, etc.) in ispConfig.py.
|
||||
|
||||
To test the UISP Integration, use
|
||||
```
|
||||
|
||||
```shell
|
||||
python3 integrationUISP.py
|
||||
```
|
||||
|
||||
On the first successful run, it will create a network.json and ShapedDevices.csv file.
|
||||
If a network.json file exists, it will not be overwritten.
|
||||
You can modify the network.json file to more accurately reflect bandwidth limits.
|
||||
ShapedDevices.csv will be overwritten every time the UISP integration is run.
|
||||
You have the option to run integrationUISP.py automatically on boot and every 30 minutes, which is recommended. This can be enabled by setting ```automaticImportUISP = True``` in ispConfig.py
|
||||
|
||||
### Splynx Integration
|
||||
## Splynx Integration
|
||||
|
||||
First, set the relevant parameters for Splynx (splynx_api_key, splynx_api_secret, etc.) in ispConfig.py.
|
||||
|
||||
To test the Splynx Integration, use
|
||||
```
|
||||
|
||||
```shell
|
||||
python3 integrationSplynx.py
|
||||
```
|
||||
|
||||
On the first successful run, it will create a ShapedDevices.csv file.
|
||||
You can manually create your network.json file to more accurately reflect bandwidth limits.
|
||||
ShapedDevices.csv will be overwritten every time the Splynx integration is run.
|
||||
|
@ -4,9 +4,16 @@
|
||||
|
||||
### LibreQoS Is Running, But Traffic Not Shaping
|
||||
|
||||
- In ispConfig.py, make sure the edge and core interfaces correspond to correctly to the edge and core. Try swapping the interfaces to see if shaping starts to work.
|
||||
- Make sure your services are running properly `lqos.service`, `lqos_node_manager`, `lqos_scheduler`. Node manager and scheduler are dependent on the `lqos.service` being in a healthy, running state.
|
||||
In ispConfig.py, make sure the edge and core interfaces correspond to correctly to the edge and core. Try swapping the interfaces to see if shaping starts to work.
|
||||
|
||||
Make sure your services are running properly
|
||||
|
||||
- `lqos.service`
|
||||
- `lqos_node_manager`
|
||||
- `lqos_scheduler`
|
||||
|
||||
Node manager and scheduler are dependent on the `lqos.service` being in a healthy, running state.
|
||||
|
||||
### RTNETLINK answers: Invalid argument
|
||||
|
||||
This tends to show up when the MQ qdisc cannot be added correctly to the NIC interface. This would suggest the NIC has insufficient RX/TX queues. Please make sure you are using the [recommended NICs](#network-interface-card).
|
||||
This tends to show up when the MQ qdisc cannot be added correctly to the NIC interface. This would suggest the NIC has insufficient RX/TX queues. Please make sure you are using the [recommended NICs](../SystemRequirements/Networking.md).
|
||||
|
@ -1,15 +1,24 @@
|
||||
## Updating 1.4 To Latest Version
|
||||
# Updating 1.4 To Latest Version
|
||||
|
||||
Note: If you use the XDP bridge, traffic will stop passing through the bridge during the update (XDP bridge is only operating while lqosd runs).
|
||||
```{warning}
|
||||
If you use the XDP bridge, traffic will stop passing through the bridge during the update (XDP bridge is only operating while lqosd runs).
|
||||
```
|
||||
|
||||
## If you installed with Git
|
||||
|
||||
1. Change to your `LibreQoS` directory (e.g. `cd /opt/LibreQoS`)
|
||||
2. Update from Git: `git pull`
|
||||
3. Recompile: `./build-rust.sh`
|
||||
4. `sudo rust/remove_pinned_maps.sh`
|
||||
5.
|
||||
|
||||
```
|
||||
Run the following commands to reload the LibreQoS services.
|
||||
|
||||
```shell
|
||||
sudo systemctl restart lqosd
|
||||
sudo systemctl restart lqos_node_manager
|
||||
sudo systemctl restart lqos_scheduler
|
||||
```
|
||||
|
||||
## If you installed through the APT repository
|
||||
|
||||
All you should have to do in this case is run `sudo apt update && sudo apt upgrade` and LibreQoS should install the new package.
|
||||
|
@ -32,6 +32,8 @@ Welcome to the LibreQoS documentation!
|
||||
docs/SystemRequirements/Networking
|
||||
docs/Quickstart/quickstart-prereq
|
||||
docs/Quickstart/quickstart-libreqos-1.4
|
||||
docs/Quickstart/configuration
|
||||
docs/Quickstart/services-and-run
|
||||
docs/Quickstart/share
|
||||
|
||||
.. toctree::
|
||||
@ -44,6 +46,7 @@ Welcome to the LibreQoS documentation!
|
||||
:maxdepth: 1
|
||||
:caption: Technical Documentation:
|
||||
|
||||
docs/TechnicalDocs/complex-install
|
||||
docs/TechnicalDocs/troubleshooting
|
||||
docs/TechnicalDocs/integrations
|
||||
docs/TechnicalDocs/extras
|
||||
|
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
|
@ -16,7 +16,8 @@
|
||||
<script src="../../_static/sphinx_highlight.js"></script>
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="prev" title="Performance Tuning" href="../TechnicalDocs/performance-tuning.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
@ -42,6 +43,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
@ -49,10 +51,14 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/share.html">Share your before and after</a></li>
|
||||
@ -63,10 +69,60 @@
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Technical%20Docs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Technical%20Docs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Technical%20Docs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Technical%20Docs/performance-tuning.html">Performance Tuning</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">LibreQoS v1.3.1</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#libreqos-v1-3-1-installation-usage-guide-physical-server-and-ubuntu-22-04">LibreQoS v1.3.1 Installation & Usage Guide - Physical Server and Ubuntu 22.04</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#notes-for-upgrading-from-v1-2-or-prior">Notes for upgrading from v1.2 or prior</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#custom-crm-integrations">Custom CRM Integrations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#network-design-assumptions">Network Design Assumptions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#network-interface-card">Network Interface Card</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#server-setup">Server Setup</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#install-ubuntu">Install Ubuntu</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#use-installer-script-for-sponsors-skip-if-not-applicable">Use Installer Script (For Sponsors - Skip If Not Applicable)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#setup">Setup</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#disable-irqbalance">Disable IRQbalance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#disable-offloading">Disable Offloading</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#add-a-bridge-between-edge-core-interfaces">Add a bridge between edge/core interfaces</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#install-libreqos-and-dependencies">Install LibreQoS and dependencies</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#install-and-compile-cpumap-pping">Install and compile cpumap-pping</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#install-influxdb-for-graphing">Install InfluxDB for Graphing</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#modify-ispconfig-py">Modify ispConfig.py</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#integrations">Integrations</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="#uisp-integration">UISP Integration</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#network-json">Network.json</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="#manual-editing">Manual Editing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#shapeddevices-csv">ShapedDevices.csv</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-to-run-libreqos">How to run LibreQoS</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#one-time-debug-runs">One-Time / Debug Runs</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#running-as-a-service">Running as a service</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#crontab">Crontab</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#common-issues">Common Issues</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#program-running-but-traffic-not-shaping">Program Running, But Traffic Not Shaping</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#rtnetlink-answers-invalid-argument">RTNETLINK answers: Invalid argument</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#performance-tuning">Performance Tuning</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#ospf">OSPF</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -495,7 +551,9 @@ sudo<span class="w"> </span>/etc/init.d/cron<span class="w"> </span>start
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../TechnicalDocs/performance-tuning.html" class="btn btn-neutral float-left" title="Performance Tuning" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
246
_build/html/docs/Quickstart/configuration.html
Normal file
246
_build/html/docs/Quickstart/configuration.html
Normal file
@ -0,0 +1,246 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Configure LibreQoS — LibreQoE documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<script src="../../_static/sphinx_highlight.js"></script>
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="LibreQoS daemons" href="services-and-run.html" />
|
||||
<link rel="prev" title="Install LibreQoS 1.4" href="quickstart-libreqos-1.4.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="../../index.html" class="icon icon-home">
|
||||
LibreQoE
|
||||
</a>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Configure LibreQoS</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#configure-lqos-conf">Configure lqos.conf</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#configure-ispconfig-py">Configure ispConfig.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#network-json">Network.json</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#manual-setup">Manual Setup</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#shapeddevices-csv">ShapedDevices.csv</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#manual-editing">Manual Editing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../../index.html">LibreQoE</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||
<li class="breadcrumb-item active">Configure LibreQoS</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
<a href="../../_sources/docs/Quickstart/configuration.md.txt" rel="nofollow"> View page source</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="configure-libreqos">
|
||||
<h1>Configure LibreQoS<a class="headerlink" href="#configure-libreqos" title="Permalink to this heading"></a></h1>
|
||||
<section id="configure-lqos-conf">
|
||||
<h2>Configure lqos.conf<a class="headerlink" href="#configure-lqos-conf" title="Permalink to this heading"></a></h2>
|
||||
<p>Copy the lqosd daemon configuration file to <code class="docutils literal notranslate"><span class="pre">/etc</span></code>:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>/opt/libreqos/src
|
||||
sudo<span class="w"> </span>cp<span class="w"> </span>lqos.example<span class="w"> </span>/etc/lqos.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Now edit the file to match your setup with</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>nano<span class="w"> </span>/etc/lqos.conf
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Change <code class="docutils literal notranslate"><span class="pre">enp1s0f1</span></code> and <code class="docutils literal notranslate"><span class="pre">enp1s0f2</span></code> to match your network interfaces. It doesn’t matter which one is which. Notice, it’s paring the interfaces, so when you first enter enps0f<ins><strong>1</strong></ins> in the first line, the <code class="docutils literal notranslate"><span class="pre">redirect_to</span></code> parameter is enp1s0f<ins><strong>2</strong></ins> (replacing with your actual interface names).</p>
|
||||
<ul class="simple">
|
||||
<li><p>First Line: <code class="docutils literal notranslate"><span class="pre">name</span> <span class="pre">=</span> <span class="pre">"enp1s0f1",</span> <span class="pre">redirect_to</span> <span class="pre">=</span> <span class="pre">"enp1s0f2"</span></code></p></li>
|
||||
<li><p>Second Line: <code class="docutils literal notranslate"><span class="pre">name</span> <span class="pre">=</span> <span class="pre">"enp1s0f2",</span> <span class="pre">redirect_to</span> <span class="pre">=</span> <span class="pre">"enp1s0f1"</span></code></p></li>
|
||||
</ul>
|
||||
<p>Then, if using Bifrost/XDP set <code class="docutils literal notranslate"><span class="pre">use_xdp_bridge</span> <span class="pre">=</span> <span class="pre">true</span></code> under that same <code class="docutils literal notranslate"><span class="pre">[bridge]</span></code> section.</p>
|
||||
</section>
|
||||
<section id="configure-ispconfig-py">
|
||||
<h2>Configure ispConfig.py<a class="headerlink" href="#configure-ispconfig-py" title="Permalink to this heading"></a></h2>
|
||||
<p>Copy ispConfig.example.py to ispConfig.py and edit as needed</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>/opt/libreqos/src/
|
||||
cp<span class="w"> </span>ispConfig.example.py<span class="w"> </span>ispConfig.py
|
||||
nano<span class="w"> </span>ispConfig.py
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><p>Set upstreamBandwidthCapacityDownloadMbps and upstreamBandwidthCapacityUploadMbps to match the bandwidth in Mbps of your network’s upstream / WAN internet connection. The same can be done for generatedPNDownloadMbps and generatedPNUploadMbps.</p></li>
|
||||
<li><p>Set interfaceA to the interface facing your core router (or bridged internal network if your network is bridged)</p></li>
|
||||
<li><p>Set interfaceB to the interface facing your edge router</p></li>
|
||||
<li><p>Set <code class="docutils literal notranslate"><span class="pre">enableActualShellCommands</span> <span class="pre">=</span> <span class="pre">True</span></code> to allow the program to actually run the commands.</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="network-json">
|
||||
<h2>Network.json<a class="headerlink" href="#network-json" title="Permalink to this heading"></a></h2>
|
||||
<p>Network.json allows ISP operators to define a Hierarchical Network Topology, or Flat Network Topology.</p>
|
||||
<p>For networks with no Parent Nodes (no strictly defined Access Points or Sites) edit the network.json to use a Flat Network Topology with
|
||||
<code class="docutils literal notranslate"><span class="pre">nano</span> <span class="pre">network.json</span></code>
|
||||
setting the following file content:</p>
|
||||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If you plan to use the built-in UISP or Splynx integrations, you do not need to create a network.json file quite yet.</p>
|
||||
<p>If you plan to use the built-in UISP integration, it will create this automatically on its first run (assuming network.json is not already present). You can then modify the network.json to more accurately reflect your topology.</p>
|
||||
<p>If you will not be using an integration, you can manually define the network.json following the template file - network.example.json</p>
|
||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>+-----------------------------------------------------------------------+
|
||||
| Entire Network |
|
||||
+-----------------------+-----------------------+-----------------------+
|
||||
| Parent Node A | Parent Node B | Parent Node C |
|
||||
+-----------------------+-------+-------+-------+-----------------------+
|
||||
| Parent Node D | Sub 3 | Sub 4 | Sub 5 | Sub 6 | Sub 7 | Parent Node F |
|
||||
+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
| Sub 1 | Sub 2 | | | | Sub 8 | Sub 9 |
|
||||
+-------+-------+-------+-----------------------+-------+-------+-------+
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="manual-setup">
|
||||
<h2>Manual Setup<a class="headerlink" href="#manual-setup" title="Permalink to this heading"></a></h2>
|
||||
<p>You can use</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>python3<span class="w"> </span>csvToNetworkJSON.py
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to convert manualNetwork.csv to a network.json file.
|
||||
manualNetwork.csv can be copied from the template file, manualNetwork.template.csv</p>
|
||||
<p>Note: The parent node name must match that used for clients in ShapedDevices.csv</p>
|
||||
</section>
|
||||
<section id="shapeddevices-csv">
|
||||
<h2>ShapedDevices.csv<a class="headerlink" href="#shapeddevices-csv" title="Permalink to this heading"></a></h2>
|
||||
<p>If you are using an integration, this file will be automatically generated. If you are not using an integration, you can manually edit the file.</p>
|
||||
<section id="manual-editing">
|
||||
<h3>Manual Editing<a class="headerlink" href="#manual-editing" title="Permalink to this heading"></a></h3>
|
||||
<ul class="simple">
|
||||
<li><p>Modify the ShapedDevices.csv file using your preferred spreadsheet editor (LibreOffice Calc, Excel, etc), following the template file - ShapedDevices.example.csv</p></li>
|
||||
<li><p>Circuit ID is required. Must be a string of some sort (int is fine, gets parsed as string). Must NOT include any number symbols (#).</p></li>
|
||||
<li><p>An IPv4 address or IPv6 address is required for each entry.</p></li>
|
||||
<li><p>The Access Point or Site name should be set in the Parent Node field. Parent Node can be left blank for flat networks.</p></li>
|
||||
<li><p>The ShapedDevices.csv file allows you to set minimum guaranteed, and maximum allowed bandwidth per subscriber.</p></li>
|
||||
<li><p>The minimum allowed plan rates for Circuits are 2Mbit. Bandwidth min and max should both be above that threshold.</p></li>
|
||||
<li><p>Recommendation: set the min bandwidth to something like 25/10 and max to 1.15X advertised plan rate by using bandwidthOverheadFactor = 1.15</p>
|
||||
<ul>
|
||||
<li><p>This way, when an AP hits its ceiling, users have any remaining AP capacity fairly distributed between them.</p></li>
|
||||
<li><p>Ensure a reasonable minimum bandwidth minimum for every subscriber, allowing them to utilize up to the maximum provided when AP utilization is below 100%.</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Note regarding SLAs: For customers with SLA contracts that guarantee them a minimum bandwidth, set their plan rate as the minimum bandwidth. That way when an AP approaches its ceiling, SLA customers will always get that amount.</p>
|
||||
<p><img alt="image" src="https://user-images.githubusercontent.com/22501920/200134960-28709d0f-48fe-4129-b4fd-70b204cade2c.png" /></p>
|
||||
<p>Once your configuration is complete. You’re ready to run the application and start the <a class="reference internal" href="services-and-run.html"><span class="std std-doc">Deamons</span></a></p>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="quickstart-libreqos-1.4.html" class="btn btn-neutral float-left" title="Install LibreQoS 1.4" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="services-and-run.html" class="btn btn-neutral float-right" title="LibreQoS daemons" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>© Copyright 2023, LibreQoE.</p>
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -17,7 +17,7 @@
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="System Requirements" href="../System%20Requirements/Compute.html" />
|
||||
<link rel="next" title="LibreQoS v1.3.1 to v1.4 Change Summary" href="../ChangeNotes/v1.4.html" />
|
||||
<link rel="prev" title="Sponsors" href="../../README.html" />
|
||||
</head>
|
||||
|
||||
@ -44,21 +44,50 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Network Design Assumptions</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#network-interface-card">Network Interface Card</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#officially-supported-configuration">Officially supported configuration</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#network-interface-card">Network Interface Card</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#alternate-configuration-not-officially-supported">Alternate configuration (Not officially supported)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart Considerations:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">LibreQoS Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -87,7 +116,8 @@
|
||||
|
||||
<section id="network-design-assumptions">
|
||||
<h1>Network Design Assumptions<a class="headerlink" href="#network-design-assumptions" title="Permalink to this heading"></a></h1>
|
||||
<p>Officially supported configuration:</p>
|
||||
<section id="officially-supported-configuration">
|
||||
<h2>Officially supported configuration<a class="headerlink" href="#officially-supported-configuration" title="Permalink to this heading"></a></h2>
|
||||
<ul class="simple">
|
||||
<li><p>LibreQoS placed inline in network, usually between an edge router (NAT, firewall) and core router (distribution to sites across network).</p>
|
||||
<ul>
|
||||
@ -99,16 +129,42 @@
|
||||
<li><p>OSPF primary link (low cost) through the server running LibreQoS</p></li>
|
||||
<li><p>OSPF backup link (high cost, maybe 200 for example)</p></li>
|
||||
</ul>
|
||||
<p><img alt="" src="https://raw.githubusercontent.com/rchac/LibreQoS/main/docs/design.png" /></p>
|
||||
<p>Is it possible to use LibreQoS in-line without a core router, but that setup requires depending on STP instead of OSPF, which can cause issues. Such configurations are not officially supported.</p>
|
||||
<p><img alt="Offical Configuration" src="https://raw.githubusercontent.com/rchac/LibreQoS/main/docs/design.png" /></p>
|
||||
<section id="network-interface-card">
|
||||
<h2>Network Interface Card<a class="headerlink" href="#network-interface-card" title="Permalink to this heading"></a></h2>
|
||||
<p>You must have one of these:
|
||||
*single NIC with two interfaces,
|
||||
*two NICs with single interface,
|
||||
*2x VLANs interface (using one or two NICs).</p>
|
||||
<h3>Network Interface Card<a class="headerlink" href="#network-interface-card" title="Permalink to this heading"></a></h3>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>You must have one of these:</p>
|
||||
<ul class="simple">
|
||||
<li><p>single NIC with two interfaces,</p></li>
|
||||
<li><p>two NICs with single interface,</p></li>
|
||||
<li><p>2x VLANs interface (using one or two NICs).</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>LibreQoS requires NICs to have 2 or more RX/TX queues and XDP support. While many cards theoretically meet these requirements, less commonly used cards tend to have unreported driver bugs which impede XDP functionality and make them unusable for our purposes. At this time we recommend the Intel x520, Intel x710, and Nvidia (ConnectX-5 or newer) NICs. We cannot guarantee compatibility with other cards.</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="alternate-configuration-not-officially-supported">
|
||||
<h2>Alternate configuration (Not officially supported)<a class="headerlink" href="#alternate-configuration-not-officially-supported" title="Permalink to this heading"></a></h2>
|
||||
<p>This alternate configuration uses Spanning Tree Protocol (STP) to modify the data path in the event the LibreQoS device is offline for maintenance or another problem.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>Most of the same considerations apply to the alternate configuration as they do to the officially supported configuation</p>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><p>LibreQoS placed inline in network, usually between an edge router (NAT, firewall) and core router (distribution to sites across network).</p>
|
||||
<ul>
|
||||
<li><p>If you use NAT/CG-NAT, place LibreQoS inline south of where NAT is applied, as LibreQoS needs to shape internal addresses (100.64.0.0/12) not public post-NAT IPs.</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Edge router and Core switch should have 1500 MTU on links between them</p></li>
|
||||
<li><p>If you use MPLS, you would terminate MPLS traffic somewhere south of the core/distribution switch. LibreQoS cannot decapsulate MPLS on its own.</p></li>
|
||||
<li><p>Spanning Tree primary link (low cost) through the server running LibreQoS</p></li>
|
||||
<li><p>Spanning Tree backup link (high cost, maybe 80 for example)</p></li>
|
||||
</ul>
|
||||
<p>Keep in mind that if you use different bandwidth links, for example, 10 Gbps through LibreQoS, and 1 Gbps between core switch and edge router, you may need to be more intentional with your STP costs.</p>
|
||||
<p><img alt="Alternate Configuration" src="../../_images/stp-diagram.png" /></p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
@ -116,7 +172,7 @@
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../../README.html" class="btn btn-neutral float-left" title="Sponsors" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="../System%20Requirements/Compute.html" class="btn btn-neutral float-right" title="System Requirements" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<a href="../ChangeNotes/v1.4.html" class="btn btn-neutral float-right" title="LibreQoS v1.3.1 to v1.4 Change Summary" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
@ -17,6 +17,7 @@
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Configure LibreQoS" href="configuration.html" />
|
||||
<link rel="prev" title="Server Setup - Pre-requisites" href="quickstart-prereq.html" />
|
||||
</head>
|
||||
|
||||
@ -43,17 +44,22 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart Considerations:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Install LibreQoS 1.4</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#updating-from-v1-3">Updating from v1.3</a><ul>
|
||||
@ -62,30 +68,28 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#simple-install-via-deb-package-recommended">Simple install via .Deb package (Recommended)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#complex-install-not-recommended">Complex install (Not Recommended)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#clone-the-repo">Clone the repo</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#install-dependencies-from-apt-and-pip">Install Dependencies from apt and pip</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#install-the-rust-development-system">Install the Rust development system</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#complex-install-not-reccomended">Complex Install (Not Reccomended)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#configure-libreqos">Configure LibreQoS</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#configure-lqos-conf">Configure lqos.conf</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#configure-ispconfig-py">Configure ispConfig.py</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#network-json">Network.json</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#manual-setup">Manual Setup</a></li>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#shapeddevices-csv">ShapedDevices.csv</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#manual-editing">Manual Editing</a></li>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#libreqos-daemons">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#run-daemons-with-systemd">Run daemons with systemd</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#debugging-lqos-scheduler">Debugging lqos_scheduler</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -118,8 +122,8 @@
|
||||
<h2>Updating from v1.3<a class="headerlink" href="#updating-from-v1-3" title="Permalink to this heading"></a></h2>
|
||||
<section id="remove-offloadoff-service">
|
||||
<h3>Remove offloadOff.service<a class="headerlink" href="#remove-offloadoff-service" title="Permalink to this heading"></a></h3>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">disable</span> <span class="n">offloadOff</span><span class="o">.</span><span class="n">service</span>
|
||||
<span class="n">sudo</span> <span class="n">rm</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">offloadOff</span><span class="o">.</span><span class="n">sh</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">offloadOff</span><span class="o">.</span><span class="n">service</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>systemctl<span class="w"> </span>disable<span class="w"> </span>offloadOff.service
|
||||
sudo<span class="w"> </span>rm<span class="w"> </span>/usr/local/sbin/offloadOff.sh<span class="w"> </span>/etc/systemd/system/offloadOff.service
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
@ -131,205 +135,22 @@
|
||||
<section id="simple-install-via-deb-package-recommended">
|
||||
<h2>Simple install via .Deb package (Recommended)<a class="headerlink" href="#simple-install-via-deb-package-recommended" title="Permalink to this heading"></a></h2>
|
||||
<p>Use the deb package from the <a class="reference external" href="https://github.com/LibreQoE/LibreQoS/releases/">latest v1.4 release</a>.</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb http://stats.libreqos.io/ubuntu jammy main"</span><span class="w"> </span>><span class="w"> </span>/etc/apt/sources.list.d/libreqos.list
|
||||
wget<span class="w"> </span>-O<span class="w"> </span>-<span class="w"> </span>-q<span class="w"> </span>http://stats.libreqos.io/repo.asc<span class="w"> </span><span class="p">|</span><span class="w"> </span>apt-key<span class="w"> </span>add<span class="w"> </span>-
|
||||
apt-get<span class="w"> </span>update
|
||||
apt-get<span class="w"> </span>install<span class="w"> </span>libreqos
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You will be asked some questions about your configuration, and the management daemon and webserver will automatically start. Go to http://<your_ip>:9123/ to finish installation.</p>
|
||||
</section>
|
||||
<section id="complex-install-not-recommended">
|
||||
<h2>Complex install (Not Recommended)<a class="headerlink" href="#complex-install-not-recommended" title="Permalink to this heading"></a></h2>
|
||||
<section id="clone-the-repo">
|
||||
<h3>Clone the repo<a class="headerlink" href="#clone-the-repo" title="Permalink to this heading"></a></h3>
|
||||
<p>The recommended install location is <code class="docutils literal notranslate"><span class="pre">/opt/libreqos</span></code>
|
||||
Go to the install location, and clone the repo:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span>
|
||||
<span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">LibreQoE</span><span class="o">/</span><span class="n">LibreQoS</span><span class="o">.</span><span class="n">git</span> <span class="n">libreqos</span>
|
||||
<span class="n">sudo</span> <span class="n">chown</span> <span class="o">-</span><span class="n">R</span> <span class="n">YOUR_USER</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>By specifying <code class="docutils literal notranslate"><span class="pre">libreqos</span></code> at the end, git will ensure the folder name is lowercase.</p>
|
||||
</section>
|
||||
<section id="install-dependencies-from-apt-and-pip">
|
||||
<h3>Install Dependencies from apt and pip<a class="headerlink" href="#install-dependencies-from-apt-and-pip" title="Permalink to this heading"></a></h3>
|
||||
<p>You need to have a few packages from <code class="docutils literal notranslate"><span class="pre">apt</span></code> installed:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sudo apt-get install -y python3-pip clang gcc gcc-multilib llvm libelf-dev git nano graphviz curl screen llvm pkg-config linux-tools-common linux-tools-`uname -r` libbpf-dev
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Then you need to install some Python dependencies:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span>
|
||||
<span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>
|
||||
<span class="n">sudo</span> <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="install-the-rust-development-system">
|
||||
<h3>Install the Rust development system<a class="headerlink" href="#install-the-rust-development-system" title="Permalink to this heading"></a></h3>
|
||||
<p>Go to <a class="reference external" href="https://rustup.rs">RustUp</a> and follow the instructions. Basically, run the following:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">curl</span> <span class="o">--</span><span class="n">proto</span> <span class="s1">'=https'</span> <span class="o">--</span><span class="n">tlsv1</span><span class="mf">.2</span> <span class="o">-</span><span class="n">sSf</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">sh</span><span class="o">.</span><span class="n">rustup</span><span class="o">.</span><span class="n">rs</span> <span class="o">|</span> <span class="n">sh</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>When Rust finishes installing, it will tell you to execute a command to place the Rust build tools into your path. You need to either execute this command or logout and back in again.</p>
|
||||
<p>Once that’s done, please run:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span><span class="o">/</span><span class="n">src</span><span class="o">/</span>
|
||||
<span class="o">./</span><span class="n">build_rust</span><span class="o">.</span><span class="n">sh</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This will take a while the first time, but it puts everything in the right place.</p>
|
||||
<p>Now, to build rust crates, run:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">rust</span>
|
||||
<span class="n">cargo</span> <span class="n">build</span> <span class="o">--</span><span class="nb">all</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="configure-libreqos">
|
||||
<h2>Configure LibreQoS<a class="headerlink" href="#configure-libreqos" title="Permalink to this heading"></a></h2>
|
||||
<section id="configure-lqos-conf">
|
||||
<h3>Configure lqos.conf<a class="headerlink" href="#configure-lqos-conf" title="Permalink to this heading"></a></h3>
|
||||
<p>Copy the lqosd daemon configuration file to <code class="docutils literal notranslate"><span class="pre">/etc</span></code>:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span><span class="o">/</span><span class="n">src</span>
|
||||
<span class="n">sudo</span> <span class="n">cp</span> <span class="n">lqos</span><span class="o">.</span><span class="n">example</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">lqos</span><span class="o">.</span><span class="n">conf</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Now edit the file to match your setup with</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">nano</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">lqos</span><span class="o">.</span><span class="n">conf</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Change <code class="docutils literal notranslate"><span class="pre">enp1s0f1</span></code> and <code class="docutils literal notranslate"><span class="pre">enp1s0f2</span></code> to match your network interfaces. It doesn’t matter which one is which. Notice, it’s paring the interfaces, so when you first enter enps0f<ins><strong>1</strong></ins> in the first line, the <code class="docutils literal notranslate"><span class="pre">redirect_to</span></code> parameter is enp1s0f<ins><strong>2</strong></ins> (replacing with your actual interface names).</p>
|
||||
<ul class="simple">
|
||||
<li><p>First Line: <code class="docutils literal notranslate"><span class="pre">name</span> <span class="pre">=</span> <span class="pre">"enp1s0f1",</span> <span class="pre">redirect_to</span> <span class="pre">=</span> <span class="pre">"enp1s0f2"</span></code></p></li>
|
||||
<li><p>Second Line: <code class="docutils literal notranslate"><span class="pre">name</span> <span class="pre">=</span> <span class="pre">"enp1s0f2",</span> <span class="pre">redirect_to</span> <span class="pre">=</span> <span class="pre">"enp1s0f1"</span></code></p></li>
|
||||
</ul>
|
||||
<p>Then, if using Bifrost/XDP set <code class="docutils literal notranslate"><span class="pre">use_xdp_bridge</span> <span class="pre">=</span> <span class="pre">true</span></code> under that same <code class="docutils literal notranslate"><span class="pre">[bridge]</span></code> section.</p>
|
||||
</section>
|
||||
<section id="configure-ispconfig-py">
|
||||
<h3>Configure ispConfig.py<a class="headerlink" href="#configure-ispconfig-py" title="Permalink to this heading"></a></h3>
|
||||
<p>Copy ispConfig.example.py to ispConfig.py and edit as needed</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span><span class="o">/</span><span class="n">src</span><span class="o">/</span>
|
||||
<span class="n">cp</span> <span class="n">ispConfig</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">py</span> <span class="n">ispConfig</span><span class="o">.</span><span class="n">py</span>
|
||||
<span class="n">nano</span> <span class="n">ispConfig</span><span class="o">.</span><span class="n">py</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><p>Set upstreamBandwidthCapacityDownloadMbps and upstreamBandwidthCapacityUploadMbps to match the bandwidth in Mbps of your network’s upstream / WAN internet connection. The same can be done for generatedPNDownloadMbps and generatedPNUploadMbps.</p></li>
|
||||
<li><p>Set interfaceA to the interface facing your core router (or bridged internal network if your network is bridged)</p></li>
|
||||
<li><p>Set interfaceB to the interface facing your edge router</p></li>
|
||||
<li><p>Set <code class="docutils literal notranslate"><span class="pre">enableActualShellCommands</span> <span class="pre">=</span> <span class="pre">True</span></code> to allow the program to actually run the commands.</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
<section id="network-json">
|
||||
<h2>Network.json<a class="headerlink" href="#network-json" title="Permalink to this heading"></a></h2>
|
||||
<p>Network.json allows ISP operators to define a Hierarchical Network Topology, or Flat Network Topology.</p>
|
||||
<p>For networks with no Parent Nodes (no strictly defined Access Points or Sites) edit the network.json to use a Flat Network Topology with
|
||||
<code class="docutils literal notranslate"><span class="pre">nano</span> <span class="pre">network.json</span></code>
|
||||
setting the following file content:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If you plan to use the built-in UISP or Splynx integrations, you do not need to create a network.json file quite yet.</p>
|
||||
<p>If you plan to use the built-in UISP integration, it will create this automatically on its first run (assuming network.json is not already present). You can then modify the network.json to more accurately reflect your topology.</p>
|
||||
<p>If you will not be using an integration, you can manually define the network.json following the template file - network.example.json</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">+-----------------------------------------------------------------------+</span>
|
||||
<span class="o">|</span> <span class="n">Entire</span> <span class="n">Network</span> <span class="o">|</span>
|
||||
<span class="o">+-----------------------+-----------------------+-----------------------+</span>
|
||||
<span class="o">|</span> <span class="n">Parent</span> <span class="n">Node</span> <span class="n">A</span> <span class="o">|</span> <span class="n">Parent</span> <span class="n">Node</span> <span class="n">B</span> <span class="o">|</span> <span class="n">Parent</span> <span class="n">Node</span> <span class="n">C</span> <span class="o">|</span>
|
||||
<span class="o">+-----------------------+-------+-------+-------+-----------------------+</span>
|
||||
<span class="o">|</span> <span class="n">Parent</span> <span class="n">Node</span> <span class="n">D</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">3</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">4</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">5</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">6</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">7</span> <span class="o">|</span> <span class="n">Parent</span> <span class="n">Node</span> <span class="n">F</span> <span class="o">|</span>
|
||||
<span class="o">+-------+-------+-------+-------+-------+-------+-------+-------+-------+</span>
|
||||
<span class="o">|</span> <span class="n">Sub</span> <span class="mi">1</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">2</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">8</span> <span class="o">|</span> <span class="n">Sub</span> <span class="mi">9</span> <span class="o">|</span>
|
||||
<span class="o">+-------+-------+-------+-----------------------+-------+-------+-------+</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<section id="manual-setup">
|
||||
<h3>Manual Setup<a class="headerlink" href="#manual-setup" title="Permalink to this heading"></a></h3>
|
||||
<p>You can use</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="n">csvToNetworkJSON</span><span class="o">.</span><span class="n">py</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to convert manualNetwork.csv to a network.json file.
|
||||
manualNetwork.csv can be copied from the template file, manualNetwork.template.csv</p>
|
||||
<p>Note: The parent node name must match that used for clients in ShapedDevices.csv</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="shapeddevices-csv">
|
||||
<h2>ShapedDevices.csv<a class="headerlink" href="#shapeddevices-csv" title="Permalink to this heading"></a></h2>
|
||||
<p>If you are using an integration, this file will be automatically generated. If you are not using an integration, you can manually edit the file.</p>
|
||||
<section id="manual-editing">
|
||||
<h3>Manual Editing<a class="headerlink" href="#manual-editing" title="Permalink to this heading"></a></h3>
|
||||
<ul class="simple">
|
||||
<li><p>Modify the ShapedDevices.csv file using your preferred spreadsheet editor (LibreOffice Calc, Excel, etc), following the template file - ShapedDevices.example.csv</p></li>
|
||||
<li><p>Circuit ID is required. Must be a string of some sort (int is fine, gets parsed as string). Must NOT include any number symbols (#).</p></li>
|
||||
<li><p>An IPv4 address or IPv6 address is required for each entry.</p></li>
|
||||
<li><p>The Access Point or Site name should be set in the Parent Node field. Parent Node can be left blank for flat networks.</p></li>
|
||||
<li><p>The ShapedDevices.csv file allows you to set minimum guaranteed, and maximum allowed bandwidth per subscriber.</p></li>
|
||||
<li><p>The minimum allowed plan rates for Circuits are 2Mbit. Bandwidth min and max should both be above that threshold.</p></li>
|
||||
<li><p>Recommendation: set the min bandwidth to something like 25/10 and max to 1.15X advertised plan rate by using bandwidthOverheadFactor = 1.15</p>
|
||||
<ul>
|
||||
<li><p>This way, when an AP hits its ceiling, users have any remaining AP capacity fairly distributed between them.</p></li>
|
||||
<li><p>Ensure a reasonable minimum bandwidth minimum for every subscriber, allowing them to utilize up to the maximum provided when AP utilization is below 100%.</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Note regarding SLAs: For customers with SLA contracts that guarantee them a minimum bandwidth, set their plan rate as the minimum bandwidth. That way when an AP approaches its ceiling, SLA customers will always get that amount.</p>
|
||||
<p><img alt="image" src="https://user-images.githubusercontent.com/22501920/200134960-28709d0f-48fe-4129-b4fd-70b204cade2c.png" /></p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="libreqos-daemons">
|
||||
<h2>LibreQoS daemons<a class="headerlink" href="#libreqos-daemons" title="Permalink to this heading"></a></h2>
|
||||
<p>lqosd</p>
|
||||
<ul class="simple">
|
||||
<li><p>Manages actual XDP code. Build with Rust.</p></li>
|
||||
</ul>
|
||||
<p>lqos_node_manager</p>
|
||||
<ul class="simple">
|
||||
<li><p>Runs the GUI available at http://a.b.c.d:9123</p></li>
|
||||
</ul>
|
||||
<p>lqos_scheduler</p>
|
||||
<ul class="simple">
|
||||
<li><p>lqos_scheduler handles statistics and performs continuous refreshes of LibreQoS’ shapers, including pulling from any enabled CRM Integrations (UISP, Splynx).</p></li>
|
||||
<li><p>On start: Run a full setup of queues</p></li>
|
||||
<li><p>Every 10 seconds: Graph bandwidth and latency stats</p></li>
|
||||
<li><p>Every 30 minutes: Update queues, pulling new configuration from CRM integration if enabled</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="run-daemons-with-systemd">
|
||||
<h2>Run daemons with systemd<a class="headerlink" href="#run-daemons-with-systemd" title="Permalink to this heading"></a></h2>
|
||||
<p>You can setup <code class="docutils literal notranslate"><span class="pre">lqosd</span></code>, <code class="docutils literal notranslate"><span class="pre">lqos_node_manager</span></code>, and <code class="docutils literal notranslate"><span class="pre">lqos_scheduler</span></code> as systemd services.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">cp</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">lqos_node_manager</span><span class="o">.</span><span class="n">service</span><span class="o">.</span><span class="n">example</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">lqos_node_manager</span><span class="o">.</span><span class="n">service</span>
|
||||
<span class="n">sudo</span> <span class="n">cp</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">lqosd</span><span class="o">.</span><span class="n">service</span><span class="o">.</span><span class="n">example</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">lqosd</span><span class="o">.</span><span class="n">service</span>
|
||||
<span class="n">sudo</span> <span class="n">cp</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">libreqos</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">lqos_scheduler</span><span class="o">.</span><span class="n">service</span><span class="o">.</span><span class="n">example</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">lqos_scheduler</span><span class="o">.</span><span class="n">service</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Finally, run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">daemon</span><span class="o">-</span><span class="n">reload</span>
|
||||
<span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">enable</span> <span class="n">lqosd</span> <span class="n">lqos_node_manager</span> <span class="n">lqos_scheduler</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can now point a web browser at <code class="docutils literal notranslate"><span class="pre">http://a.b.c.d:9123</span></code> (replace <code class="docutils literal notranslate"><span class="pre">a.b.c.d</span></code> with the management IP address of your shaping server) and enjoy a real-time view of your network.</p>
|
||||
</section>
|
||||
<section id="debugging-lqos-scheduler">
|
||||
<h2>Debugging lqos_scheduler<a class="headerlink" href="#debugging-lqos-scheduler" title="Permalink to this heading"></a></h2>
|
||||
<p>In the background, lqos_scheduler runs scheduler.py, which in turn runs LibreQoS.py</p>
|
||||
<p>One-time runs of these individual components can be very helpful for debugging and to make sure everything is correctly configured.</p>
|
||||
<p>First, stop lqos_scheduler</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">stop</span> <span class="n">lqos_scheduler</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For one-time runs of LibreQoS.py, use</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">./</span><span class="n">LibreQoS</span><span class="o">.</span><span class="n">py</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><p>To use the debug mode with more verbose output, use:</p></li>
|
||||
</ul>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">./</span><span class="n">LibreQoS</span><span class="o">.</span><span class="n">py</span> <span class="o">--</span><span class="n">debug</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To confirm that lqos_scheduler (scheduler.py) is able to work correctly, run:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">python3</span> <span class="n">scheduler</span><span class="o">.</span><span class="n">py</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Once you have any errors eliminated, restart lqos_scheduler with</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">start</span> <span class="n">lqos_scheduler</span>
|
||||
</pre></div>
|
||||
<section id="complex-install-not-reccomended">
|
||||
<h2>Complex Install (Not Reccomended)<a class="headerlink" href="#complex-install-not-reccomended" title="Permalink to this heading"></a></h2>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>Use this install if you’d like to constantly deploy from the main branch on Github. For experienced users only!</p>
|
||||
</div>
|
||||
<p><a class="reference internal" href="../TechnicalDocs/complex-install.html"><span class="std std-doc">Complex Installation</span></a></p>
|
||||
<p>You are now ready to <a class="reference internal" href="configuration.html"><span class="std std-doc">Configure</span></a> LibreQoS!</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@ -338,6 +159,7 @@ manualNetwork.csv can be copied from the template file, manualNetwork.template.c
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="quickstart-prereq.html" class="btn btn-neutral float-left" title="Server Setup - Pre-requisites" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="configuration.html" class="btn btn-neutral float-right" title="Configure LibreQoS" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Install LibreQoS 1.4" href="quickstart-libreqos-1.4.html" />
|
||||
<link rel="prev" title="Network Interface Requirements" href="../System%20Requirements/Networking.html" />
|
||||
<link rel="prev" title="Network Interface Requirements" href="../SystemRequirements/Networking.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
@ -44,28 +44,51 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart Considerations:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Server Setup - Pre-requisites</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#install-ubuntu-server">Install Ubuntu Server</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#choose-bridge-type">Choose Bridge Type</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#adding-a-regular-linux-bridge-if-not-using-bifrost-xdp-bridge">Adding a regular Linux bridge (if not using Bifrost XDP bridge)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#install-influxdb-optional-but-recommended">Install InfluxDB (Optional but Recommended)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#install-ubuntu-server">Install Ubuntu Server</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#choose-bridge-type">Choose Bridge Type</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#adding-a-regular-linux-bridge-if-not-using-bifrost-xdp-bridge">Adding a regular Linux bridge (if not using Bifrost XDP bridge)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#install-influxdb-optional-but-recommended">Install InfluxDB (Optional but Recommended)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html#updating-from-v1-3">Updating from v1.3</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html#configure-libreqos">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html#libreqos-daemons">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -113,9 +136,8 @@
|
||||
<li><p>Ensure SSH server is enabled so you can more easily log into the server later.</p></li>
|
||||
<li><p>You can use scp or sftp to access files from your LibreQoS server for easier file editing. Here’s how to access via scp or sftp using an <a class="reference external" href="https://www.addictivetips.com/ubuntu-linux-tips/sftp-server-ubuntu/">Ubuntu</a> or <a class="reference external" href="https://winscp.net/eng/index.php">Windows</a> machine.</p></li>
|
||||
</ol>
|
||||
</section>
|
||||
<section id="choose-bridge-type">
|
||||
<h2>Choose Bridge Type<a class="headerlink" href="#choose-bridge-type" title="Permalink to this heading"></a></h2>
|
||||
<h3>Choose Bridge Type<a class="headerlink" href="#choose-bridge-type" title="Permalink to this heading"></a></h3>
|
||||
<p>There are two options for the bridge to pass data through your two interfaces:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Bifrost XDP-Accelerated Bridge</p></li>
|
||||
@ -125,66 +147,66 @@
|
||||
To use the Bifrost bridge, skip the regular Linux bridge section below, and be sure to enable Bifrost/XDP in lqos.conf a few sections below.</p>
|
||||
</section>
|
||||
<section id="adding-a-regular-linux-bridge-if-not-using-bifrost-xdp-bridge">
|
||||
<h2>Adding a regular Linux bridge (if not using Bifrost XDP bridge)<a class="headerlink" href="#adding-a-regular-linux-bridge-if-not-using-bifrost-xdp-bridge" title="Permalink to this heading"></a></h2>
|
||||
<h3>Adding a regular Linux bridge (if not using Bifrost XDP bridge)<a class="headerlink" href="#adding-a-regular-linux-bridge-if-not-using-bifrost-xdp-bridge" title="Permalink to this heading"></a></h3>
|
||||
<p>From the Ubuntu VM, create a linux interface bridge - br0 - with the two shaping interfaces.
|
||||
Find your existing .yaml file in /etc/netplan/ with</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">netplan</span><span class="o">/</span>
|
||||
<span class="n">ls</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>/etc/netplan/
|
||||
ls
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Then edit the .yaml file there with</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">nano</span> <span class="n">XX</span><span class="o">-</span><span class="n">cloud</span><span class="o">-</span><span class="n">init</span><span class="o">.</span><span class="n">yaml</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>nano<span class="w"> </span>XX-cloud-init.yaml
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>with XX corresponding to the name of the existing file.</p>
|
||||
<p>With XX corresponding to the name of the existing file.</p>
|
||||
<p>Editing the .yaml file, we need to define the shaping interfaces (here, ens19 and ens20) and add the bridge with those two interfaces. Assuming your interfaces are ens18, ens19, and ens20, here is what your file might look like:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This is the network config written by 'subiquity'</span>
|
||||
<span class="n">network</span><span class="p">:</span>
|
||||
<span class="n">ethernets</span><span class="p">:</span>
|
||||
<span class="n">ens18</span><span class="p">:</span>
|
||||
<span class="n">addresses</span><span class="p">:</span>
|
||||
<span class="o">-</span> <span class="mf">10.0.0.12</span><span class="o">/</span><span class="mi">24</span>
|
||||
<span class="n">routes</span><span class="p">:</span>
|
||||
<span class="o">-</span> <span class="n">to</span><span class="p">:</span> <span class="n">default</span>
|
||||
<span class="n">via</span><span class="p">:</span> <span class="mf">10.0.0.1</span>
|
||||
<span class="n">nameservers</span><span class="p">:</span>
|
||||
<span class="n">addresses</span><span class="p">:</span>
|
||||
<span class="o">-</span> <span class="mf">1.1.1.1</span>
|
||||
<span class="o">-</span> <span class="mf">8.8.8.8</span>
|
||||
<span class="n">search</span><span class="p">:</span> <span class="p">[]</span>
|
||||
<span class="n">ens19</span><span class="p">:</span>
|
||||
<span class="n">dhcp4</span><span class="p">:</span> <span class="n">no</span>
|
||||
<span class="n">ens20</span><span class="p">:</span>
|
||||
<span class="n">dhcp4</span><span class="p">:</span> <span class="n">no</span>
|
||||
<span class="n">version</span><span class="p">:</span> <span class="mi">2</span>
|
||||
<span class="n">bridges</span><span class="p">:</span>
|
||||
<span class="n">br0</span><span class="p">:</span>
|
||||
<span class="n">interfaces</span><span class="p">:</span>
|
||||
<span class="o">-</span> <span class="n">ens19</span>
|
||||
<span class="o">-</span> <span class="n">ens20</span>
|
||||
<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="c1"># This is the network config written by 'subiquity'</span>
|
||||
<span class="nt">network</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">ethernets</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">ens18</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">addresses</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10.0.0.12/24</span>
|
||||
<span class="w"> </span><span class="nt">routes</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">to</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">default</span>
|
||||
<span class="w"> </span><span class="nt">via</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10.0.0.1</span>
|
||||
<span class="w"> </span><span class="nt">nameservers</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">addresses</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1.1.1.1</span>
|
||||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">8.8.8.8</span>
|
||||
<span class="w"> </span><span class="nt">search</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[]</span>
|
||||
<span class="w"> </span><span class="nt">ens19</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">dhcp4</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">no</span>
|
||||
<span class="w"> </span><span class="nt">ens20</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">dhcp4</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">no</span>
|
||||
<span class="w"> </span><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2</span>
|
||||
<span class="w"> </span><span class="nt">bridges</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">br0</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="nt">interfaces</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ens19</span>
|
||||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ens20</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Make sure to replace 10.0.0.12/24 with your LibreQoS VM’s address and subnet, and to replace the default gateway 10.0.0.1 with whatever your default gateway is.</p>
|
||||
<p>Then run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">netplan</span> <span class="n">apply</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>netplan<span class="w"> </span>apply
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="install-influxdb-optional-but-recommended">
|
||||
<h2>Install InfluxDB (Optional but Recommended)<a class="headerlink" href="#install-influxdb-optional-but-recommended" title="Permalink to this heading"></a></h2>
|
||||
<h3>Install InfluxDB (Optional but Recommended)<a class="headerlink" href="#install-influxdb-optional-but-recommended" title="Permalink to this heading"></a></h3>
|
||||
<p>InfluxDB allows you to track long-term stats beyond what lqos_node_manager can so far.</p>
|
||||
<p>To install InfluxDB 2.x., follow the steps at <a class="reference external" href="https://portal.influxdata.com/downloads/">https://portal.influxdata.com/downloads/</a>.</p>
|
||||
<p>For high throughput networks (5+ Gbps) you will likely want to install InfluxDB to a separate machine or VM from that of the LibreQoS server to avoid CPU load.</p>
|
||||
<p>Restart your system that is running InfluxDB</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">reboot</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>reboot
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Check to ensure InfluxDB is running properly. This command should show “Active: active” with green dot.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">influxdb</span> <span class="n">status</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>service<span class="w"> </span>influxdb<span class="w"> </span>status
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Check that Web UI is running:<br></p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">SERVER_IP_ADDRESS</span><span class="p">:</span><span class="mi">8086</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>http://SERVER_IP_ADDRESS:8086
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Create Bucket</p>
|
||||
@ -193,12 +215,14 @@ Find your existing .yaml file in /etc/netplan/ with</p>
|
||||
</ul>
|
||||
<p>Call the bucket <code class="docutils literal notranslate"><span class="pre">libreqos</span></code> (all lowercase).<br>
|
||||
Have it store as many days of data as you prefer. 7 days is standard.<>
|
||||
Import Dashboard</p>
|
||||
<ul class="simple">
|
||||
<li><p>Boards > Create Dashboard > Import Dashboard
|
||||
Then upload the file <a class="reference external" href="https://github.com/rchac/LibreQoS/blob/main/src/influxDBdashboardTemplate.json">influxDBdashboardTemplate.json</a> to InfluxDB.</p></li>
|
||||
</ul>
|
||||
Import Dashboard <code class="docutils literal notranslate"><span class="pre">Boards</span> <span class="pre">></span> <span class="pre">Create</span> <span class="pre">Dashboard</span> <span class="pre">></span> <span class="pre">Import</span> <span class="pre">Dashboard</span></code>
|
||||
Then upload the file <a class="reference external" href="https://github.com/rchac/LibreQoS/blob/main/src/influxDBdashboardTemplate.json">influxDBdashboardTemplate.json</a> to InfluxDB.</p>
|
||||
<p><a class="reference external" href="https://docs.influxdata.com/influxdb/cloud/security/tokens/create-token/">Generate an InfluxDB Token</a>. It will be added to ispConfig.py in the following steps.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>You may want to install a reverse proxy in front of the web interfaces for influx and lqos. Setting these up is outside the scope of this document, but some examples are <a class="reference external" href="https://caddyserver.com/">Caddy</a>, and Nginx <a class="reference external" href="https://nginxproxymanager.com/">Proxy Manager</a></p>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@ -206,7 +230,7 @@ Then upload the file <a class="reference external" href="https://github.com/rcha
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../System%20Requirements/Networking.html" class="btn btn-neutral float-left" title="Network Interface Requirements" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="../SystemRequirements/Networking.html" class="btn btn-neutral float-left" title="Network Interface Requirements" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="quickstart-libreqos-1.4.html" class="btn btn-neutral float-right" title="Install LibreQoS 1.4" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
|
206
_build/html/docs/Quickstart/services-and-run.html
Normal file
206
_build/html/docs/Quickstart/services-and-run.html
Normal file
@ -0,0 +1,206 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>LibreQoS daemons — LibreQoE documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<script src="../../_static/sphinx_highlight.js"></script>
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Share your before and after" href="share.html" />
|
||||
<link rel="prev" title="Configure LibreQoS" href="configuration.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="../../index.html" class="icon icon-home">
|
||||
LibreQoE
|
||||
</a>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">LibreQoS daemons</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#run-daemons-with-systemd">Run daemons with systemd</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#debugging-lqos-scheduler">Debugging lqos_scheduler</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../../index.html">LibreQoE</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||
<li class="breadcrumb-item active">LibreQoS daemons</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
<a href="../../_sources/docs/Quickstart/services-and-run.md.txt" rel="nofollow"> View page source</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="libreqos-daemons">
|
||||
<h1>LibreQoS daemons<a class="headerlink" href="#libreqos-daemons" title="Permalink to this heading"></a></h1>
|
||||
<p>lqosd</p>
|
||||
<ul class="simple">
|
||||
<li><p>Manages actual XDP code. Build with Rust.</p></li>
|
||||
</ul>
|
||||
<p>lqos_node_manager</p>
|
||||
<ul class="simple">
|
||||
<li><p>Runs the GUI available at http://a.b.c.d:9123</p></li>
|
||||
</ul>
|
||||
<p>lqos_scheduler</p>
|
||||
<ul class="simple">
|
||||
<li><p>lqos_scheduler handles statistics and performs continuous refreshes of LibreQoS’ shapers, including pulling from any enabled CRM Integrations (UISP, Splynx).</p></li>
|
||||
<li><p>On start: Run a full setup of queues</p></li>
|
||||
<li><p>Every 10 seconds: Graph bandwidth and latency stats</p></li>
|
||||
<li><p>Every 30 minutes: Update queues, pulling new configuration from CRM integration if enabled</p></li>
|
||||
</ul>
|
||||
<section id="run-daemons-with-systemd">
|
||||
<h2>Run daemons with systemd<a class="headerlink" href="#run-daemons-with-systemd" title="Permalink to this heading"></a></h2>
|
||||
<p>You can setup <code class="docutils literal notranslate"><span class="pre">lqosd</span></code>, <code class="docutils literal notranslate"><span class="pre">lqos_node_manager</span></code>, and <code class="docutils literal notranslate"><span class="pre">lqos_scheduler</span></code> as systemd services.</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>cp<span class="w"> </span>/opt/libreqos/src/bin/lqos_node_manager.service.example<span class="w"> </span>/etc/systemd/system/lqos_node_manager.service
|
||||
sudo<span class="w"> </span>cp<span class="w"> </span>/opt/libreqos/src/bin/lqosd.service.example<span class="w"> </span>/etc/systemd/system/lqosd.service
|
||||
sudo<span class="w"> </span>cp<span class="w"> </span>/opt/libreqos/src/bin/lqos_scheduler.service.example<span class="w"> </span>/etc/systemd/system/lqos_scheduler.service
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Finally, run</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>systemctl<span class="w"> </span>daemon-reload
|
||||
sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>lqosd<span class="w"> </span>lqos_node_manager<span class="w"> </span>lqos_scheduler
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can now point a web browser at <code class="docutils literal notranslate"><span class="pre">http://a.b.c.d:9123</span></code> (replace <code class="docutils literal notranslate"><span class="pre">a.b.c.d</span></code> with the management IP address of your shaping server) and enjoy a real-time view of your network.</p>
|
||||
</section>
|
||||
<section id="debugging-lqos-scheduler">
|
||||
<h2>Debugging lqos_scheduler<a class="headerlink" href="#debugging-lqos-scheduler" title="Permalink to this heading"></a></h2>
|
||||
<p>In the background, lqos_scheduler runs scheduler.py, which in turn runs LibreQoS.py</p>
|
||||
<p>One-time runs of these individual components can be very helpful for debugging and to make sure everything is correctly configured.</p>
|
||||
<p>First, stop lqos_scheduler</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>systemctl<span class="w"> </span>stop<span class="w"> </span>lqos_scheduler
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For one-time runs of LibreQoS.py, use</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>./LibreQoS.py
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><p>To use the debug mode with more verbose output, use:</p></li>
|
||||
</ul>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>./LibreQoS.py<span class="w"> </span>--debug
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To confirm that lqos_scheduler (scheduler.py) is able to work correctly, run:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>python3<span class="w"> </span>scheduler.py
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Once you have any errors eliminated, restart lqos_scheduler with</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>systemctl<span class="w"> </span>start<span class="w"> </span>lqos_scheduler
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="configuration.html" class="btn btn-neutral float-left" title="Configure LibreQoS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="share.html" class="btn btn-neutral float-right" title="Share your before and after" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>© Copyright 2023, LibreQoE.</p>
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
@ -51,10 +52,14 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Share your before and after</a><ul>
|
||||
@ -71,7 +76,14 @@
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Integrations/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
|
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
|
193
_build/html/docs/TechnicalDocs/complex-install.html
Normal file
193
_build/html/docs/TechnicalDocs/complex-install.html
Normal file
@ -0,0 +1,193 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Complex install (Not Recommended) — LibreQoE documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<script src="../../_static/sphinx_highlight.js"></script>
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Troubleshooting" href="troubleshooting.html" />
|
||||
<link rel="prev" title="Updating 1.4 To Latest Version" href="../Updates/update.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="../../index.html" class="icon icon-home">
|
||||
LibreQoE
|
||||
</a>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Complex install (Not Recommended)</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#clone-the-repo">Clone the repo</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#install-dependencies-from-apt-and-pip">Install Dependencies from apt and pip</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#install-the-rust-development-system">Install the Rust development system</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../../index.html">LibreQoE</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||
<li class="breadcrumb-item active">Complex install (Not Recommended)</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
<a href="../../_sources/docs/TechnicalDocs/complex-install.md.txt" rel="nofollow"> View page source</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="complex-install-not-recommended">
|
||||
<h1>Complex install (Not Recommended)<a class="headerlink" href="#complex-install-not-recommended" title="Permalink to this heading"></a></h1>
|
||||
<section id="clone-the-repo">
|
||||
<h2>Clone the repo<a class="headerlink" href="#clone-the-repo" title="Permalink to this heading"></a></h2>
|
||||
<p>The recommended install location is <code class="docutils literal notranslate"><span class="pre">/opt/libreqos</span></code>
|
||||
Go to the install location, and clone the repo:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>/opt/
|
||||
git<span class="w"> </span>clone<span class="w"> </span>https://github.com/LibreQoE/LibreQoS.git<span class="w"> </span>libreqos
|
||||
sudo<span class="w"> </span>chown<span class="w"> </span>-R<span class="w"> </span>YOUR_USER<span class="w"> </span>/opt/libreqos
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>By specifying <code class="docutils literal notranslate"><span class="pre">libreqos</span></code> at the end, git will ensure the folder name is lowercase.</p>
|
||||
</section>
|
||||
<section id="install-dependencies-from-apt-and-pip">
|
||||
<h2>Install Dependencies from apt and pip<a class="headerlink" href="#install-dependencies-from-apt-and-pip" title="Permalink to this heading"></a></h2>
|
||||
<p>You need to have a few packages from <code class="docutils literal notranslate"><span class="pre">apt</span></code> installed:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>python3-pip<span class="w"> </span>clang<span class="w"> </span>gcc<span class="w"> </span>gcc-multilib<span class="w"> </span>llvm<span class="w"> </span>libelf-dev<span class="w"> </span>git<span class="w"> </span>nano<span class="w"> </span>graphviz<span class="w"> </span>curl<span class="w"> </span>screen<span class="w"> </span>llvm<span class="w"> </span>pkg-config<span class="w"> </span>linux-tools-common<span class="w"> </span>linux-tools-<span class="sb">`</span>uname<span class="w"> </span>-r<span class="sb">`</span><span class="w"> </span>libbpf-dev
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Then you need to install some Python dependencies:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>/opt/libreqos
|
||||
python3<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
|
||||
sudo<span class="w"> </span>python3<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="install-the-rust-development-system">
|
||||
<h2>Install the Rust development system<a class="headerlink" href="#install-the-rust-development-system" title="Permalink to this heading"></a></h2>
|
||||
<p>Go to <a class="reference external" href="https://rustup.rs">RustUp</a> and follow the instructions. Basically, run the following:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>curl<span class="w"> </span>--proto<span class="w"> </span><span class="s1">'=https'</span><span class="w"> </span>--tlsv1.2<span class="w"> </span>-sSf<span class="w"> </span>https://sh.rustup.rs<span class="w"> </span><span class="p">|</span><span class="w"> </span>sh
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>When Rust finishes installing, it will tell you to execute a command to place the Rust build tools into your path. You need to either execute this command or logout and back in again.</p>
|
||||
<p>Once that’s done, please run:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>/opt/libreqos/src/
|
||||
./build_rust.sh
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This will take a while the first time, but it puts everything in the right place.</p>
|
||||
<p>Now, to build rust crates, run:</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>rust
|
||||
cargo<span class="w"> </span>build<span class="w"> </span>--all
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../Updates/update.html" class="btn btn-neutral float-left" title="Updating 1.4 To Latest Version" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="troubleshooting.html" class="btn btn-neutral float-right" title="Troubleshooting" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>© Copyright 2023, LibreQoE.</p>
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
|
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
@ -113,7 +114,7 @@
|
||||
<h2>UISP Integration<a class="headerlink" href="#uisp-integration" title="Permalink to this heading"></a></h2>
|
||||
<p>First, set the relevant parameters for UISP (uispAuthToken, UISPbaseURL, etc.) in ispConfig.py.</p>
|
||||
<p>To test the UISP Integration, use</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="n">integrationUISP</span><span class="o">.</span><span class="n">py</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>python3<span class="w"> </span>integrationUISP.py
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>On the first successful run, it will create a network.json and ShapedDevices.csv file.
|
||||
@ -126,7 +127,7 @@ You have the option to run integrationUISP.py automatically on boot and every 30
|
||||
<h2>Splynx Integration<a class="headerlink" href="#splynx-integration" title="Permalink to this heading"></a></h2>
|
||||
<p>First, set the relevant parameters for Splynx (splynx_api_key, splynx_api_secret, etc.) in ispConfig.py.</p>
|
||||
<p>To test the Splynx Integration, use</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="n">integrationSplynx</span><span class="o">.</span><span class="n">py</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>python3<span class="w"> </span>integrationSplynx.py
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>On the first successful run, it will create a ShapedDevices.csv file.
|
||||
|
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Integrations" href="integrations.html" />
|
||||
<link rel="prev" title="Updating 1.4 To Latest Version" href="../Updates/update.html" />
|
||||
<link rel="prev" title="Complex install (Not Recommended)" href="complex-install.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
@ -44,6 +44,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
@ -61,6 +62,8 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
@ -69,6 +72,7 @@
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Troubleshooting</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#common-issues">Common Issues</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#libreqos-is-running-but-traffic-not-shaping">LibreQoS Is Running, But Traffic Not Shaping</a></li>
|
||||
@ -116,14 +120,18 @@
|
||||
<h2>Common Issues<a class="headerlink" href="#common-issues" title="Permalink to this heading"></a></h2>
|
||||
<section id="libreqos-is-running-but-traffic-not-shaping">
|
||||
<h3>LibreQoS Is Running, But Traffic Not Shaping<a class="headerlink" href="#libreqos-is-running-but-traffic-not-shaping" title="Permalink to this heading"></a></h3>
|
||||
<p>In ispConfig.py, make sure the edge and core interfaces correspond to correctly to the edge and core. Try swapping the interfaces to see if shaping starts to work.</p>
|
||||
<p>Make sure your services are running properly</p>
|
||||
<ul class="simple">
|
||||
<li><p>In ispConfig.py, make sure the edge and core interfaces correspond to correctly to the edge and core. Try swapping the interfaces to see if shaping starts to work.</p></li>
|
||||
<li><p>Make sure your services are running properly <code class="docutils literal notranslate"><span class="pre">lqos.service</span></code>, <code class="docutils literal notranslate"><span class="pre">lqos_node_manager</span></code>, <code class="docutils literal notranslate"><span class="pre">lqos_scheduler</span></code>. Node manager and scheduler are dependent on the <code class="docutils literal notranslate"><span class="pre">lqos.service</span></code> being in a healthy, running state.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">lqos.service</span></code></p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">lqos_node_manager</span></code></p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">lqos_scheduler</span></code></p></li>
|
||||
</ul>
|
||||
<p>Node manager and scheduler are dependent on the <code class="docutils literal notranslate"><span class="pre">lqos.service</span></code> being in a healthy, running state.</p>
|
||||
</section>
|
||||
<section id="rtnetlink-answers-invalid-argument">
|
||||
<h3>RTNETLINK answers: Invalid argument<a class="headerlink" href="#rtnetlink-answers-invalid-argument" title="Permalink to this heading"></a></h3>
|
||||
<p>This tends to show up when the MQ qdisc cannot be added correctly to the NIC interface. This would suggest the NIC has insufficient RX/TX queues. Please make sure you are using the <a class="reference internal" href="#network-interface-card"><span class="xref myst">recommended NICs</span></a>.</p>
|
||||
<p>This tends to show up when the MQ qdisc cannot be added correctly to the NIC interface. This would suggest the NIC has insufficient RX/TX queues. Please make sure you are using the <a class="reference internal" href="../SystemRequirements/Networking.html"><span class="std std-doc">recommended NICs</span></a>.</p>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@ -132,7 +140,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../Updates/update.html" class="btn btn-neutral float-left" title="Updating 1.4 To Latest Version" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="complex-install.html" class="btn btn-neutral float-left" title="Complex install (Not Recommended)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="integrations.html" class="btn btn-neutral float-right" title="Integrations" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
|
@ -17,8 +17,8 @@
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Integrations" href="../Integrations/integrations.html" />
|
||||
<link rel="prev" title="Install LibreQoS 1.4" href="../Quickstart/quickstart-libreqos-1.4.html" />
|
||||
<link rel="next" title="Complex install (Not Recommended)" href="../TechnicalDocs/complex-install.html" />
|
||||
<link rel="prev" title="Share your before and after" href="../Quickstart/share.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
@ -44,27 +44,47 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../System%20Requirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Updating 1.4 To Latest Version</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Updating 1.4 To Latest Version</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#if-you-installed-with-git">If you installed with Git</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#if-you-installed-through-the-apt-repository">If you installed through the APT repository</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Integrations/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -93,27 +113,37 @@
|
||||
|
||||
<section id="updating-1-4-to-latest-version">
|
||||
<h1>Updating 1.4 To Latest Version<a class="headerlink" href="#updating-1-4-to-latest-version" title="Permalink to this heading"></a></h1>
|
||||
<p>Note: If you use the XDP bridge, traffic will stop passing through the bridge during the update (XDP bridge is only operating while lqosd runs).</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>If you use the XDP bridge, traffic will stop passing through the bridge during the update (XDP bridge is only operating while lqosd runs).</p>
|
||||
</div>
|
||||
<section id="if-you-installed-with-git">
|
||||
<h2>If you installed with Git<a class="headerlink" href="#if-you-installed-with-git" title="Permalink to this heading"></a></h2>
|
||||
<ol class="arabic simple">
|
||||
<li><p>Change to your <code class="docutils literal notranslate"><span class="pre">LibreQoS</span></code> directory (e.g. <code class="docutils literal notranslate"><span class="pre">cd</span> <span class="pre">/opt/LibreQoS</span></code>)</p></li>
|
||||
<li><p>Update from Git: <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">pull</span></code></p></li>
|
||||
<li><p>Recompile: <code class="docutils literal notranslate"><span class="pre">./build-rust.sh</span></code></p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">rust/remove_pinned_maps.sh</span></code></p></li>
|
||||
<li></li>
|
||||
</ol>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">restart</span> <span class="n">lqosd</span>
|
||||
<span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">restart</span> <span class="n">lqos_node_manager</span>
|
||||
<span class="n">sudo</span> <span class="n">systemctl</span> <span class="n">restart</span> <span class="n">lqos_scheduler</span>
|
||||
<p>Run the following commands to reload the LibreQoS services.</p>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>systemctl<span class="w"> </span>restart<span class="w"> </span>lqosd
|
||||
sudo<span class="w"> </span>systemctl<span class="w"> </span>restart<span class="w"> </span>lqos_node_manager
|
||||
sudo<span class="w"> </span>systemctl<span class="w"> </span>restart<span class="w"> </span>lqos_scheduler
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="if-you-installed-through-the-apt-repository">
|
||||
<h2>If you installed through the APT repository<a class="headerlink" href="#if-you-installed-through-the-apt-repository" title="Permalink to this heading"></a></h2>
|
||||
<p>All you should have to do in this case is run <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">apt</span> <span class="pre">update</span> <span class="pre">&&</span> <span class="pre">sudo</span> <span class="pre">apt</span> <span class="pre">upgrade</span></code> and LibreQoS should install the new package.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../Quickstart/quickstart-libreqos-1.4.html" class="btn btn-neutral float-left" title="Install LibreQoS 1.4" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="../Integrations/integrations.html" class="btn btn-neutral float-right" title="Integrations" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<a href="../Quickstart/share.html" class="btn btn-neutral float-left" title="Share your before and after" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="../TechnicalDocs/complex-install.html" class="btn btn-neutral float-right" title="Complex install (Not Recommended)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
@ -59,6 +59,8 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
@ -67,6 +69,7 @@
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
|
@ -61,6 +61,8 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
@ -69,6 +71,7 @@
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
@ -134,18 +137,25 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="toctree-wrapper compound">
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Updates/update.html">Updating 1.4 To Latest Version</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/Updates/update.html#if-you-installed-with-git">If you installed with Git</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/Updates/update.html#if-you-installed-through-the-apt-repository">If you installed through the APT repository</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="toctree-wrapper compound">
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
|
Binary file not shown.
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -62,6 +62,8 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/configuration.html">Configure LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/services-and-run.html">LibreQoS daemons</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
@ -70,6 +72,7 @@
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/complex-install.html">Complex install (Not Recommended)</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
|
File diff suppressed because one or more lines are too long
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -38,9 +38,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Readme:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart.html">LibreQoE Quickstart Guide</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html">Sponsors</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#support-libreqos">Support LibreQoS</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#documentation">Documentation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#matrix-chat">Matrix Chat</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../README.html#features">Features</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Read me first!</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/networkdesignassumptions.html">Network Design Assumptions</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Change Notes:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/ChangeNotes/v1.4.html">LibreQoS v1.3.1 to v1.4 Change Summary</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Quickstart:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Compute.html">System Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/SystemRequirements/Networking.html">Network Interface Requirements</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-prereq.html">Server Setup - Pre-requisites</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/quickstart-libreqos-1.4.html">Install LibreQoS 1.4</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Quickstart/share.html">Share your before and after</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Updates:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Updates/update.html">Updating 1.4 To Latest Version</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Technical Documentation:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/integrations.html">Integrations</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/extras.html">Extras</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/TechnicalDocs/performance-tuning.html">Performance Tuning</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Legacy:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../docs/Legacy/v1.3.1.html">LibreQoS v1.3.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
17
conf.py
17
conf.py
@ -6,22 +6,21 @@
|
||||
# -- Project information -----------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||
|
||||
project = 'LibreQoE'
|
||||
copyright = '2023, LibreQoE'
|
||||
author = 'Zach Biles'
|
||||
project = "LibreQoE"
|
||||
copyright = "2023, LibreQoE"
|
||||
author = "Zach Biles"
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||
|
||||
extensions = ['myst_parser']
|
||||
|
||||
templates_path = ['_templates']
|
||||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||
extensions = ["myst_parser"]
|
||||
|
||||
templates_path = ["_templates"]
|
||||
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
||||
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
html_static_path = ['_static']
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
html_static_path = ["_static"]
|
||||
|
154
docs/.$stp-diagram.drawio.bkp
Normal file
154
docs/.$stp-diagram.drawio.bkp
Normal file
File diff suppressed because one or more lines are too long
103
docs/Quickstart/configuration.md
Normal file
103
docs/Quickstart/configuration.md
Normal file
@ -0,0 +1,103 @@
|
||||
# Configure LibreQoS
|
||||
|
||||
## Configure lqos.conf
|
||||
|
||||
Copy the lqosd daemon configuration file to `/etc`:
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos/src
|
||||
sudo cp lqos.example /etc/lqos.conf
|
||||
```
|
||||
|
||||
Now edit the file to match your setup with
|
||||
|
||||
```shell
|
||||
sudo nano /etc/lqos.conf
|
||||
```
|
||||
|
||||
Change `enp1s0f1` and `enp1s0f2` to match your network interfaces. It doesn't matter which one is which. Notice, it's paring the interfaces, so when you first enter enps0f<ins>**1**</ins> in the first line, the `redirect_to` parameter is enp1s0f<ins>**2**</ins> (replacing with your actual interface names).
|
||||
|
||||
- First Line: `name = "enp1s0f1", redirect_to = "enp1s0f2"`
|
||||
- Second Line: `name = "enp1s0f2", redirect_to = "enp1s0f1"`
|
||||
|
||||
Then, if using Bifrost/XDP set `use_xdp_bridge = true` under that same `[bridge]` section.
|
||||
|
||||
## Configure ispConfig.py
|
||||
|
||||
Copy ispConfig.example.py to ispConfig.py and edit as needed
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos/src/
|
||||
cp ispConfig.example.py ispConfig.py
|
||||
nano ispConfig.py
|
||||
```
|
||||
|
||||
- Set upstreamBandwidthCapacityDownloadMbps and upstreamBandwidthCapacityUploadMbps to match the bandwidth in Mbps of your network's upstream / WAN internet connection. The same can be done for generatedPNDownloadMbps and generatedPNUploadMbps.
|
||||
- Set interfaceA to the interface facing your core router (or bridged internal network if your network is bridged)
|
||||
- Set interfaceB to the interface facing your edge router
|
||||
- Set ```enableActualShellCommands = True``` to allow the program to actually run the commands.
|
||||
|
||||
## Network.json
|
||||
|
||||
Network.json allows ISP operators to define a Hierarchical Network Topology, or Flat Network Topology.
|
||||
|
||||
For networks with no Parent Nodes (no strictly defined Access Points or Sites) edit the network.json to use a Flat Network Topology with
|
||||
```nano network.json```
|
||||
setting the following file content:
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
If you plan to use the built-in UISP or Splynx integrations, you do not need to create a network.json file quite yet.
|
||||
|
||||
If you plan to use the built-in UISP integration, it will create this automatically on its first run (assuming network.json is not already present). You can then modify the network.json to more accurately reflect your topology.
|
||||
|
||||
If you will not be using an integration, you can manually define the network.json following the template file - network.example.json
|
||||
|
||||
```text
|
||||
+-----------------------------------------------------------------------+
|
||||
| Entire Network |
|
||||
+-----------------------+-----------------------+-----------------------+
|
||||
| Parent Node A | Parent Node B | Parent Node C |
|
||||
+-----------------------+-------+-------+-------+-----------------------+
|
||||
| Parent Node D | Sub 3 | Sub 4 | Sub 5 | Sub 6 | Sub 7 | Parent Node F |
|
||||
+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
| Sub 1 | Sub 2 | | | | Sub 8 | Sub 9 |
|
||||
+-------+-------+-------+-----------------------+-------+-------+-------+
|
||||
```
|
||||
|
||||
## Manual Setup
|
||||
|
||||
You can use
|
||||
|
||||
```shell
|
||||
python3 csvToNetworkJSON.py
|
||||
```
|
||||
|
||||
to convert manualNetwork.csv to a network.json file.
|
||||
manualNetwork.csv can be copied from the template file, manualNetwork.template.csv
|
||||
|
||||
Note: The parent node name must match that used for clients in ShapedDevices.csv
|
||||
|
||||
## ShapedDevices.csv
|
||||
|
||||
If you are using an integration, this file will be automatically generated. If you are not using an integration, you can manually edit the file.
|
||||
|
||||
### Manual Editing
|
||||
|
||||
- Modify the ShapedDevices.csv file using your preferred spreadsheet editor (LibreOffice Calc, Excel, etc), following the template file - ShapedDevices.example.csv
|
||||
- Circuit ID is required. Must be a string of some sort (int is fine, gets parsed as string). Must NOT include any number symbols (#).
|
||||
- An IPv4 address or IPv6 address is required for each entry.
|
||||
- The Access Point or Site name should be set in the Parent Node field. Parent Node can be left blank for flat networks.
|
||||
- The ShapedDevices.csv file allows you to set minimum guaranteed, and maximum allowed bandwidth per subscriber.
|
||||
- The minimum allowed plan rates for Circuits are 2Mbit. Bandwidth min and max should both be above that threshold.
|
||||
- Recommendation: set the min bandwidth to something like 25/10 and max to 1.15X advertised plan rate by using bandwidthOverheadFactor = 1.15
|
||||
- This way, when an AP hits its ceiling, users have any remaining AP capacity fairly distributed between them.
|
||||
- Ensure a reasonable minimum bandwidth minimum for every subscriber, allowing them to utilize up to the maximum provided when AP utilization is below 100%.
|
||||
|
||||
Note regarding SLAs: For customers with SLA contracts that guarantee them a minimum bandwidth, set their plan rate as the minimum bandwidth. That way when an AP approaches its ceiling, SLA customers will always get that amount.
|
||||
|
||||

|
||||
|
||||
Once your configuration is complete. You're ready to run the application and start the [Deamons](./services-and-run.md)
|
@ -1,20 +1,42 @@
|
||||
## Network Design Assumptions
|
||||
Officially supported configuration:
|
||||
# Network Design Assumptions
|
||||
|
||||
## Officially supported configuration
|
||||
|
||||
- LibreQoS placed inline in network, usually between an edge router (NAT, firewall) and core router (distribution to sites across network).
|
||||
* If you use NAT/CG-NAT, place LibreQoS inline south of where NAT is applied, as LibreQoS needs to shape internal addresses (100.64.0.0/12) not public post-NAT IPs.
|
||||
- If you use NAT/CG-NAT, place LibreQoS inline south of where NAT is applied, as LibreQoS needs to shape internal addresses (100.64.0.0/12) not public post-NAT IPs.
|
||||
- Edge and Core routers should have 1500 MTU on links between them
|
||||
- If you use MPLS, you would terminate MPLS traffic at the core router. LibreQoS cannot decapsulate MPLS on its own.
|
||||
- OSPF primary link (low cost) through the server running LibreQoS
|
||||
- OSPF backup link (high cost, maybe 200 for example)
|
||||
|
||||

|
||||
|
||||
Is it possible to use LibreQoS in-line without a core router, but that setup requires depending on STP instead of OSPF, which can cause issues. Such configurations are not officially supported.
|
||||

|
||||
|
||||
### Network Interface Card
|
||||
|
||||
```{note}
|
||||
You must have one of these:
|
||||
*single NIC with two interfaces,
|
||||
*two NICs with single interface,
|
||||
*2x VLANs interface (using one or two NICs).
|
||||
- single NIC with two interfaces,
|
||||
- two NICs with single interface,
|
||||
- 2x VLANs interface (using one or two NICs).
|
||||
```
|
||||
|
||||
LibreQoS requires NICs to have 2 or more RX/TX queues and XDP support. While many cards theoretically meet these requirements, less commonly used cards tend to have unreported driver bugs which impede XDP functionality and make them unusable for our purposes. At this time we recommend the Intel x520, Intel x710, and Nvidia (ConnectX-5 or newer) NICs. We cannot guarantee compatibility with other cards.
|
||||
|
||||
## Alternate configuration (Not officially supported)
|
||||
|
||||
This alternate configuration uses Spanning Tree Protocol (STP) to modify the data path in the event the LibreQoS device is offline for maintenance or another problem.
|
||||
|
||||
```{note}
|
||||
Most of the same considerations apply to the alternate configuration as they do to the officially supported configuation
|
||||
```
|
||||
|
||||
- LibreQoS placed inline in network, usually between an edge router (NAT, firewall) and core router (distribution to sites across network).
|
||||
- If you use NAT/CG-NAT, place LibreQoS inline south of where NAT is applied, as LibreQoS needs to shape internal addresses (100.64.0.0/12) not public post-NAT IPs.
|
||||
- Edge router and Core switch should have 1500 MTU on links between them
|
||||
- If you use MPLS, you would terminate MPLS traffic somewhere south of the core/distribution switch. LibreQoS cannot decapsulate MPLS on its own.
|
||||
- Spanning Tree primary link (low cost) through the server running LibreQoS
|
||||
- Spanning Tree backup link (high cost, maybe 80 for example)
|
||||
|
||||
Keep in mind that if you use different bandwidth links, for example, 10 Gbps through LibreQoS, and 1 Gbps between core switch and edge router, you may need to be more intentional with your STP costs.
|
||||
|
||||

|
||||
|
@ -1,212 +1,37 @@
|
||||
## Install LibreQoS 1.4
|
||||
# Install LibreQoS 1.4
|
||||
|
||||
### Updating from v1.3
|
||||
#### Remove offloadOff.service
|
||||
```
|
||||
## Updating from v1.3
|
||||
|
||||
### Remove offloadOff.service
|
||||
|
||||
```shell
|
||||
sudo systemctl disable offloadOff.service
|
||||
sudo rm /usr/local/sbin/offloadOff.sh /etc/systemd/system/offloadOff.service
|
||||
```
|
||||
#### Remove cron tasks from v1.3
|
||||
|
||||
### Remove cron tasks from v1.3
|
||||
|
||||
Run ```sudo crontab -e``` and remove any entries pertaining to LibreQoS from v1.3.
|
||||
|
||||
### Simple install via .Deb package (Recommended)
|
||||
## Simple install via .Deb package (Recommended)
|
||||
|
||||
Use the deb package from the [latest v1.4 release](https://github.com/LibreQoE/LibreQoS/releases/).
|
||||
|
||||
### Complex install (Not Recommended)
|
||||
#### Clone the repo
|
||||
|
||||
The recommended install location is `/opt/libreqos`
|
||||
Go to the install location, and clone the repo:
|
||||
|
||||
```
|
||||
cd /opt/
|
||||
git clone https://github.com/LibreQoE/LibreQoS.git libreqos
|
||||
sudo chown -R YOUR_USER /opt/libreqos
|
||||
```
|
||||
By specifying `libreqos` at the end, git will ensure the folder name is lowercase.
|
||||
|
||||
#### Install Dependencies from apt and pip
|
||||
|
||||
You need to have a few packages from `apt` installed:
|
||||
|
||||
```
|
||||
sudo apt-get install -y python3-pip clang gcc gcc-multilib llvm libelf-dev git nano graphviz curl screen llvm pkg-config linux-tools-common linux-tools-`uname -r` libbpf-dev
|
||||
```shell
|
||||
sudo echo "deb http://stats.libreqos.io/ubuntu jammy main" > /etc/apt/sources.list.d/libreqos.list
|
||||
wget -O - -q http://stats.libreqos.io/repo.asc | apt-key add -
|
||||
apt-get update
|
||||
apt-get install libreqos
|
||||
```
|
||||
|
||||
Then you need to install some Python dependencies:
|
||||
You will be asked some questions about your configuration, and the management daemon and webserver will automatically start. Go to http://<your_ip>:9123/ to finish installation.
|
||||
|
||||
```
|
||||
cd /opt/libreqos
|
||||
python3 -m pip install -r requirements.txt
|
||||
sudo python3 -m pip install -r requirements.txt
|
||||
## Complex Install (Not Reccomended)
|
||||
|
||||
```{note}
|
||||
Use this install if you'd like to constantly deploy from the main branch on Github. For experienced users only!
|
||||
```
|
||||
|
||||
#### Install the Rust development system
|
||||
[Complex Installation](../TechnicalDocs/complex-install.md)
|
||||
|
||||
Go to [RustUp](https://rustup.rs) and follow the instructions. Basically, run the following:
|
||||
|
||||
```
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
```
|
||||
|
||||
When Rust finishes installing, it will tell you to execute a command to place the Rust build tools into your path. You need to either execute this command or logout and back in again.
|
||||
|
||||
Once that's done, please run:
|
||||
```
|
||||
cd /opt/libreqos/src/
|
||||
./build_rust.sh
|
||||
```
|
||||
|
||||
This will take a while the first time, but it puts everything in the right place.
|
||||
|
||||
Now, to build rust crates, run:
|
||||
```
|
||||
cd rust
|
||||
cargo build --all
|
||||
```
|
||||
|
||||
### Configure LibreQoS
|
||||
|
||||
#### Configure lqos.conf
|
||||
|
||||
Copy the lqosd daemon configuration file to `/etc`:
|
||||
|
||||
```
|
||||
cd /opt/libreqos/src
|
||||
sudo cp lqos.example /etc/lqos.conf
|
||||
```
|
||||
|
||||
Now edit the file to match your setup with
|
||||
|
||||
```
|
||||
sudo nano /etc/lqos.conf
|
||||
```
|
||||
|
||||
Change `enp1s0f1` and `enp1s0f2` to match your network interfaces. It doesn't matter which one is which. Notice, it's paring the interfaces, so when you first enter enps0f<ins>**1**</ins> in the first line, the `redirect_to` parameter is enp1s0f<ins>**2**</ins> (replacing with your actual interface names).
|
||||
|
||||
- First Line: `name = "enp1s0f1", redirect_to = "enp1s0f2"`
|
||||
- Second Line: `name = "enp1s0f2", redirect_to = "enp1s0f1"`
|
||||
|
||||
Then, if using Bifrost/XDP set `use_xdp_bridge = true` under that same `[bridge]` section.
|
||||
|
||||
|
||||
#### Configure ispConfig.py
|
||||
Copy ispConfig.example.py to ispConfig.py and edit as needed
|
||||
```
|
||||
cd /opt/libreqos/src/
|
||||
cp ispConfig.example.py ispConfig.py
|
||||
nano ispConfig.py
|
||||
```
|
||||
* Set upstreamBandwidthCapacityDownloadMbps and upstreamBandwidthCapacityUploadMbps to match the bandwidth in Mbps of your network's upstream / WAN internet connection. The same can be done for generatedPNDownloadMbps and generatedPNUploadMbps.
|
||||
* Set interfaceA to the interface facing your core router (or bridged internal network if your network is bridged)
|
||||
* Set interfaceB to the interface facing your edge router
|
||||
* Set ```enableActualShellCommands = True``` to allow the program to actually run the commands.
|
||||
|
||||
|
||||
### Network.json
|
||||
Network.json allows ISP operators to define a Hierarchical Network Topology, or Flat Network Topology.
|
||||
|
||||
For networks with no Parent Nodes (no strictly defined Access Points or Sites) edit the network.json to use a Flat Network Topology with
|
||||
```nano network.json```
|
||||
setting the following file content:
|
||||
```
|
||||
{}
|
||||
```
|
||||
If you plan to use the built-in UISP or Splynx integrations, you do not need to create a network.json file quite yet.
|
||||
|
||||
If you plan to use the built-in UISP integration, it will create this automatically on its first run (assuming network.json is not already present). You can then modify the network.json to more accurately reflect your topology.
|
||||
|
||||
If you will not be using an integration, you can manually define the network.json following the template file - network.example.json
|
||||
```
|
||||
+-----------------------------------------------------------------------+
|
||||
| Entire Network |
|
||||
+-----------------------+-----------------------+-----------------------+
|
||||
| Parent Node A | Parent Node B | Parent Node C |
|
||||
+-----------------------+-------+-------+-------+-----------------------+
|
||||
| Parent Node D | Sub 3 | Sub 4 | Sub 5 | Sub 6 | Sub 7 | Parent Node F |
|
||||
+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
| Sub 1 | Sub 2 | | | | Sub 8 | Sub 9 |
|
||||
+-------+-------+-------+-----------------------+-------+-------+-------+
|
||||
```
|
||||
#### Manual Setup
|
||||
You can use
|
||||
```
|
||||
python3 csvToNetworkJSON.py
|
||||
```
|
||||
to convert manualNetwork.csv to a network.json file.
|
||||
manualNetwork.csv can be copied from the template file, manualNetwork.template.csv
|
||||
|
||||
Note: The parent node name must match that used for clients in ShapedDevices.csv
|
||||
|
||||
### ShapedDevices.csv
|
||||
If you are using an integration, this file will be automatically generated. If you are not using an integration, you can manually edit the file.
|
||||
#### Manual Editing
|
||||
* Modify the ShapedDevices.csv file using your preferred spreadsheet editor (LibreOffice Calc, Excel, etc), following the template file - ShapedDevices.example.csv
|
||||
* Circuit ID is required. Must be a string of some sort (int is fine, gets parsed as string). Must NOT include any number symbols (#).
|
||||
* An IPv4 address or IPv6 address is required for each entry.
|
||||
* The Access Point or Site name should be set in the Parent Node field. Parent Node can be left blank for flat networks.
|
||||
* The ShapedDevices.csv file allows you to set minimum guaranteed, and maximum allowed bandwidth per subscriber.
|
||||
* The minimum allowed plan rates for Circuits are 2Mbit. Bandwidth min and max should both be above that threshold.
|
||||
* Recommendation: set the min bandwidth to something like 25/10 and max to 1.15X advertised plan rate by using bandwidthOverheadFactor = 1.15
|
||||
* This way, when an AP hits its ceiling, users have any remaining AP capacity fairly distributed between them.
|
||||
* Ensure a reasonable minimum bandwidth minimum for every subscriber, allowing them to utilize up to the maximum provided when AP utilization is below 100%.
|
||||
|
||||
Note regarding SLAs: For customers with SLA contracts that guarantee them a minimum bandwidth, set their plan rate as the minimum bandwidth. That way when an AP approaches its ceiling, SLA customers will always get that amount.
|
||||
|
||||

|
||||
|
||||
### LibreQoS daemons
|
||||
lqosd
|
||||
* Manages actual XDP code. Build with Rust.
|
||||
|
||||
lqos_node_manager
|
||||
* Runs the GUI available at http://a.b.c.d:9123
|
||||
|
||||
lqos_scheduler
|
||||
* lqos_scheduler handles statistics and performs continuous refreshes of LibreQoS' shapers, including pulling from any enabled CRM Integrations (UISP, Splynx).
|
||||
* On start: Run a full setup of queues
|
||||
* Every 10 seconds: Graph bandwidth and latency stats
|
||||
* Every 30 minutes: Update queues, pulling new configuration from CRM integration if enabled
|
||||
|
||||
### Run daemons with systemd
|
||||
|
||||
You can setup `lqosd`, `lqos_node_manager`, and `lqos_scheduler` as systemd services.
|
||||
|
||||
```
|
||||
sudo cp /opt/libreqos/src/bin/lqos_node_manager.service.example /etc/systemd/system/lqos_node_manager.service
|
||||
sudo cp /opt/libreqos/src/bin/lqosd.service.example /etc/systemd/system/lqosd.service
|
||||
sudo cp /opt/libreqos/src/bin/lqos_scheduler.service.example /etc/systemd/system/lqos_scheduler.service
|
||||
```
|
||||
Finally, run
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable lqosd lqos_node_manager lqos_scheduler
|
||||
```
|
||||
|
||||
You can now point a web browser at `http://a.b.c.d:9123` (replace `a.b.c.d` with the management IP address of your shaping server) and enjoy a real-time view of your network.
|
||||
|
||||
### Debugging lqos_scheduler
|
||||
In the background, lqos_scheduler runs scheduler.py, which in turn runs LibreQoS.py
|
||||
|
||||
One-time runs of these individual components can be very helpful for debugging and to make sure everything is correctly configured.
|
||||
|
||||
First, stop lqos_scheduler
|
||||
```
|
||||
sudo systemctl stop lqos_scheduler
|
||||
```
|
||||
For one-time runs of LibreQoS.py, use
|
||||
```
|
||||
sudo ./LibreQoS.py
|
||||
```
|
||||
* To use the debug mode with more verbose output, use:
|
||||
```
|
||||
sudo ./LibreQoS.py --debug
|
||||
```
|
||||
To confirm that lqos_scheduler (scheduler.py) is able to work correctly, run:
|
||||
```
|
||||
sudo python3 scheduler.py
|
||||
```
|
||||
Once you have any errors eliminated, restart lqos_scheduler with
|
||||
```
|
||||
sudo systemctl start lqos_scheduler
|
||||
```
|
||||
You are now ready to [Configure](./configuration.md) LibreQoS!
|
||||
|
@ -1,13 +1,13 @@
|
||||
## Server Setup - Pre-requisites
|
||||
# Server Setup - Pre-requisites
|
||||
|
||||
Disable hyperthreading on the BIOS/UEFI of your host system. Hyperthreaading is also known as Simultaneous Multi Threading (SMT) on AMD systems. Disabling this is very important for optimal performance of the XDP cpumap filtering and, in turn, throughput and latency.
|
||||
|
||||
* Boot, pressing the appropriate key to enter the BIOS settings
|
||||
* For AMD systems, you will have to navigate the settings to find the "SMT Control" setting. Usually it is under something like ```Advanced -> AMD CBS -> CPU Common Options -> Thread Enablement -> SMT Control``` Once you find it, switch to "Disabled" or "Off"
|
||||
* For Intel systems, you will also have to navigate the settings to find the "hyperthrading" toggle option. On HP servers it's under ```System Configuration > BIOS/Platform Configuration (RBSU) > Processor Options > Intel (R) Hyperthreading Options.```
|
||||
* Save changes and reboot
|
||||
- Boot, pressing the appropriate key to enter the BIOS settings
|
||||
- For AMD systems, you will have to navigate the settings to find the "SMT Control" setting. Usually it is under something like ```Advanced -> AMD CBS -> CPU Common Options -> Thread Enablement -> SMT Control``` Once you find it, switch to "Disabled" or "Off"
|
||||
- For Intel systems, you will also have to navigate the settings to find the "hyperthrading" toggle option. On HP servers it's under ```System Configuration > BIOS/Platform Configuration (RBSU) > Processor Options > Intel (R) Hyperthreading Options.```
|
||||
- Save changes and reboot
|
||||
|
||||
### Install Ubuntu Server
|
||||
## Install Ubuntu Server
|
||||
|
||||
We recommend Ubuntu Server because its kernel version tends to track closely with the mainline Linux releases. Our current documentation assumes Ubuntu Server. To run LibreQoS v1.4, Linux kernel 5.11 or greater is required, as 5.11 includes some important XDP patches. Ubuntu Server 22.04 uses kernel 5.13, which meets that requirement.
|
||||
|
||||
@ -21,28 +21,36 @@ You can download Ubuntu Server 22.04 from <a href="https://ubuntu.com/download/s
|
||||
6. You can use scp or sftp to access files from your LibreQoS server for easier file editing. Here's how to access via scp or sftp using an [Ubuntu](https://www.addictivetips.com/ubuntu-linux-tips/sftp-server-ubuntu/) or [Windows](https://winscp.net/eng/index.php) machine.
|
||||
|
||||
### Choose Bridge Type
|
||||
|
||||
There are two options for the bridge to pass data through your two interfaces:
|
||||
* Bifrost XDP-Accelerated Bridge
|
||||
* Regular Linux Bridge
|
||||
|
||||
- Bifrost XDP-Accelerated Bridge
|
||||
- Regular Linux Bridge
|
||||
|
||||
The Bifrost Bridge is faster and generally recommended, but may not work perfectly in a VM setup using virtualized NICs.
|
||||
To use the Bifrost bridge, skip the regular Linux bridge section below, and be sure to enable Bifrost/XDP in lqos.conf a few sections below.
|
||||
|
||||
### Adding a regular Linux bridge (if not using Bifrost XDP bridge)
|
||||
|
||||
From the Ubuntu VM, create a linux interface bridge - br0 - with the two shaping interfaces.
|
||||
Find your existing .yaml file in /etc/netplan/ with
|
||||
```
|
||||
|
||||
```shell
|
||||
cd /etc/netplan/
|
||||
ls
|
||||
```
|
||||
|
||||
Then edit the .yaml file there with
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo nano XX-cloud-init.yaml
|
||||
```
|
||||
with XX corresponding to the name of the existing file.
|
||||
|
||||
With XX corresponding to the name of the existing file.
|
||||
|
||||
Editing the .yaml file, we need to define the shaping interfaces (here, ens19 and ens20) and add the bridge with those two interfaces. Assuming your interfaces are ens18, ens19, and ens20, here is what your file might look like:
|
||||
```
|
||||
|
||||
```yaml
|
||||
# This is the network config written by 'subiquity'
|
||||
network:
|
||||
ethernets:
|
||||
@ -68,10 +76,12 @@ network:
|
||||
- ens19
|
||||
- ens20
|
||||
```
|
||||
|
||||
Make sure to replace 10.0.0.12/24 with your LibreQoS VM's address and subnet, and to replace the default gateway 10.0.0.1 with whatever your default gateway is.
|
||||
|
||||
Then run
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo netplan apply
|
||||
```
|
||||
|
||||
@ -84,24 +94,34 @@ To install InfluxDB 2.x., follow the steps at [https://portal.influxdata.com/dow
|
||||
For high throughput networks (5+ Gbps) you will likely want to install InfluxDB to a separate machine or VM from that of the LibreQoS server to avoid CPU load.
|
||||
|
||||
Restart your system that is running InfluxDB
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Check to ensure InfluxDB is running properly. This command should show "Active: active" with green dot.
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo service influxdb status
|
||||
```
|
||||
|
||||
Check that Web UI is running:<br>
|
||||
```
|
||||
|
||||
```shell
|
||||
http://SERVER_IP_ADDRESS:8086
|
||||
```
|
||||
|
||||
Create Bucket
|
||||
* Data > Buckets > Create Bucket
|
||||
|
||||
- Data > Buckets > Create Bucket
|
||||
|
||||
Call the bucket `libreqos` (all lowercase).<br>
|
||||
Have it store as many days of data as you prefer. 7 days is standard.<>
|
||||
Import Dashboard
|
||||
* Boards > Create Dashboard > Import Dashboard
|
||||
Import Dashboard `Boards > Create Dashboard > Import Dashboard`
|
||||
Then upload the file [influxDBdashboardTemplate.json](https://github.com/rchac/LibreQoS/blob/main/src/influxDBdashboardTemplate.json) to InfluxDB.
|
||||
|
||||
[Generate an InfluxDB Token](https://docs.influxdata.com/influxdb/cloud/security/tokens/create-token/). It will be added to ispConfig.py in the following steps.
|
||||
|
||||
```{note}
|
||||
You may want to install a reverse proxy in front of the web interfaces for influx and lqos. Setting these up is outside the scope of this document, but some examples are [Caddy](https://caddyserver.com/), and Nginx [Proxy Manager](https://nginxproxymanager.com/)
|
||||
```
|
||||
|
71
docs/Quickstart/services-and-run.md
Normal file
71
docs/Quickstart/services-and-run.md
Normal file
@ -0,0 +1,71 @@
|
||||
# LibreQoS daemons
|
||||
|
||||
lqosd
|
||||
|
||||
- Manages actual XDP code. Build with Rust.
|
||||
|
||||
lqos_node_manager
|
||||
|
||||
- Runs the GUI available at http://a.b.c.d:9123
|
||||
|
||||
lqos_scheduler
|
||||
|
||||
- lqos_scheduler handles statistics and performs continuous refreshes of LibreQoS' shapers, including pulling from any enabled CRM Integrations (UISP, Splynx).
|
||||
- On start: Run a full setup of queues
|
||||
- Every 10 seconds: Graph bandwidth and latency stats
|
||||
- Every 30 minutes: Update queues, pulling new configuration from CRM integration if enabled
|
||||
|
||||
## Run daemons with systemd
|
||||
|
||||
You can setup `lqosd`, `lqos_node_manager`, and `lqos_scheduler` as systemd services.
|
||||
|
||||
```shell
|
||||
sudo cp /opt/libreqos/src/bin/lqos_node_manager.service.example /etc/systemd/system/lqos_node_manager.service
|
||||
sudo cp /opt/libreqos/src/bin/lqosd.service.example /etc/systemd/system/lqosd.service
|
||||
sudo cp /opt/libreqos/src/bin/lqos_scheduler.service.example /etc/systemd/system/lqos_scheduler.service
|
||||
```
|
||||
|
||||
Finally, run
|
||||
|
||||
```shell
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable lqosd lqos_node_manager lqos_scheduler
|
||||
```
|
||||
|
||||
You can now point a web browser at `http://a.b.c.d:9123` (replace `a.b.c.d` with the management IP address of your shaping server) and enjoy a real-time view of your network.
|
||||
|
||||
## Debugging lqos_scheduler
|
||||
|
||||
In the background, lqos_scheduler runs scheduler.py, which in turn runs LibreQoS.py
|
||||
|
||||
One-time runs of these individual components can be very helpful for debugging and to make sure everything is correctly configured.
|
||||
|
||||
First, stop lqos_scheduler
|
||||
|
||||
```shell
|
||||
sudo systemctl stop lqos_scheduler
|
||||
```
|
||||
|
||||
For one-time runs of LibreQoS.py, use
|
||||
|
||||
```shell
|
||||
sudo ./LibreQoS.py
|
||||
```
|
||||
|
||||
- To use the debug mode with more verbose output, use:
|
||||
|
||||
```shell
|
||||
sudo ./LibreQoS.py --debug
|
||||
```
|
||||
|
||||
To confirm that lqos_scheduler (scheduler.py) is able to work correctly, run:
|
||||
|
||||
```shell
|
||||
sudo python3 scheduler.py
|
||||
```
|
||||
|
||||
Once you have any errors eliminated, restart lqos_scheduler with
|
||||
|
||||
```shell
|
||||
sudo systemctl start lqos_scheduler
|
||||
```
|
@ -1,4 +1,4 @@
|
||||
## Share your before and after
|
||||
# Share your before and after
|
||||
|
||||
We ask that you please share an anonymized screenshot of your LibreQoS deployment before (monitor only mode) and after (queuing enabled) to our [Matrix Channel](https://matrix.to/#/#libreqos:matrix.org). This helps us gauge the impact of our software. It also makes us smile.
|
||||
|
||||
@ -8,7 +8,7 @@ We ask that you please share an anonymized screenshot of your LibreQoS deploymen
|
||||
4. Resume regular queuing
|
||||
5. Screenshot
|
||||
|
||||
### Enable monitor only mode
|
||||
## Enable monitor only mode
|
||||
|
||||
```shell
|
||||
sudo systemctl stop lqos_scheduler
|
||||
@ -16,16 +16,16 @@ sudo systemctl restart lqosd
|
||||
sudo systemctl restart lqos_node_manager
|
||||
```
|
||||
|
||||
### Klingon mode
|
||||
## Klingon mode
|
||||
|
||||
Please go to the Web UI and click Configuration. Toggle Redact Customer Information (screenshot mode) and then Apply Changes.
|
||||
|
||||
### Resume regular queuing
|
||||
## Resume regular queuing
|
||||
|
||||
```shell
|
||||
sudo systemctl start lqos_scheduler
|
||||
```
|
||||
|
||||
### Screenshot
|
||||
## Screenshot
|
||||
|
||||
To generate a screenshot - please go to the Web UI and click Configuration. Toggle Redact Customer Information (screenshot mode), Apply Changes, and then return to the dashboard to take a screenshot.
|
||||
|
56
docs/TechnicalDocs/complex-install.md
Normal file
56
docs/TechnicalDocs/complex-install.md
Normal file
@ -0,0 +1,56 @@
|
||||
# Complex install (Not Recommended)
|
||||
|
||||
## Clone the repo
|
||||
|
||||
The recommended install location is `/opt/libreqos`
|
||||
Go to the install location, and clone the repo:
|
||||
|
||||
```shell
|
||||
cd /opt/
|
||||
git clone https://github.com/LibreQoE/LibreQoS.git libreqos
|
||||
sudo chown -R YOUR_USER /opt/libreqos
|
||||
```
|
||||
|
||||
By specifying `libreqos` at the end, git will ensure the folder name is lowercase.
|
||||
|
||||
## Install Dependencies from apt and pip
|
||||
|
||||
You need to have a few packages from `apt` installed:
|
||||
|
||||
```shell
|
||||
sudo apt-get install -y python3-pip clang gcc gcc-multilib llvm libelf-dev git nano graphviz curl screen llvm pkg-config linux-tools-common linux-tools-`uname -r` libbpf-dev
|
||||
```
|
||||
|
||||
Then you need to install some Python dependencies:
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos
|
||||
python3 -m pip install -r requirements.txt
|
||||
sudo python3 -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Install the Rust development system
|
||||
|
||||
Go to [RustUp](https://rustup.rs) and follow the instructions. Basically, run the following:
|
||||
|
||||
```shell
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
```
|
||||
|
||||
When Rust finishes installing, it will tell you to execute a command to place the Rust build tools into your path. You need to either execute this command or logout and back in again.
|
||||
|
||||
Once that's done, please run:
|
||||
|
||||
```shell
|
||||
cd /opt/libreqos/src/
|
||||
./build_rust.sh
|
||||
```
|
||||
|
||||
This will take a while the first time, but it puts everything in the right place.
|
||||
|
||||
Now, to build rust crates, run:
|
||||
|
||||
```shell
|
||||
cd rust
|
||||
cargo build --all
|
||||
```
|
@ -1,27 +1,31 @@
|
||||
## Integrations
|
||||
# Integrations
|
||||
|
||||
### UISP Integration
|
||||
## UISP Integration
|
||||
|
||||
First, set the relevant parameters for UISP (uispAuthToken, UISPbaseURL, etc.) in ispConfig.py.
|
||||
|
||||
To test the UISP Integration, use
|
||||
```
|
||||
|
||||
```shell
|
||||
python3 integrationUISP.py
|
||||
```
|
||||
|
||||
On the first successful run, it will create a network.json and ShapedDevices.csv file.
|
||||
If a network.json file exists, it will not be overwritten.
|
||||
You can modify the network.json file to more accurately reflect bandwidth limits.
|
||||
ShapedDevices.csv will be overwritten every time the UISP integration is run.
|
||||
You have the option to run integrationUISP.py automatically on boot and every 30 minutes, which is recommended. This can be enabled by setting ```automaticImportUISP = True``` in ispConfig.py
|
||||
|
||||
### Splynx Integration
|
||||
## Splynx Integration
|
||||
|
||||
First, set the relevant parameters for Splynx (splynx_api_key, splynx_api_secret, etc.) in ispConfig.py.
|
||||
|
||||
To test the Splynx Integration, use
|
||||
```
|
||||
|
||||
```shell
|
||||
python3 integrationSplynx.py
|
||||
```
|
||||
|
||||
On the first successful run, it will create a ShapedDevices.csv file.
|
||||
You can manually create your network.json file to more accurately reflect bandwidth limits.
|
||||
ShapedDevices.csv will be overwritten every time the Splynx integration is run.
|
||||
|
@ -4,9 +4,16 @@
|
||||
|
||||
### LibreQoS Is Running, But Traffic Not Shaping
|
||||
|
||||
- In ispConfig.py, make sure the edge and core interfaces correspond to correctly to the edge and core. Try swapping the interfaces to see if shaping starts to work.
|
||||
- Make sure your services are running properly `lqos.service`, `lqos_node_manager`, `lqos_scheduler`. Node manager and scheduler are dependent on the `lqos.service` being in a healthy, running state.
|
||||
In ispConfig.py, make sure the edge and core interfaces correspond to correctly to the edge and core. Try swapping the interfaces to see if shaping starts to work.
|
||||
|
||||
Make sure your services are running properly
|
||||
|
||||
- `lqos.service`
|
||||
- `lqos_node_manager`
|
||||
- `lqos_scheduler`
|
||||
|
||||
Node manager and scheduler are dependent on the `lqos.service` being in a healthy, running state.
|
||||
|
||||
### RTNETLINK answers: Invalid argument
|
||||
|
||||
This tends to show up when the MQ qdisc cannot be added correctly to the NIC interface. This would suggest the NIC has insufficient RX/TX queues. Please make sure you are using the [recommended NICs](#network-interface-card).
|
||||
This tends to show up when the MQ qdisc cannot be added correctly to the NIC interface. This would suggest the NIC has insufficient RX/TX queues. Please make sure you are using the [recommended NICs](../SystemRequirements/Networking.md).
|
||||
|
@ -1,15 +1,24 @@
|
||||
## Updating 1.4 To Latest Version
|
||||
# Updating 1.4 To Latest Version
|
||||
|
||||
Note: If you use the XDP bridge, traffic will stop passing through the bridge during the update (XDP bridge is only operating while lqosd runs).
|
||||
```{warning}
|
||||
If you use the XDP bridge, traffic will stop passing through the bridge during the update (XDP bridge is only operating while lqosd runs).
|
||||
```
|
||||
|
||||
## If you installed with Git
|
||||
|
||||
1. Change to your `LibreQoS` directory (e.g. `cd /opt/LibreQoS`)
|
||||
2. Update from Git: `git pull`
|
||||
3. Recompile: `./build-rust.sh`
|
||||
4. `sudo rust/remove_pinned_maps.sh`
|
||||
5.
|
||||
|
||||
```
|
||||
Run the following commands to reload the LibreQoS services.
|
||||
|
||||
```shell
|
||||
sudo systemctl restart lqosd
|
||||
sudo systemctl restart lqos_node_manager
|
||||
sudo systemctl restart lqos_scheduler
|
||||
```
|
||||
|
||||
## If you installed through the APT repository
|
||||
|
||||
All you should have to do in this case is run `sudo apt update && sudo apt upgrade` and LibreQoS should install the new package.
|
||||
|
154
docs/stp-diagram.drawio
Normal file
154
docs/stp-diagram.drawio
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/stp-diagram.png
Normal file
BIN
docs/stp-diagram.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 121 KiB |
@ -32,6 +32,8 @@ Welcome to the LibreQoS documentation!
|
||||
docs/SystemRequirements/Networking
|
||||
docs/Quickstart/quickstart-prereq
|
||||
docs/Quickstart/quickstart-libreqos-1.4
|
||||
docs/Quickstart/configuration
|
||||
docs/Quickstart/services-and-run
|
||||
docs/Quickstart/share
|
||||
|
||||
.. toctree::
|
||||
@ -44,6 +46,7 @@ Welcome to the LibreQoS documentation!
|
||||
:maxdepth: 1
|
||||
:caption: Technical Documentation:
|
||||
|
||||
docs/TechnicalDocs/complex-install
|
||||
docs/TechnicalDocs/troubleshooting
|
||||
docs/TechnicalDocs/integrations
|
||||
docs/TechnicalDocs/extras
|
||||
|
@ -1,3 +1,3 @@
|
||||
sphinx
|
||||
sphinx==6.2.1
|
||||
sphinx_rtd_theme
|
||||
myst-parser
|
||||
myst-parser
|
||||
|
Loading…
Reference in New Issue
Block a user