mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Use uci config for routes only if setting for that is set
This commit is contained in:
parent
06ed97451f
commit
e23f5f8f8b
1 changed files with 81 additions and 49 deletions
|
@ -116,41 +116,50 @@ interface_multipath_settings() {
|
|||
[ -n "$ipaddr" ] && [ -n "$netmask" ] && netmask=`ipcalc.sh $ipaddr $netmask | sed -n '/NETMASK=/{;s/.*=//;s/ .*//;p;}'`
|
||||
[ -n "$ipaddr" ] && [ -n "$netmask" ] && network=`ipcalc.sh $ipaddr $netmask | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'`
|
||||
fi
|
||||
#ip rule del table $id > /dev/null 2>&1
|
||||
#ip route flush $id > /dev/null 2>&1
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete network.${config}_rule
|
||||
delete network.${config}_route
|
||||
delete network.${config}_route_default
|
||||
commit network
|
||||
EOF
|
||||
|
||||
if [ -n "$gateway" ] && [ -n "$network" ]; then
|
||||
if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete network.${config}_rule
|
||||
set network.${config}_rule=rule
|
||||
set network.${config}_rule.lookup=${id}
|
||||
set network.${config}_rule.priority=0
|
||||
set network.${config}_rule.src="${ipaddr}/32"
|
||||
delete network.${config}_route
|
||||
set network.${config}_route=route
|
||||
set network.${config}_route.interface=${config}
|
||||
set network.${config}_route.target=${network}
|
||||
set network.${config}_route.netmask=${netmask}
|
||||
set network.${config}_route.table=${id}
|
||||
delete network.${config}_route_default
|
||||
set network.${config}_route_default=route
|
||||
set network.${config}_route_default.interface=${config}
|
||||
set network.${config}_route_default.target='0.0.0.0'
|
||||
set network.${config}_route_default.netmask='0.0.0.0'
|
||||
set network.${config}_route_default.gateway=$gateway
|
||||
set network.${config}_route_default.table=${id}
|
||||
commit network
|
||||
EOF
|
||||
#ip rule add from $ipaddr table $id pref 0
|
||||
#ip route replace $network/$netmask dev $iface scope link table $id
|
||||
#ip route replace default via $gateway dev $iface table $id
|
||||
#ip route flush $id
|
||||
else
|
||||
ip rule del table $id > /dev/null 2>&1
|
||||
ip route flush $id > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -n "$gateway" ] && [ -n "$network" ]; then
|
||||
if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete network.${config}_rule
|
||||
set network.${config}_rule=rule
|
||||
set network.${config}_rule.lookup=${id}
|
||||
set network.${config}_rule.priority=0
|
||||
set network.${config}_rule.src="${ipaddr}/32"
|
||||
set network.${config}_rule.created=mptcp
|
||||
delete network.${config}_route
|
||||
set network.${config}_route=route
|
||||
set network.${config}_route.interface=${config}
|
||||
set network.${config}_route.target=${network}
|
||||
set network.${config}_route.netmask=${netmask}
|
||||
set network.${config}_route.table=${id}
|
||||
set network.${config}_route.created=mptcp
|
||||
delete network.${config}_route_default
|
||||
set network.${config}_route_default=route
|
||||
set network.${config}_route_default.interface=${config}
|
||||
set network.${config}_route_default.target='0.0.0.0'
|
||||
set network.${config}_route_default.netmask='0.0.0.0'
|
||||
set network.${config}_route_default.gateway=$gateway
|
||||
set network.${config}_route_default.table=${id}
|
||||
set network.${config}_route_default.created=mptcp
|
||||
commit network
|
||||
EOF
|
||||
else
|
||||
ip rule add from $ipaddr table $id pref 0
|
||||
ip route replace $network/$netmask dev $iface scope link table $id
|
||||
ip route replace default via $gateway dev $iface table $id
|
||||
ip route flush $id
|
||||
fi
|
||||
|
||||
config_get mode "$config" multipath "off"
|
||||
[ "$mode" = "master" ] && {
|
||||
|
@ -190,32 +199,47 @@ interface_multipath_settings() {
|
|||
network6=`ipcalc $ip6addr | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'`
|
||||
fi
|
||||
fi
|
||||
#ip -6 rule del table 6$id > /dev/null 2>&1
|
||||
#ip -6 route flush 6$id > /dev/null 2>&1
|
||||
if [ -n "$ip6addr" ] && [ -n "$gateway6" ] && [ -n "$network6" ]; then
|
||||
if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete network.${config}_rule6
|
||||
set network.${config}_rule6=rule6
|
||||
set network.${config}_rule6.lookup=6${id}
|
||||
set network.${config}_rule6.priority=0
|
||||
set network.${config}_rule6.src="${ipaddr6}/127"
|
||||
delete network.${config}_route6
|
||||
set network.${config}_route6=route6
|
||||
set network.${config}_route6.interface=${config}
|
||||
set network.${config}_route6.target=${network6}/${netmask6}
|
||||
set network.${config}_route6.table=6${id}
|
||||
delete network.${config}_route6_default
|
||||
set network.${config}_route6_default=route6
|
||||
set network.${config}_route6_default.interface=${config}
|
||||
set network.${config}_route6_default.target='::'
|
||||
set network.${config}_route6_default.gateway=$gateway6
|
||||
set network.${config}_route6_default.table=6${id}
|
||||
commit network
|
||||
EOF
|
||||
#ip -6 rule add from $ip6addr table 6$id pref 0
|
||||
#ip -6 route replace $network6/$netmask6 dev $iface scope link table 6$id
|
||||
#ip -6 route replace default via $gateway6 dev $iface table 6$id
|
||||
#ip -6 route flush 6$id
|
||||
else
|
||||
ip -6 rule del table 6$id > /dev/null 2>&1
|
||||
ip -6 route flush 6$id > /dev/null 2>&1
|
||||
fi
|
||||
if [ -n "$ip6addr" ] && [ -n "$gateway6" ] && [ -n "$network6" ]; then
|
||||
if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete network.${config}_rule6
|
||||
set network.${config}_rule6=rule6
|
||||
set network.${config}_rule6.lookup=6${id}
|
||||
set network.${config}_rule6.priority=0
|
||||
set network.${config}_rule6.src="${ipaddr6}/127"
|
||||
set network.${config}_rule6.created=mptcp
|
||||
delete network.${config}_route6
|
||||
set network.${config}_route6=route6
|
||||
set network.${config}_route6.interface=${config}
|
||||
set network.${config}_route6.target=${network6}/${netmask6}
|
||||
set network.${config}_route6.table=6${id}
|
||||
set network.${config}_route6.created=mptcp
|
||||
delete network.${config}_route6_default
|
||||
set network.${config}_route6_default=route6
|
||||
set network.${config}_route6_default.interface=${config}
|
||||
set network.${config}_route6_default.target='::'
|
||||
set network.${config}_route6_default.gateway=$gateway6
|
||||
set network.${config}_route6_default.table=6${id}
|
||||
set network.${config}_route6_default.created=mptcp
|
||||
commit network
|
||||
EOF
|
||||
else
|
||||
ip -6 rule add from $ip6addr table 6$id pref 0
|
||||
ip -6 route replace $network6/$netmask6 dev $iface scope link table 6$id
|
||||
ip -6 route replace default via $gateway6 dev $iface table 6$id
|
||||
ip -6 route flush 6$id
|
||||
fi
|
||||
|
||||
config_get mode "$config" multipath "off"
|
||||
[ "$mode" = "master" ] && {
|
||||
|
@ -248,6 +272,10 @@ set_multipath() {
|
|||
done
|
||||
}
|
||||
|
||||
remove() {
|
||||
uci -q delete network.$1
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local intf=$1
|
||||
local id count intfmaster
|
||||
|
@ -257,6 +285,10 @@ start_service() {
|
|||
mptcpintf=""
|
||||
master=""
|
||||
config_load network
|
||||
config_foreach remove route
|
||||
config_foreach remove route6
|
||||
config_foreach remove rule
|
||||
config_foreach remove rule6
|
||||
config_foreach interface_multipath_settings interface $intf
|
||||
set_multipath
|
||||
# If no master is defined, one interface is defined as master
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue