ifupdown-ng/executor-scripts/linux/static
Maximilian Wilhelm 6dc43a2bb4 Let's use "point-to-point" and map "pointopoint" to it.
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-06 04:03:27 +02:00

52 lines
1 KiB
Bash
Executable file

#!/bin/sh
set -e
[ -z "$VERBOSE" ] || set -x
[ -z "$IF_METRIC" ] && IF_METRIC="1"
[ -n "$IF_VRF_TABLE" ] && VRF_TABLE="table $IF_VRF_TABLE"
[ -n "$IF_VRF_MEMBER" ] && VRF_TABLE="vrf $IF_VRF_MEMBER"
[ -n "$IF_METRIC" ] && METRIC="metric $IF_METRIC"
addr_family() {
if [ "$1" != "${1#*[0-9].[0-9]}" ]; then
echo "-4"
elif [ "$1" != "${1#*:[0-9a-fA-F]}" ]; then
echo "-6"
else
exit 1
fi
}
configure_addresses() {
for i in $(ifquery -p address -i $INTERFACES_FILE $IFACE); do
addrfam=$(addr_family $i)
if [ "${IF_POINT_TO_POINT}" -a "${addrfam}" = "-4" ]; then
PEER="peer ${IF_POINT_TO_POINT}"
else
PEER=""
fi
${MOCK} ip $addrfam addr $1 $i $PEER dev $IFACE
done
}
configure_gateways() {
for i in $(ifquery -p gateway -i $INTERFACES_FILE $IFACE); do
addrfam=$(addr_family $i)
${MOCK} ip $addrfam route $1 default via $i $VRF_TABLE $METRIC dev $IFACE
done
}
case "$PHASE" in
up)
configure_addresses add
configure_gateways add
;;
down)
configure_gateways del
configure_addresses del
;;
*) exit 0 ;;
esac