mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	Support wan1 to wan4
This commit is contained in:
		
							parent
							
								
									7d035a949b
								
							
						
					
					
						commit
						f2c9e12676
					
				
					 5 changed files with 115 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -27,7 +27,7 @@ MY_DEPENDS := \
 | 
			
		|||
    arptables \
 | 
			
		||||
    bind-dig \
 | 
			
		||||
    conntrack conntrackd ebtables ebtables-utils ip-full \
 | 
			
		||||
    iptables-mod-iface iptables-mod-ipmark iptables-mod-hashlimit iptables-mod-condition iptables-mod-trace iptables-mod-conntrack-extra \
 | 
			
		||||
    iptables-mod-iface iptables-mod-ipmark iptables-mod-hashlimit iptables-mod-condition iptables-mod-trace iptables-mod-conntrack-extra iptables-mod-account \
 | 
			
		||||
    wireless-tools \
 | 
			
		||||
    libiwinfo-lua \
 | 
			
		||||
    ca-bundle ca-certificates libustream-openssl \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,8 +3,8 @@
 | 
			
		|||
. /lib/functions.sh
 | 
			
		||||
 | 
			
		||||
_setup_macaddr() {
 | 
			
		||||
	uci -q get "network.$1_dev.macaddr" >/dev/null && return
 | 
			
		||||
	uci -q set "network.$1_dev.macaddr=$2"
 | 
			
		||||
	uci -q get "network.$1.macaddr" >/dev/null && return
 | 
			
		||||
	uci -q set "network.$1.macaddr=$2"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_setup_macvlan() {
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +27,7 @@ _setup_macvlan() {
 | 
			
		|||
	set network.$1.masterintf=$_ifname
 | 
			
		||||
	EOF
 | 
			
		||||
	_macaddr=$(uci -q get "network.$1.macaddr")
 | 
			
		||||
	_setup_macaddr "$1" "${_macaddr:-auto$(date +%s)}"
 | 
			
		||||
	_setup_macaddr "$1_dev" "${_macaddr:-auto$(date +%s)}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_setup_multipath_off() {
 | 
			
		||||
| 
						 | 
				
			
			@ -54,17 +54,22 @@ if [ "$(uci -q get network.lan.multipath)" != "" ]; then
 | 
			
		|||
	exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
lanif="eth0"
 | 
			
		||||
if [ -d /sys/class/net/lan ] || [ -n "$(ip link | grep ' lan')" ]; then
 | 
			
		||||
	lanif="lan"
 | 
			
		||||
fi
 | 
			
		||||
uci -q batch <<-EOF
 | 
			
		||||
set network.lan=interface
 | 
			
		||||
set network.lan.proto=static
 | 
			
		||||
set network.lan.ipaddr=192.168.100.1
 | 
			
		||||
set network.lan.netmask=255.255.255.0
 | 
			
		||||
set network.lan.ifname=eth0
 | 
			
		||||
set network.lan.ifname=$lanif
 | 
			
		||||
set network.lan.metric=2048
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
uci -q batch <<-EOF
 | 
			
		||||
delete network.none
 | 
			
		||||
delete network.wan
 | 
			
		||||
delete network.if6rd
 | 
			
		||||
reorder network.loopback=0
 | 
			
		||||
reorder network.globals=1
 | 
			
		||||
| 
						 | 
				
			
			@ -106,10 +111,42 @@ if [ "$(uci -q show network | grep wan1)" = "" ]; then
 | 
			
		|||
		_setup_wan_interface wan2 wan on macvlan
 | 
			
		||||
		_setup_macvlan wan1
 | 
			
		||||
		_setup_macvlan wan2
 | 
			
		||||
	elif [ -d /sys/class/net/wan1 ] || [ -n "$(ip link | grep ' wan1')" ]; then
 | 
			
		||||
		if [ -d /sys/class/net/wan2 ] || [ -n "$(ip link | grep ' wan2')" ]; then
 | 
			
		||||
			_setup_wan_interface wan1 wan1 master
 | 
			
		||||
			_setup_wan_interface wan2 wan2 on
 | 
			
		||||
 | 
			
		||||
			_macaddr=$(uci -q get "network.wan1.macaddr")
 | 
			
		||||
			_setup_macaddr "wan1" "${_macaddr:-$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/')}"
 | 
			
		||||
			_macaddr=$(uci -q get "network.wan2.macaddr")
 | 
			
		||||
			_setup_macaddr "wan2" "${_macaddr:-$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/')}"
 | 
			
		||||
 | 
			
		||||
			if [ -d /sys/class/net/wan3 ] || [ -n "$(ip link | grep ' wan3')" ]; then
 | 
			
		||||
				_setup_wan_interface wan3 wan3 on
 | 
			
		||||
				_macaddr=$(uci -q get "network.wan3.macaddr")
 | 
			
		||||
				_setup_macaddr "wan3" "${_macaddr:-$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/')}"
 | 
			
		||||
				if [ -d /sys/class/net/wan4 ] || [ -n "$(ip link | grep ' wan4')" ]; then
 | 
			
		||||
					_setup_wan_interface wan4 wan4 on
 | 
			
		||||
					_macaddr=$(uci -q get "network.wan4.macaddr")
 | 
			
		||||
					_setup_macaddr "wan4" "${_macaddr:-$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/') }"
 | 
			
		||||
				fi
 | 
			
		||||
			fi
 | 
			
		||||
		else
 | 
			
		||||
			_setup_wan_interface wan1 wan1 master macvlan
 | 
			
		||||
			_setup_wan_interface wan2 wan1 on macvlan
 | 
			
		||||
			_setup_macvlan wan1
 | 
			
		||||
			_setup_macvlan wan2
 | 
			
		||||
		fi
 | 
			
		||||
	elif [ -d /sys/class/net/eth1 ] || [ -n "$(ip link | grep ' eth1:')" ]; then
 | 
			
		||||
		if [ -d /sys/class/net/eth2 ] || [ -n "$(ip link | grep ' eth2:')" ]; then
 | 
			
		||||
			_setup_wan_interface wan1 eth1 master
 | 
			
		||||
			_setup_wan_interface wan2 eth2 on
 | 
			
		||||
			if [ -d /sys/class/net/eth3 ] || [ -n "$(ip link | grep ' eth3:')" ]; then
 | 
			
		||||
				_setup_wan_interface wan3 eth3 on
 | 
			
		||||
				if [ -d /sys/class/net/eth4 ] || [ -n "$(ip link | grep ' eth4:')" ]; then
 | 
			
		||||
				_setup_wan_interface wan4 eth4 on
 | 
			
		||||
				fi
 | 
			
		||||
			fi
 | 
			
		||||
		else
 | 
			
		||||
			_setup_wan_interface wan1 eth1 master macvlan
 | 
			
		||||
			_setup_wan_interface wan2 eth1 on macvlan
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,26 @@ if [ "$(uci -q get qos.wan1)" = "" ]; then
 | 
			
		|||
		set qos.@classify[-1].comments='Steam'
 | 
			
		||||
		commit qos
 | 
			
		||||
	EOF
 | 
			
		||||
	if [ "$(uci -q get network.wan3)" != "" ]; then
 | 
			
		||||
		uci -q batch <<-EOF >/dev/null
 | 
			
		||||
			set qos.wan3=interface
 | 
			
		||||
			set qos.wan3.classgroup="Default"
 | 
			
		||||
			set qos.wan3.enabled="0"
 | 
			
		||||
			set qos.wan3.upload="4000"
 | 
			
		||||
			set qos.wan3.download="100000"
 | 
			
		||||
			commit qos
 | 
			
		||||
		EOF
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$(uci -q get network.wan4)" != "" ]; then
 | 
			
		||||
		uci -q batch <<-EOF >/dev/null
 | 
			
		||||
			set qos.wan4=interface
 | 
			
		||||
			set qos.wan4.classgroup="Default"
 | 
			
		||||
			set qos.wan4.enabled="0"
 | 
			
		||||
			set qos.wan4.upload="4000"
 | 
			
		||||
			set qos.wan4.download="100000"
 | 
			
		||||
			commit qos
 | 
			
		||||
		EOF
 | 
			
		||||
	fi
 | 
			
		||||
fi
 | 
			
		||||
rm -f /tmp/luci-indexcache
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,12 +1,26 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
uci -q batch <<-EOF >/dev/null
 | 
			
		||||
	delete vnstat.@vnstat[-1]
 | 
			
		||||
	add vnstat vnstat
 | 
			
		||||
	set vnstat.@vnstat[-1].interface="wan1"
 | 
			
		||||
	add_list vnstat.@vnstat[-1].interface="wan2"
 | 
			
		||||
	commit vnstat
 | 
			
		||||
EOF
 | 
			
		||||
if [ "$(uci -q get vnstat.@vnstat[-1].interface | grep wan1)" = "" ]; then
 | 
			
		||||
	uci -q batch <<-EOF >/dev/null
 | 
			
		||||
		delete vnstat.@vnstat[-1]
 | 
			
		||||
		add vnstat vnstat
 | 
			
		||||
		set vnstat.@vnstat[-1].interface="wan1"
 | 
			
		||||
		add_list vnstat.@vnstat[-1].interface="wan2"
 | 
			
		||||
		commit vnstat
 | 
			
		||||
	EOF
 | 
			
		||||
	if [ "$(uci -q get network.wan3)" != "" ]; then
 | 
			
		||||
		uci -q batch <<-EOF >/dev/null
 | 
			
		||||
			add_list vnstat.@vnstat[-1].interface="wan3"
 | 
			
		||||
			commit vnstat
 | 
			
		||||
		EOF
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$(uci -q get network.wan4)" != "" ]; then
 | 
			
		||||
		uci -q batch <<-EOF >/dev/null
 | 
			
		||||
			add_list vnstat.@vnstat[-1].interface="wan4"
 | 
			
		||||
			commit vnstat
 | 
			
		||||
		EOF
 | 
			
		||||
	fi
 | 
			
		||||
fi
 | 
			
		||||
rm -f /tmp/luci-indexcache
 | 
			
		||||
 | 
			
		||||
exit 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,38 @@ if [ "$(uci -q get sqm.wan1)" = "" ]; then
 | 
			
		|||
		set sqm.wan2.verbosity='5'
 | 
			
		||||
		commit sqm
 | 
			
		||||
	EOF
 | 
			
		||||
	if [ "$(uci -q get network.wan3)" != "" ]; then
 | 
			
		||||
		uci -q batch <<-EOF >/dev/null
 | 
			
		||||
			set sqm.wan3=queue
 | 
			
		||||
			set sqm.wan3.qdisc="fq_codel"
 | 
			
		||||
			set sqm.wan3.script="simple.qos"
 | 
			
		||||
			set sqm.wan3.qdisc_advanced='0'
 | 
			
		||||
			set sqm.wan3.linklayer='none'
 | 
			
		||||
			set sqm.wan3.enabled='0'
 | 
			
		||||
			set sqm.wan3.interface='wan1'
 | 
			
		||||
			set sqm.wan3.download=''
 | 
			
		||||
			set sqm.wan3.upload=''
 | 
			
		||||
			set sqm.wan3.debug_logging='0'
 | 
			
		||||
			set sqm.wan3.verbosity='5'
 | 
			
		||||
			commit sqm
 | 
			
		||||
		EOF
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$(uci -q get network.wan4)" != "" ]; then
 | 
			
		||||
		uci -q batch <<-EOF >/dev/null
 | 
			
		||||
			set sqm.wan4=queue
 | 
			
		||||
			set sqm.wan4.qdisc="fq_codel"
 | 
			
		||||
			set sqm.wan4.script="simple.qos"
 | 
			
		||||
			set sqm.wan4.qdisc_advanced='0'
 | 
			
		||||
			set sqm.wan4.linklayer='none'
 | 
			
		||||
			set sqm.wan4.enabled='0'
 | 
			
		||||
			set sqm.wan4.interface='wan1'
 | 
			
		||||
			set sqm.wan4.download=''
 | 
			
		||||
			set sqm.wan4.upload=''
 | 
			
		||||
			set sqm.wan4.debug_logging='0'
 | 
			
		||||
			set sqm.wan4.verbosity='5'
 | 
			
		||||
			commit sqm
 | 
			
		||||
		EOF
 | 
			
		||||
	fi
 | 
			
		||||
fi
 | 
			
		||||
rm -f /tmp/luci-indexcache
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue