X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe/blobdiff_plain/90b20d79a9ec5b8a44bb92c8abdb21948aeb062c..a69f441795eff547976f0556f45814942cd35bbe:/svc/tripe-ifup.in diff --git a/svc/tripe-ifup.in b/svc/tripe-ifup.in index 8ca0c99c..79f5d469 100644 --- a/svc/tripe-ifup.in +++ b/svc/tripe-ifup.in @@ -53,7 +53,7 @@ case "${P_IFNAME+set}" in esac ###-------------------------------------------------------------------------- -### Configure the point-to-point link. +### Configure the link. ## Split local addresses into v4 and v6 lists. unset l4addr l6addr @@ -86,7 +86,7 @@ case $#,${r4addr+set} in ;; esac for a in "$@"; do - ip addr add "$a/32" dev "$ifname" + ip addr add "$a" dev "$ifname" haveaddr4=t done @@ -97,15 +97,34 @@ set -- $l6addr case $have6,$# in t,[1-9]*) for a in "$@"; do - ip addr add "$a/128" dev "$ifname" + ip addr add "$a" dev "$ifname" haveaddr6=t done case ${r6addr+set} in - set) ip route add $r6addr/128 dev "$ifname" ;; + set) ip route add $r6addr proto static dev "$ifname" ;; esac ;; esac +###-------------------------------------------------------------------------- +### Bring the interface up. + +case $haveaddr4,$haveaddr6 in + nil,nil) + ;; + *) + case "${P_MTU+set}" in + set) + mtu=$P_MTU;; + *) + pathmtu=$(pathmtu "$addr") + mtu=$(expr "$pathmtu" - 29 - $A_BULK_OVERHEAD) + ;; + esac + ip link set dev "$ifname" up mtu "$mtu" + ;; +esac + ###-------------------------------------------------------------------------- ### Set up routing. @@ -123,7 +142,7 @@ set -- $route4 case $haveaddr4,$# in t,[1-9]*) for p in "$@"; do - ip route add $p via "$r4addr" + ip route add $p proto static via "$r4addr" done ;; esac @@ -133,30 +152,11 @@ set -- $route6 case $haveaddr6,$# in t,[1-9]*) for p in "$@"; do - ip route add $p via "$r6addr" + ip route add $p proto static via "$r6addr" done ;; esac -###-------------------------------------------------------------------------- -### Bring the interface up. - -case $haveaddr4,$haveaddr6 in - nil,nil) - ;; - *) - case "${P_MTU+set}" in - set) - mtu=$P_MTU;; - *) - pathmtu=$(pathmtu "$addr") - mtu=$(expr "$pathmtu" - 33 - $A_CIPHER_BLKSZ - $A_MAC_TAGSZ) - ;; - esac - ip link set dev "$ifname" up mtu "$mtu" - ;; -esac - ###-------------------------------------------------------------------------- ### Maybe invoke a follow-on script.