ifupdown: support metric for static default gw
This is useful when you have multiple ISPs with failover. It allows setting the priority of the static gateway and makes it possible to specify multiple static gateways. The ubuntu ifupdown supports it. function old new delta .rodata 116725 116797 +72 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 72/0) Total: 72 bytes text data bss dec hex filename 953343 7313 8984 969640 ecba8 busybox_old 953415 7313 8984 969712 ecbf0 busybox_unstripped Signed-off-by: Natanael Copa <natanael.copa@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
8cce1b3ad8
commit
cfcb1dac83
@ -403,11 +403,11 @@ static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec)
|
|||||||
result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec);
|
result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec);
|
||||||
result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
|
result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
|
||||||
/* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */
|
/* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */
|
||||||
result += execute("[[ip route add ::/0 via %gateway%]]", ifd, exec);
|
result += execute("[[ip route add ::/0 via %gateway%]][[ prio %metric%]]", ifd, exec);
|
||||||
# else
|
# else
|
||||||
result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec);
|
result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec);
|
||||||
result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec);
|
result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec);
|
||||||
result += execute("[[route -A inet6 add ::/0 gw %gateway%]]", ifd, exec);
|
result += execute("[[route -A inet6 add ::/0 gw %gateway%[[ metric %metric%]]]]", ifd, exec);
|
||||||
# endif
|
# endif
|
||||||
return ((result == 3) ? 3 : 0);
|
return ((result == 3) ? 3 : 0);
|
||||||
}
|
}
|
||||||
@ -490,7 +490,7 @@ static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec)
|
|||||||
result = execute("ip addr add %address%/%bnmask%[[ broadcast %broadcast%]] "
|
result = execute("ip addr add %address%/%bnmask%[[ broadcast %broadcast%]] "
|
||||||
"dev %iface%[[ peer %pointopoint%]][[ label %label%]]", ifd, exec);
|
"dev %iface%[[ peer %pointopoint%]][[ label %label%]]", ifd, exec);
|
||||||
result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
|
result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
|
||||||
result += execute("[[ip route add default via %gateway% dev %iface%]]", ifd, exec);
|
result += execute("[[ip route add default via %gateway% dev %iface%[[ prio %metric%]]]]", ifd, exec);
|
||||||
return ((result == 3) ? 3 : 0);
|
return ((result == 3) ? 3 : 0);
|
||||||
# else
|
# else
|
||||||
/* ifconfig said to set iface up before it processes hw %hwaddress%,
|
/* ifconfig said to set iface up before it processes hw %hwaddress%,
|
||||||
@ -500,7 +500,7 @@ static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec)
|
|||||||
result += execute("ifconfig %iface% %address% netmask %netmask%"
|
result += execute("ifconfig %iface% %address% netmask %netmask%"
|
||||||
"[[ broadcast %broadcast%]][[ pointopoint %pointopoint%]] ",
|
"[[ broadcast %broadcast%]][[ pointopoint %pointopoint%]] ",
|
||||||
ifd, exec);
|
ifd, exec);
|
||||||
result += execute("[[route add default gw %gateway% %iface%]]", ifd, exec);
|
result += execute("[[route add default gw %gateway%[[ metric %metric%]] %iface%]]", ifd, exec);
|
||||||
return ((result == 3) ? 3 : 0);
|
return ((result == 3) ? 3 : 0);
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user