Index: src/etc/network.subr =================================================================== RCS file: /home/ncvs/src/etc/network.subr,v retrieving revision 1.176 diff -u -r1.176 network.subr --- src/etc/network.subr 29 Oct 2006 13:29:49 -0000 1.176 +++ src/etc/network.subr 9 Feb 2007 00:21:13 -0000 @@ -455,26 +455,90 @@ debug "Destroyed clones: ${_list}" } +# Create netgraph nodes. +# +ng_mkpeer() { + ngctl -f - 2> /dev/null </dev/null 2>&1 + ifconfig $i tunnel ${peers} + ifconfig $i up + ;; + esac + done +} + +# ng_fec_create ifn +# Configure Fast EtherChannel for interface $ifn. Returns 0 if FEC +# arguments were found and configured; returns !0 otherwise. +ng_fec_create() { + local req_iface iface bogus + req_iface="$1" + + ngctl shutdown ${req_iface}: > /dev/null 2>&1 + + bogus="" + while true; do + iface=`ng_create_one fec dummy fec` + if [ -z "${iface}" ]; then + exit 2 + fi + if [ "${iface}" = "${req_iface}" ]; then + echo ${iface} + break + fi + bogus="${bogus} ${iface}" + done + + for iface in ${bogus}; do + ngctl shutdown ${iface}: + done +} + +fec_up() { + for i in ${fec_interfaces}; do + ng_fec_create $i + for j in `get_if_var $i fecconfig_IF`; do + case ${j} in '') continue ;; *) - ifconfig $i create >/dev/null 2>&1 - ifconfig $i tunnel ${peers} - ifconfig $i up + ngctl msg ${i}: add_iface "\"${j}\"" ;; esac done - ;; - esac + done } #