+++ /dev/null
-#
-# This is free software, licensed under the GNU General Public License v2.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=sqm-scripts-extra
-PKG_VERSION:=2016-06-08
-PKG_RELEASE:=1
-PKG_LICENSE:=GPLv2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.xz
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/sqm-scripts-extra
- SECTION:=net
- CATEGORY:=Base system
- DEPENDS:=+sqm-scripts
- TITLE:=SQM Scripts - additional experimental scripts for testing
- PKGARCH:=all
- MAINTAINER:=Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>, \
- Sebastian Moeller <moeller0@gmx.de>
-endef
-
-define Package/sqm-scripts-extra/description
- A set of experimental scripts for sqm-scripts QoS package. The contents of this package may
- change as new qdiscs like 'cake' are developed and tested.
-endef
-
-define Package/sqm-scripts-extra/download
-endef
-
-define Build/Prepare
-endef
-
-define Build/Compile
-endef
-
-define Package/sqm-scripts-extra/install
- $(INSTALL_DIR) $(1)/usr/lib/sqm
- $(INSTALL_DATA) ./src/* $(1)/usr/lib/sqm/
-endef
-
-$(eval $(call BuildPackage,sqm-scripts-extra))
-
+++ /dev/null
-#!/bin/sh
-################################################################################
-# test_LAN_triple-isolate__piece_of_cake.qos (Cero3 Shaper)
-#
-# Abstract:
-# This is a one band cake and ipv6 enabled shaping script for Ethernet
-# gateways. This exists for the purpose of testing cake's different isolation
-# options, specifically the non-directional triple-isolate feature that promises
-# to finally tackle the bit-torrent hole in simple.qos.
-# This specific version is supposed to be used on LAN interfaces:
-# the script's ingress direction equals the internet/WAN upload direction
-# the script's egress direction equals the internet/WAN download direction
-#
-# NOTE: Shaping on a LAN interface only affects machines connected via that
-# LAN interface, so typically WIFI/WLAN traffic will not be shaped!
-#
-################################################################################
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# Copyright (C) 2012-2016
-# Michael D. Taht, Toke Høiland-Jørgensen, Sebastian Moeller
-#
-################################################################################
-
-. ${SQM_LIB_DIR}/defaults.sh
-
-################################################################################
-
-
-# this will only work with cake as qdisc...
-QDISC=cake
-
-
-# to keep this as simple as possible we ignore the *_CAKE_OPTS from defaults.sh
-INGRESS_CAKE_OPTS="besteffort dual-srchost"
-EGRESS_CAKE_OPTS="besteffort dual-dsthost"
-
-
-egress() {
- sqm_debug "egress"
- $TC qdisc del dev $IFACE root 2>/dev/null
- $TC qdisc add dev $IFACE root $( get_stab_string ) cake bandwidth ${UPLINK}kbit $( get_cake_lla_string ) ${EGRESS_CAKE_OPTS} ${EQDISC_OPTS}
-}
-
-
-ingress() {
- sqm_debug "ingress"
- $TC qdisc del dev $IFACE handle ffff: ingress 2>/dev/null
- $TC qdisc add dev $IFACE handle ffff: ingress
- $TC qdisc del dev $DEV root 2>/dev/null
- $TC qdisc add dev $DEV root $( get_stab_string ) cake bandwidth ${DOWNLINK}kbit $( get_cake_lla_string ) ${INGRESS_CAKE_OPTS} ${IQDISC_OPTS}
-
- $IP link set dev $DEV up
-
- # redirect all IP packets arriving in $IFACE to ifb0
-
- $TC filter add dev $IFACE parent ffff: protocol all prio 10 u32 \
- match u32 0 0 flowid 1:1 action mirred egress redirect dev $DEV
-}
-
-sqm_start() {
-
- #sm: flip upload and download bandwith so that the GUI values reflect directionality in regard to the ISP
- #sm: NOTE this is ugly and should be performed in defaults.sh or functions.sh if at all
- #sm: but for quick and dirty testing this should do
- local ORIG_UPLINK=${UPLINK}
- local ORIG_DOWNLINK=${DOWNLINK}
- UPLINK=${ORIG_DOWNLINK}
- DOWNLINK=${ORIG_UPLINK}
-
-
- [ -n "$IFACE" ] || return 1
- do_modules
- verify_qdisc $QDISC "cake" || return 1
- sqm_debug "Starting ${SCRIPT}"
-
- [ -z "$DEV" ] && DEV=$( get_ifb_for_if ${IFACE} )
-
-
- if [ "${UPLINK}" -ne 0 ];
- then
- egress
- sqm_debug "egress shaping activated"
- else
- sqm_debug "egress shaping deactivated"
- $TC qdisc del dev ${IFACE} root 2> /dev/null
- fi
- if [ "${DOWNLINK}" -ne 0 ];
- then
- verify_qdisc ingress "ingress" || return 1
- ingress
- sqm_debug "ingress shaping activated"
- else
- sqm_debug "ingress shaping deactivated"
- $TC qdisc del dev ${DEV} root 2> /dev/null
- $TC qdisc del dev ${IFACE} ingress 2> /dev/null
- fi
- return 0
-}
+++ /dev/null
-test_LAN_dual-isolate__piece_of_cake.qos (Cero3 Shaper)
-
-Abstract:
-This is a one band cake and ipv6 enabled shaping script for Ethernet gateways.
-This exists for the purpose of testing cake's different isolation options,
-specifically the non-directional dual-[src|dst]host feature that promises to finally
-tackle the bit-torrent hole in simple.qos.
-This specific version is supposed to be used on LAN interfaces:
- the script's ingress direction equals the internet/WAN upload direction
- the script's egress direction equals the internet/WAN download direction
-NOTE: Shaping on a LAN interface only affects machines connected via that
-LAN interface, so typically WIFI/WLAN traffic will not be shaped!
+++ /dev/null
-#!/bin/sh
-################################################################################
-# test_LAN_triple-isolate__piece_of_cake.qos (Cero3 Shaper)
-#
-# Abstract:
-# This is a one band cake and ipv6 enabled shaping script for Ethernet
-# gateways. This exists for the purpose of testing cake's different isolation
-# options, specifically the non-directional triple-isolate feature that promises
-# to finally tackle the bit-torrent hole in simple.qos.
-# This specific version is supposed to be used on LAN interfaces:
-# the script's ingress direction equals the internet/WAN upload direction
-# the script's egress direction equals the internet/WAN download direction
-#
-# NOTE: Shaping on a LAN interface only affects machines connected via that
-# LAN interface, so typically WIFI/WLAN traffic will not be shaped!
-#
-################################################################################
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# Copyright (C) 2012-2016
-# Michael D. Taht, Toke Høiland-Jørgensen, Sebastian Moeller
-#
-################################################################################
-
-. ${SQM_LIB_DIR}/defaults.sh
-
-################################################################################
-
-
-# this will only work with cake as qdisc...
-QDISC=cake
-
-
-# to keep this as simple as possible we ignore the *_CAKE_OPTS from defaults.sh
-INGRESS_CAKE_OPTS="besteffort triple-isolate"
-EGRESS_CAKE_OPTS="besteffort triple-isolate"
-
-
-egress() {
- sqm_debug "egress"
- $TC qdisc del dev $IFACE root 2>/dev/null
- $TC qdisc add dev $IFACE root $( get_stab_string ) cake bandwidth ${UPLINK}kbit $( get_cake_lla_string ) ${EGRESS_CAKE_OPTS} ${EQDISC_OPTS}
-}
-
-
-ingress() {
- sqm_debug "ingress"
- $TC qdisc del dev $IFACE handle ffff: ingress 2>/dev/null
- $TC qdisc add dev $IFACE handle ffff: ingress
- $TC qdisc del dev $DEV root 2>/dev/null
- $TC qdisc add dev $DEV root $( get_stab_string ) cake bandwidth ${DOWNLINK}kbit $( get_cake_lla_string ) ${INGRESS_CAKE_OPTS} ${IQDISC_OPTS}
-
- $IP link set dev $DEV up
-
- # redirect all IP packets arriving in $IFACE to ifb0
-
- $TC filter add dev $IFACE parent ffff: protocol all prio 10 u32 \
- match u32 0 0 flowid 1:1 action mirred egress redirect dev $DEV
-}
-
-sqm_start() {
-
- #sm: flip upload and download bandwith so that the GUI values reflect directionality in regard to the ISP
- #sm: NOTE this is ugly and should be performed in defaults.sh or functions.sh if at all
- #sm: but for quick and dirty testing this should do
- local ORIG_UPLINK=${UPLINK}
- local ORIG_DOWNLINK=${DOWNLINK}
- UPLINK=${ORIG_DOWNLINK}
- DOWNLINK=${ORIG_UPLINK}
-
-
- [ -n "$IFACE" ] || return 1
- do_modules
- verify_qdisc $QDISC "cake" || return 1
- sqm_debug "Starting ${SCRIPT}"
-
- [ -z "$DEV" ] && DEV=$( get_ifb_for_if ${IFACE} )
-
-
- if [ "${UPLINK}" -ne 0 ];
- then
- egress
- sqm_debug "egress shaping activated"
- else
- sqm_debug "egress shaping deactivated"
- $TC qdisc del dev ${IFACE} root 2> /dev/null
- fi
- if [ "${DOWNLINK}" -ne 0 ];
- then
- verify_qdisc ingress "ingress" || return 1
- ingress
- sqm_debug "ingress shaping activated"
- else
- sqm_debug "ingress shaping deactivated"
- $TC qdisc del dev ${DEV} root 2> /dev/null
- $TC qdisc del dev ${IFACE} ingress 2> /dev/null
- fi
- return 0
-}
+++ /dev/null
-test_LAN_triple-isolate__piece_of_cake.qos (Cero3 Shaper)
-
-Abstract:
-This is a one band cake and ipv6 enabled shaping script for Ethernet gateways.
-This exists for the purpose of testing cake's different isolation options,
-specifically the non-directional triple-isolate feature that promises to finally
-tackle the bit-torrent hole in simple.qos.
-This specific version is supposed to be used on LAN interfaces:
- the script's ingress direction equals the internet/WAN upload direction
- the script's egress direction equals the internet/WAN download direction
-NOTE: Shaping on a LAN interface only affects machines connected via that
-LAN interface, so typically WIFI/WLAN traffic will not be shaped!
+++ /dev/null
-#!/bin/sh
-################################################################################
-# test_WAN_dual-isolate__piece_of_cake.qos (Cero3 Shaper)
-#
-# Abstract:
-# This is a one band cake and ipv6 enabled shaping script for Ethernet
-# gateways. This exists for the purpose of testing cake's different isolation
-# options, specifically the directional dual-[src|dst]host feature that promises
-# to finally tackle the bit-torrent hole in simple.qos.
-# This specific version is supposed to be used on WAN interfaces:
-# the script's ingress direction equals the internet/WAN download direction
-# the script's egress direction equals the internet/WAN upload direction
-#
-################################################################################
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# Copyright (C) 2012-2016
-# Michael D. Taht, Toke Høiland-Jørgensen, Sebastian Moeller
-#
-################################################################################
-
-. ${SQM_LIB_DIR}/defaults.sh
-
-################################################################################
-
-
-# this will only work with cake as qdisc...
-QDISC=cake
-
-
-# to keep this as simple as possible we ignore the *_CAKE_OPTS from defaults.sh
-INGRESS_CAKE_OPTS="besteffort dual-dsthost"
-EGRESS_CAKE_OPTS="besteffort dual-srchost"
-
-
-egress() {
- sqm_debug "egress"
- $TC qdisc del dev $IFACE root 2>/dev/null
- $TC qdisc add dev $IFACE root $( get_stab_string ) cake bandwidth ${UPLINK}kbit $( get_cake_lla_string ) ${EGRESS_CAKE_OPTS} ${EQDISC_OPTS}
-}
-
-
-ingress() {
- sqm_debug "ingress"
- $TC qdisc del dev $IFACE handle ffff: ingress 2>/dev/null
- $TC qdisc add dev $IFACE handle ffff: ingress
- $TC qdisc del dev $DEV root 2>/dev/null
- $TC qdisc add dev $DEV root $( get_stab_string ) cake bandwidth ${DOWNLINK}kbit $( get_cake_lla_string ) ${INGRESS_CAKE_OPTS} ${IQDISC_OPTS}
-
- $IP link set dev $DEV up
-
- # redirect all IP packets arriving in $IFACE to ifb0
-
- $TC filter add dev $IFACE parent ffff: protocol all prio 10 u32 \
- match u32 0 0 flowid 1:1 action mirred egress redirect dev $DEV
-}
-
-sqm_start() {
- [ -n "$IFACE" ] || return 1
- do_modules
- verify_qdisc $QDISC "cake" || return 1
- sqm_debug "Starting ${SCRIPT}"
-
- [ -z "$DEV" ] && DEV=$( get_ifb_for_if ${IFACE} )
-
-
- if [ "${UPLINK}" -ne 0 ];
- then
- egress
- sqm_debug "egress shaping activated"
- else
- sqm_debug "egress shaping deactivated"
- $TC qdisc del dev ${IFACE} root 2> /dev/null
- fi
- if [ "${DOWNLINK}" -ne 0 ];
- then
- verify_qdisc ingress "ingress" || return 1
- ingress
- sqm_debug "ingress shaping activated"
- else
- sqm_debug "ingress shaping deactivated"
- $TC qdisc del dev ${DEV} root 2> /dev/null
- $TC qdisc del dev ${IFACE} ingress 2> /dev/null
- fi
- return 0
-}
+++ /dev/null
-test_WAN_dual-isolate__piece_of_cake.qos (Cero3 Shaper)
-
-Abstract:
-This is a one band cake and ipv6 enabled shaping script for Ethernet gateways.
-This exists for the purpose of testing cake's different isolation options,
-specifically the directional dual-[src|dst]host feature that promises to finally
-tackle the bit-torrent hole in simple.qos.
-This specific version is supposed to be used on WAN interfaces:
- the script's ingress direction equals the internet/WAN download direction
- the script's egress direction equals the internet/WAN upload direction
+++ /dev/null
-#!/bin/sh
-################################################################################
-# test_WAN_triple-isolate__piece_of_cake.qos (Cero3 Shaper)
-#
-# Abstract:
-# This is a one band cake and ipv6 enabled shaping script for Ethernet
-# gateways. This exists for the purpose of testing cake's different isolation
-# options, specifically the non-directional triple-isolate feature that promises
-# to finally tackle the bit-torrent hole in simple.qos.
-# This specific version is supposed to be used on WAN interfaces:
-# the script's ingress direction equals the internet/WAN download direction
-# the script's egress direction equals the internet/WAN upload direction
-#
-################################################################################
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# Copyright (C) 2012-2016
-# Michael D. Taht, Toke Høiland-Jørgensen, Sebastian Moeller
-#
-################################################################################
-
-. ${SQM_LIB_DIR}/defaults.sh
-
-################################################################################
-
-
-# this will only work with cake as qdisc...
-QDISC=cake
-
-
-# to keep this as simple as possible we ignore the *_CAKE_OPTS from defaults.sh
-INGRESS_CAKE_OPTS="besteffort triple-isolate"
-EGRESS_CAKE_OPTS="besteffort triple-isolate"
-
-
-egress() {
- sqm_debug "egress"
- $TC qdisc del dev $IFACE root 2>/dev/null
- $TC qdisc add dev $IFACE root $( get_stab_string ) cake bandwidth ${UPLINK}kbit $( get_cake_lla_string ) ${EGRESS_CAKE_OPTS} ${EQDISC_OPTS}
-}
-
-
-ingress() {
- sqm_debug "ingress"
- $TC qdisc del dev $IFACE handle ffff: ingress 2>/dev/null
- $TC qdisc add dev $IFACE handle ffff: ingress
- $TC qdisc del dev $DEV root 2>/dev/null
- $TC qdisc add dev $DEV root $( get_stab_string ) cake bandwidth ${DOWNLINK}kbit $( get_cake_lla_string ) ${INGRESS_CAKE_OPTS} ${IQDISC_OPTS}
-
- $IP link set dev $DEV up
-
- # redirect all IP packets arriving in $IFACE to ifb0
-
- $TC filter add dev $IFACE parent ffff: protocol all prio 10 u32 \
- match u32 0 0 flowid 1:1 action mirred egress redirect dev $DEV
-}
-
-sqm_start() {
- [ -n "$IFACE" ] || return 1
- do_modules
- verify_qdisc $QDISC "cake" || return 1
- sqm_debug "Starting ${SCRIPT}"
-
- [ -z "$DEV" ] && DEV=$( get_ifb_for_if ${IFACE} )
-
-
- if [ "${UPLINK}" -ne 0 ];
- then
- egress
- sqm_debug "egress shaping activated"
- else
- sqm_debug "egress shaping deactivated"
- $TC qdisc del dev ${IFACE} root 2> /dev/null
- fi
- if [ "${DOWNLINK}" -ne 0 ];
- then
- verify_qdisc ingress "ingress" || return 1
- ingress
- sqm_debug "ingress shaping activated"
- else
- sqm_debug "ingress shaping deactivated"
- $TC qdisc del dev ${DEV} root 2> /dev/null
- $TC qdisc del dev ${IFACE} ingress 2> /dev/null
- fi
- return 0
-}
+++ /dev/null
-test_WAN_triple-isolate__piece_of_cake.qos (Cero3 Shaper)
-
-Abstract:
-This is a one band cake and ipv6 enabled shaping script for Ethernet gateways.
-This exists for the purpose of testing cake's different isolation options,
-specifically the non-directional triple-isolate feature that promises to finally
-tackle the bit-torrent hole in simple.qos.
-This specific version is supposed to be used on WAN interfaces:
- the script's ingress direction equals the internet/WAN download direction
- the script's egress direction equals the internet/WAN upload direction
+++ /dev/null
-#!/bin/sh
-################################################################################
-# test_triple_isolated_llt_cake.qos
-# One bin cake shaper for ethernet gateways
-# using cake qdisc with triple-isolate and diffserv-llt (Latency-Loss-Tradeoff)
-#
-################################################################################
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# Copyright (C) 2012-2016
-# Michael D. Taht, Toke Høiland-Jørgensen, Sebastian Moeller
-#
-################################################################################
-
-. ${SQM_LIB_DIR}/defaults.sh
-
-################################################################################
-
-
-# this will only work with cake as qdisc...
-QDISC=cake
-
-
-# to keep this as simple as possible we ignore the *_CAKE_OPTS from defaults.sh
-INGRESS_CAKE_OPTS="diffserv-llt triple-isolate"
-EGRESS_CAKE_OPTS="diffserv-llt triple-isolate"
-
-
-egress() {
- sqm_debug "egress"
- $TC qdisc del dev $IFACE root 2>/dev/null
- $TC qdisc add dev $IFACE root $( get_stab_string ) cake bandwidth ${UPLINK}kbit $( get_cake_lla_string ) ${EGRESS_CAKE_OPTS} ${EQDISC_OPTS}
-}
-
-
-ingress() {
- sqm_debug "ingress"
- $TC qdisc del dev $IFACE handle ffff: ingress 2>/dev/null
- $TC qdisc add dev $IFACE handle ffff: ingress
- $TC qdisc del dev $DEV root 2>/dev/null
- $TC qdisc add dev $DEV root $( get_stab_string ) cake bandwidth ${DOWNLINK}kbit $( get_cake_lla_string ) ${INGRESS_CAKE_OPTS} ${IQDISC_OPTS}
-
- $IP link set dev $DEV up
-
- # redirect all IP packets arriving in $IFACE to ifb0
-
- $TC filter add dev $IFACE parent ffff: protocol all prio 10 u32 \
- match u32 0 0 flowid 1:1 action mirred egress redirect dev $DEV
-}
-
-sqm_start() {
- [ -n "$IFACE" ] || return 1
- do_modules
- verify_qdisc $QDISC "cake" || return 1
- sqm_debug "Starting ${SCRIPT}"
-
- [ -z "$DEV" ] && DEV=$( get_ifb_for_if ${IFACE} )
-
-
- if [ "${UPLINK}" -ne 0 ];
- then
- egress
- sqm_debug "egress shaping activated"
- else
- sqm_debug "egress shaping deactivated"
- $TC qdisc del dev ${IFACE} root 2> /dev/null
- fi
- if [ "${DOWNLINK}" -ne 0 ];
- then
- verify_qdisc ingress "ingress" || return 1
- ingress
- sqm_debug "ingress shaping activated"
- else
- sqm_debug "ingress shaping deactivated"
- $TC qdisc del dev ${DEV} root 2> /dev/null
- $TC qdisc del dev ${IFACE} ingress 2> /dev/null
- fi
- return 0
-}
+++ /dev/null
-Cake qdisc with triple-isolate and diffserv-llt (Latency-Loss-Tradeoff)
-options as the shaper and fq_codel as leaf qdisc. This script requires
-that cake is selected as qdisc.