From 270245e6d47162d5b2400381e6ba66b528241ef4 Mon Sep 17 00:00:00 2001 From: Florian Eckert Date: Wed, 14 Mar 2018 11:57:02 +0100 Subject: [PATCH] net/mwan3: deviate max interface value from mmx_mask value We need always three of the firewall mask value for * default routing table * blackhole * unreachable the other will be used for the interfaces. * If we have set the mmx_mask to max 0xFF00 (8 bit set) we could use max 252 interfaces. * If we have set the mmx_mask to min 0x0E00 (3 bit set) we could use max 4 interfaces. Only the ones are counting from the firewall mask value. Minimal three firewall mask bit vaules must be set. Maximal eight firewall mask bit vaules could be set. Table overview mmx_mask value bits vs. max interfaces mmx_mask value bits set 1 -> not usefull mmx_mask value bits set 2 -> not usefull mmx_mask value bits set 3 -> 4 Interfaces (mask example 0x0E) mmx_mask value bits set 4 -> 12 Interfaces mmx_mask value bits set 5 -> 28 Interfaces mmx_mask value bits set 6 -> 60 Interfaces mmx_mask value bits set 7 -> 124 Interfaces mmx_mask value bits set 8 -> 252 Interfaces (mask example 0xFF) Signed-off-by: Florian Eckert --- net/mwan3/files/lib/mwan3/mwan3.sh | 8 ++++++++ net/mwan3/files/usr/sbin/mwan3 | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh index e59f7c9b2..275723008 100644 --- a/net/mwan3/files/lib/mwan3/mwan3.sh +++ b/net/mwan3/files/lib/mwan3/mwan3.sh @@ -10,6 +10,7 @@ CONNTRACK_FILE="/proc/net/nf_conntrack" MWAN3_STATUS_DIR="/var/run/mwan3" MWAN3TRACK_STATUS_DIR="/var/run/mwan3track" +MWAN3_INTERFACE_MAX="" DEFAULT_LOWEST_METRIC=256 MMX_MASK="" MMX_DEFAULT="" @@ -65,11 +66,18 @@ mwan3_init() # mwan3's MARKing mask (at least 3 bits should be set) if [ -e "${MWAN3_STATUS_DIR}/mmx_mask" ]; then MMX_MASK=$(cat "${MWAN3_STATUS_DIR}/mmx_mask") + MWAN3_INTERFACE_MAX=$(uci_get_state mwan3 globals iface_max) else config_load mwan3 config_get MMX_MASK globals mmx_mask '0xff00' echo "$MMX_MASK" > "${MWAN3_STATUS_DIR}/mmx_mask" $LOG notice "Using firewall mask ${MMX_MASK}" + + bitcnt=$(mwan3_count_one_bits MMX_MASK) + mmdefault=$(((1<0) if($i+0<255) {print;break}}'); do + for route in $(seq 1 $MWAN3_INTERFACE_MAX); do $IP route flush table $route &> /dev/null done