diff options
author | Gordon Tetlow <gordon@FreeBSD.org> | 2002-07-18 05:00:17 +0000 |
---|---|---|
committer | Gordon Tetlow <gordon@FreeBSD.org> | 2002-07-18 05:00:17 +0000 |
commit | 242bd45fb4b7dc6833aceda61e20ebaa6a0d499a (patch) | |
tree | 375610a72b2ea83aa73c7881302e5615e9cb7552 /etc/rc.d/atm3 | |
parent | 8abac11f6e0946da3add0b67a0f7d5902751e11d (diff) | |
download | src-242bd45fb4b7dc6833aceda61e20ebaa6a0d499a.tar.gz src-242bd45fb4b7dc6833aceda61e20ebaa6a0d499a.zip |
Merge in all the changes that Mike Makonnen has been maintaining for a
while. This is only the script pieces, the glue for the build comes next.
Submitted by: Mike Makonnen <makonnen@pacbell.net>
Reviewed by: silence on -current and -hackers
Prodded by: rwatson
Notes
Notes:
svn path=/head/; revision=100280
Diffstat (limited to 'etc/rc.d/atm3')
-rw-r--r-- | etc/rc.d/atm3 | 189 |
1 files changed, 20 insertions, 169 deletions
diff --git a/etc/rc.d/atm3 b/etc/rc.d/atm3 index 1c53c7fc45f4..6cbb206fb526 100644 --- a/etc/rc.d/atm3 +++ b/etc/rc.d/atm3 @@ -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 |