mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
Trying to unify configuration variables somewhat
We have a lot of configuration stuff, written in several very different styles. We have hidden knowledge (like port numbers) buried elsewhere. We have overly wordy variables names, and not clear separation of each concept. We have a need to keep some data secure (passwords to the apis), and others, need to be common. Ideally there would be more of a secrets file for secrets to point to, on the security case. Having one file to rule them all is not exactly the right way forward, but parsing one file *format* might prove simpler. Please, everyone, think about how to best to express oneself, I took a stab at it via this commit.
This commit is contained in:
parent
8d59d0594d
commit
6c81a2a8c1
174
src/lqos.conf.new.discuss
Normal file
174
src/lqos.conf.new.discuss
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
lqos_directory = '/opt/libreqos/src'
|
||||||
|
queue_check_period_ms = 1000
|
||||||
|
|
||||||
|
[tuning]
|
||||||
|
stop_irq_balance = true
|
||||||
|
netdev_budget_usecs = 8000
|
||||||
|
netdev_budget_packets = 300
|
||||||
|
rx_usecs = 8
|
||||||
|
tx_usecs = 8
|
||||||
|
disable_rxvlan = true
|
||||||
|
disable_txvlan = true
|
||||||
|
disable_offload = [ "gso", "tso", "lro", "sg", "gro" ]
|
||||||
|
|
||||||
|
interface_mapping = [
|
||||||
|
{ name = "enp1s0f1", redirect_to = "enp1s0f2", scan_vlans = false },
|
||||||
|
{ name = "enp1s0f2", redirect_to = "enp1s0f1", scan_vlans = false }
|
||||||
|
]
|
||||||
|
vlan_mapping = []
|
||||||
|
|
||||||
|
# NMS/CRM Integration
|
||||||
|
|
||||||
|
[NMS]
|
||||||
|
|
||||||
|
# If a device shows a WAN IP within these subnets...
|
||||||
|
# assume they are behind NAT / un-shapable, and ignore them
|
||||||
|
|
||||||
|
ignoreSubnets = ['192.168.0.0/16']
|
||||||
|
allowedSubnets = ['100.64.0.0/10']
|
||||||
|
|
||||||
|
[IspConfig]
|
||||||
|
|
||||||
|
# 'fq_codel' or 'cake diffserv4'
|
||||||
|
# 'cake diffserv4' is recommended
|
||||||
|
# sqm = 'fq_codel'
|
||||||
|
|
||||||
|
sqm = 'cake diffserv4'
|
||||||
|
|
||||||
|
# Used to passively monitor the network for before / after comparisons. Leave as False to
|
||||||
|
# ensure actual shaping. After changing this value, run "sudo systemctl restart LibreQoS.service"
|
||||||
|
|
||||||
|
monitorOnlyMode = False
|
||||||
|
|
||||||
|
# How many Mbps are available to the edge of this network
|
||||||
|
|
||||||
|
upstreamBandwidthCapacityDownloadMbps = 1000
|
||||||
|
upstreamBandwidthCapacityUploadMbps = 1000
|
||||||
|
|
||||||
|
# Devices in ShapedDevices.csv without a defined ParentNode will be placed under a generated
|
||||||
|
# parent node, evenly spread out across CPU cores. Here, define the bandwidth limit for each
|
||||||
|
# of those generated parent nodes.
|
||||||
|
|
||||||
|
generatedPNDownloadMbps = 1000
|
||||||
|
generatedPNUploadMbps = 1000
|
||||||
|
|
||||||
|
# Interface connected to core router
|
||||||
|
interfaceA = 'eth1'
|
||||||
|
|
||||||
|
# Interface connected to edge router
|
||||||
|
interfaceB = 'eth2'
|
||||||
|
|
||||||
|
# WORK IN PROGRESS. Note that interfaceA determines the "stick" interface
|
||||||
|
# I could only get scanning to work if I issued ethtool -K enp1s0f1 rxvlan off
|
||||||
|
|
||||||
|
OnAStick = False
|
||||||
|
# VLAN facing the core router
|
||||||
|
|
||||||
|
StickVlanA = 0
|
||||||
|
# VLAN facing the edge router
|
||||||
|
|
||||||
|
StickVlanB = 0
|
||||||
|
|
||||||
|
# Allow shell commands. False causes commands print to console only without being executed.
|
||||||
|
# MUST BE ENABLED FOR PROGRAM TO FUNCTION
|
||||||
|
|
||||||
|
enableActualShellCommands = True
|
||||||
|
|
||||||
|
# Add 'sudo' before execution of any shell commands. May be required depending on distribution and environment.
|
||||||
|
runShellCommandsAsSudo = False
|
||||||
|
|
||||||
|
# Allows overriding queues / CPU cores used. When set to 0, the max possible queues / CPU cores are utilized. Please
|
||||||
|
# leave as 0.
|
||||||
|
|
||||||
|
queuesAvailableOverride = 0
|
||||||
|
|
||||||
|
# Some networks are flat - where there are no Parent Nodes defined in ShapedDevices.csv
|
||||||
|
# For such flat networks, just define network.json as {} and enable this setting
|
||||||
|
# By default, it balances the subscribers across CPU cores, factoring in their max bandwidth rates
|
||||||
|
# Past 25,000 subsribers this algorithm becomes inefficient and is not advised
|
||||||
|
|
||||||
|
useBinPackingToBalanceCPU = True
|
||||||
|
|
||||||
|
[InfluxDB]
|
||||||
|
|
||||||
|
# Bandwidth & Latency Graphing
|
||||||
|
influxDBEnabled = True
|
||||||
|
influxDBurl = "http://localhost:8086"
|
||||||
|
influxDBBucket = "libreqos"
|
||||||
|
influxDBOrg = "Your ISP Name Here"
|
||||||
|
influxDBtoken = ""
|
||||||
|
|
||||||
|
[Splynx]
|
||||||
|
|
||||||
|
# Splynx Integration
|
||||||
|
automaticImportSplynx = False
|
||||||
|
splynx_api_key = ''
|
||||||
|
splynx_api_secret = ''
|
||||||
|
# Everything before /api/2.0/ on your Splynx instance
|
||||||
|
splynx_api_url = 'https://YOUR_URL.splynx.app'
|
||||||
|
|
||||||
|
# UISP integration
|
||||||
|
[UISP]
|
||||||
|
automaticImportUISP = False
|
||||||
|
uispAuthToken = ''
|
||||||
|
# Everything before /nms/ on your UISP instance
|
||||||
|
UISPbaseURL = 'https://examplesite.com'
|
||||||
|
# UISP Site - enter the name of the root site in your network tree
|
||||||
|
# to act as the starting point for the tree mapping
|
||||||
|
uispSite = ''
|
||||||
|
|
||||||
|
# Strategy:
|
||||||
|
# * "flat" - create all client sites directly off the top of the tree,
|
||||||
|
# provides maximum performance - at the expense of not offering AP,
|
||||||
|
# or site options.
|
||||||
|
# * "full" - build a complete network map
|
||||||
|
uispStrategy = "full"
|
||||||
|
|
||||||
|
# List any sites that should not be included, with each site name surrounded by ''
|
||||||
|
# and separated by commas
|
||||||
|
|
||||||
|
excludeSites = []
|
||||||
|
|
||||||
|
# If you use IPv6, this can be used to find associated IPv6 prefixes
|
||||||
|
# for your clients' IPv4 addresses, and match them
|
||||||
|
# to those devices
|
||||||
|
|
||||||
|
findIPv6usingMikrotik = False
|
||||||
|
|
||||||
|
# If you want to provide a safe cushion for speed test results to prevent customer complaints,
|
||||||
|
# you can set this to 1.15 (15% above plan rate). If not, you can leave as 1.0
|
||||||
|
|
||||||
|
bandwidthOverheadFactor = 1.0
|
||||||
|
|
||||||
|
# For edge cases, set the respective ParentNode for these CPEs
|
||||||
|
exceptionCPEs = {}
|
||||||
|
|
||||||
|
# exceptionCPEs = {
|
||||||
|
# 'CPE-SomeLocation1': 'AP-SomeLocation1',
|
||||||
|
# 'CPE-SomeLocation2': 'AP-SomeLocation2',
|
||||||
|
# }
|
||||||
|
|
||||||
|
# API Auth
|
||||||
|
apiUsername = "testUser"
|
||||||
|
apiPassword = "changeme8343486806"
|
||||||
|
apiHostIP = "127.0.0.1"
|
||||||
|
apiHostPost = 5000
|
||||||
|
|
||||||
|
httpRestIntegrationConfig = {
|
||||||
|
'enabled': False,
|
||||||
|
'baseURL': 'https://domain',
|
||||||
|
'networkURI': '/some/path',
|
||||||
|
'shaperURI': '/some/path/etc',
|
||||||
|
'requestsConfig': {
|
||||||
|
'verify': True, # Good for Dev if your dev env doesnt have cert
|
||||||
|
'params': { # params for query string ie uri?some-arg=some-value
|
||||||
|
'search': 'hold-my-beer'
|
||||||
|
},
|
||||||
|
#'headers': {
|
||||||
|
# 'Origin': 'SomeHeaderValue',
|
||||||
|
#},
|
||||||
|
},
|
||||||
|
# If you want to store a timestamped copy/backup of both network.json and Shaper.csv each time they are updated,
|
||||||
|
# provide a path
|
||||||
|
# 'logChanges': '/var/log/libreqos'
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user