summaryrefslogtreecommitdiffstats
path: root/etc/rc.d/atm3.sh
diff options
context:
space:
mode:
Diffstat (limited to 'etc/rc.d/atm3.sh')
-rw-r--r--etc/rc.d/atm3.sh189
1 files changed, 20 insertions, 169 deletions
diff --git a/etc/rc.d/atm3.sh b/etc/rc.d/atm3.sh
index 1c53c7f..6cbb206 100644
--- a/etc/rc.d/atm3.sh
+++ b/etc/rc.d/atm3.sh
@@ -27,178 +27,22 @@
# $FreeBSD$
#
+# Start ATM daemons
+# XXX - This script uses global variables set by scripts atm1 and atm2.
+# Ideally this shouldn't be the case.
#
-# ATM networking startup script
-#
-# Initial interface configuration.
-# N.B. /usr is not mounted.
-#
-atm_pass1() {
- # Locate all probed ATM adapters
- atmdev=`atm sh stat int | 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`
-
- 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
- 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}" ]; then
- case ${macaddr_args} in
- [Nn][Oo] | '')
- ;;
- *)
- atm set mac ${phy} ${macaddr_args} || continue
- ;;
- esac
- 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
+# PROVIDE: atm3
+# REQUIRE: atm2
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
- case ${prefix_args} in
- ILMI)
- ilmid=1
- ;;
- *)
- atm set prefix ${phy} ${prefix_args} || continue
- ;;
- esac
- fi
+. /etc/rc.subr
- atm_phy="${atm_phy} ${phy}"
- echo '.'
- done
+atm3_start()
+{
+ echo -n 'Starting ATM daemons:'
- echo -n 'Starting initial ATM daemons:'
- # Start ILMI daemon (if needed)
- case ${ilmid} in
- 1)
- echo -n ' ilmid'
- ilmid
- ;;
- esac
-
- 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=$((${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}
-
- case ${scsparp_args} in
- [Yy][Ee][Ss])
- case ${atmarp_args} in
- local)
- ;;
- *)
- echo ' local arpserver required for SCSP'
- continue
- ;;
- esac
-
- atm_atmarpd="${atm_atmarpd} ${net}"
- atm_scspd=1
- esac
- done
- done
- echo '.'
-
- # Define any PVCs.
- if [ -n "${atm_pvcs}" ]; 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 [ -n "${atm_arps}" ]; 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)
case ${atm_scspd} in
1)
@@ -212,6 +56,13 @@ atm_pass3() {
echo -n ' atmarpd'
atmarpd ${atm_atmarpd}
fi
-
- atm_pass3_done=YES
+ echo '.'
}
+
+load_rc_config "XXX"
+
+case ${atm_enable} in
+[Yy][Ee][Ss])
+ atm3_start
+ ;;
+esac
OpenPOWER on IntegriCloud