summaryrefslogtreecommitdiffstats
path: root/etc/rc.d/atm2
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1998-10-06 19:24:31 +0000
committerphk <phk@FreeBSD.org>1998-10-06 19:24:31 +0000
commitb876394ab200eade9ffb65151afe135c80ca4370 (patch)
tree228ce8b47fbe9cf516dc93d5d4decc6921941a01 /etc/rc.d/atm2
parent28bef97c3eada8f5d78d30f575213106f74e2ad2 (diff)
downloadFreeBSD-src-b876394ab200eade9ffb65151afe135c80ca4370.zip
FreeBSD-src-b876394ab200eade9ffb65151afe135c80ca4370.tar.gz
Here are some scripts and man pages for configuring HARP ATM
interfaces. Reviewed by: phk Submitted by: Mike Spengler <mks@networkcs.com>
Diffstat (limited to 'etc/rc.d/atm2')
-rw-r--r--etc/rc.d/atm2175
1 files changed, 175 insertions, 0 deletions
diff --git a/etc/rc.d/atm2 b/etc/rc.d/atm2
new file mode 100644
index 0000000..42854c0
--- /dev/null
+++ b/etc/rc.d/atm2
@@ -0,0 +1,175 @@
+#!/bin/sh
+#
+
+# ATM networking startup script
+#
+# $Id$
+
+#
+# Initial interface configuration.
+# N.B. /usr is not mounted.
+#
+atm_pass1() {
+ # Locate all probed ATM adapters by scanning dmesg output
+ saveifs="${IFS}"
+ IFS=$IFS:
+ atmdev=`dmesg | while read dev junk; do
+ case ${dev} in
+ hea[0-9]|hea[0-9][0-9])
+ echo "${dev} "
+ ;;
+ hfa[0-9]|hfa[0-9][0-9])
+ echo "${dev} "
+ ;;
+ *)
+ continue
+ ;;
+ esac
+ done`
+ IFS="${saveifs}"
+
+ if [ -z "${atmdev}" ]; then
+ echo "No ATM adapters found."
+ return 0
+ fi
+
+ # Load microcode into FORE adapters (if needed)
+ if [ `expr "${atmdev}" : '.*hfa.*'` -ne 0 ]; then
+ fore_dnld -d /etc
+ fi
+
+ # Configure physical interfaces
+ ilmid=0
+ for phy in ${atmdev}; do
+ echo -n "Configuring ATM device ${phy}:"
+
+ # Define network interfaces
+ eval netif_args=\$atm_netif_${phy}
+ if [ -n "${netif_args}" ]; then
+ atm set netif ${phy} ${netif_args} || continue
+ else
+ echo "missing network interface definition"
+ continue
+ fi
+
+ # Override physical MAC address
+ eval macaddr_args=\$atm_macaddr_${phy}
+ if [ -n "${macaddr_args}" -a "${macaddr_args}" != "NO" ]; then
+ atm set mac ${phy} ${macaddr_args} || continue
+ fi
+
+ # Configure signalling manager
+ eval sigmgr_args=\$atm_sigmgr_${phy}
+ if [ -n "${sigmgr_args}" ]; then
+ atm attach ${phy} ${sigmgr_args} || continue
+ else
+ echo "missing signalling manager definition"
+ continue
+ fi
+
+ # Configure UNI NSAP prefix
+ eval prefix_args=\$atm_prefix_${phy}
+ if [ `expr "${sigmgr_args}" : '[uU][nN][iI].*'` -ne 0 ]; then
+ if [ -z "${prefix_args}" ]; then
+ echo "missing NSAP prefix for UNI interface"
+ continue
+ fi
+ if [ "${prefix_args}" = "ILMI" ]; then
+ ilmid=1
+ else
+ atm set prefix ${phy} ${prefix_args} || continue
+ fi
+ fi
+
+ atm_phy="${atm_phy} ${phy}"
+ echo "."
+ done
+
+ echo -n "Starting initial ATM daemons:"
+ # Start ILMI daemon (if needed)
+ if [ ${ilmid} -eq 1 ]; then
+ echo -n " ilmid"
+ ilmid
+ fi
+
+ echo "."
+ atm_pass1_done=YES
+}
+
+#
+# Finish up configuration.
+# N.B. /usr is not mounted.
+#
+atm_pass2() {
+ echo -n "Configuring ATM network interfaces:"
+
+ atm_scspd=0
+ atm_atmarpd=""
+
+ # Configure network interfaces
+ for phy in ${atm_phy}; do
+ eval netif_args=\$atm_netif_${phy}
+ set -- ${netif_args}
+ netname=$1
+ netcnt=$2
+ netindx=0
+ while [ ${netindx} -lt ${netcnt} ]; do
+
+ net="${netname}${netindx}"
+ netindx=`expr ${netindx} + 1`
+ echo -n " ${net}"
+
+ # Configure atmarp server
+ eval atmarp_args=\$atm_arpserver_${net}
+ if [ -n "${atmarp_args}" ]; then
+ atm set arpserver ${net} ${atmarp_args} || continue
+ fi
+ eval scsparp_args=\$atm_scsparp_${net}
+ if [ "X${scsparp_args}" = X"YES" ]; then
+ if [ "${atmarp_args}" != "local" ]; then
+ echo "local arpserver required for SCSP"
+ continue
+ fi
+ atm_atmarpd="${atm_atmarpd} ${net}"
+ atm_scspd=1
+ fi
+ done
+ done
+ echo "."
+
+ # Define any PVCs.
+ if [ "X${atm_pvcs}" != "X" ]; then
+ for i in ${atm_pvcs}; do
+ eval pvc_args=\$atm_pvc_${i}
+ atm add pvc ${pvc_args}
+ done
+ fi
+
+ # Define any permanent ARP entries.
+ if [ "X${atm_arps}" != "X" ]; then
+ for i in ${atm_arps}; do
+ eval arp_args=\$atm_arp_${i}
+ atm add arp ${arp_args}
+ done
+ fi
+ atm_pass2_done=YES
+}
+
+#
+# Start any necessary daemons.
+#
+atm_pass3() {
+ # Start SCSP daemon (if needed)
+ if [ ${atm_scspd} -eq 1 ]; then
+ echo -n " scspd"
+ scspd
+ fi
+
+ # Start ATMARP daemon (if needed)
+ if [ -n "${atm_atmarpd}" ]; then
+ echo -n " atmarpd"
+ atmarpd ${atm_atmarpd}
+ fi
+
+ atm_pass3_done=YES
+}
OpenPOWER on IntegriCloud