atm1 revision 113676
190075Sobrien#!/bin/sh 2117395Skan# 3169689Skan# Copyright (c) 2000 The FreeBSD Project 4132718Skan# All rights reserved. 590075Sobrien# 6132718Skan# Redistribution and use in source and binary forms, with or without 790075Sobrien# modification, are permitted provided that the following conditions 8132718Skan# are met: 9132718Skan# 1. Redistributions of source code must retain the above copyright 10132718Skan# notice, this list of conditions and the following disclaimer. 11132718Skan# 2. Redistributions in binary form must reproduce the above copyright 1290075Sobrien# notice, this list of conditions and the following disclaimer in the 13132718Skan# documentation and/or other materials provided with the distribution. 14132718Skan# 15132718Skan# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16132718Skan# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1790075Sobrien# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18132718Skan# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19132718Skan# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20169689Skan# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21169689Skan# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2290075Sobrien# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23132718Skan# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2490075Sobrien# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25132718Skan# SUCH DAMAGE. 26132718Skan# 2790075Sobrien# $FreeBSD: head/etc/rc.d/atm1 113676 2003-04-18 17:55:05Z mtm $ 28132718Skan# 29132718Skan 3090075Sobrien# PROVIDE: atm1 31132718Skan# REQUIRE: root 32132718Skan# BEFORE: netif 33132718Skan# KEYWORD: FreeBSD 34132718Skan 35132718Skan. /etc/rc.subr 36132718Skan 37132718Skanname="atm" 38132718Skanrcvar="atm_enable" 39132718Skanstart_cmd="atm_start" 40132718Skanstop_cmd=":" 41132718Skan 42132718Skan# ATM networking startup script 43132718Skan# 44132718Skan# Initial interface configuration. 45132718Skan# N.B. /usr is not mounted. 46132718Skan# 47132718Skanatm_start() 48132718Skan{ 49132718Skan # Locate all probed ATM adapters 50132718Skan atmdev=`atm sh stat int | while read dev junk; do 51132718Skan case ${dev} in 52132718Skan hea[0-9] | hea[0-9][0-9]) 53169689Skan echo "${dev} " 54169689Skan ;; 55169689Skan hfa[0-9] | hfa[0-9][0-9]) 56169689Skan echo "${dev} " 57169689Skan ;; 58169689Skan idt[0-9] | idt[0-9][0-9]) 5990075Sobrien echo "${dev} " 60169689Skan ;; 61169689Skan *) 62169689Skan continue 63169689Skan ;; 64169689Skan esac 65146895Skan done` 66146895Skan 67146895Skan if [ -z "${atmdev}" ]; then 68146895Skan echo 'No ATM adapters found' 69146895Skan return 0 7090075Sobrien fi 71132718Skan 72169689Skan # Load microcode into FORE adapters (if needed) 73132718Skan if [ `expr "${atmdev}" : '.*hfa.*'` -ne 0 ]; then 74132718Skan fore_dnld 75132718Skan fi 76132718Skan 77132718Skan # Configure physical interfaces 78132718Skan ilmid=0 79132718Skan for phy in ${atmdev}; do 80132718Skan echo -n "Configuring ATM device ${phy}:" 81169689Skan 82132718Skan # Define network interfaces 83132718Skan eval netif_args=\$atm_netif_${phy} 84132718Skan if [ -n "${netif_args}" ]; then 85132718Skan atm set netif ${phy} ${netif_args} || continue 86132718Skan else 87132718Skan echo ' missing network interface definition' 88132718Skan continue 89132718Skan fi 90169689Skan 91132718Skan # Override physical MAC address 92132718Skan eval macaddr_args=\$atm_macaddr_${phy} 93132718Skan if [ -n "${macaddr_args}" ]; then 94132718Skan case ${macaddr_args} in 95132718Skan [Nn][Oo] | '') 96132718Skan ;; 97132718Skan *) 98132718Skan atm set mac ${phy} ${macaddr_args} || continue 99132718Skan ;; 100132718Skan esac 101132718Skan fi 102132718Skan 103132718Skan # Configure signalling manager 104132718Skan eval sigmgr_args=\$atm_sigmgr_${phy} 105132718Skan if [ -n "${sigmgr_args}" ]; then 106169689Skan atm attach ${phy} ${sigmgr_args} || continue 107132718Skan else 108132718Skan echo ' missing signalling manager definition' 109132718Skan continue 110132718Skan fi 111132718Skan 112132718Skan # Configure UNI NSAP prefix 113132718Skan eval prefix_args=\$atm_prefix_${phy} 114132718Skan if [ `expr "${sigmgr_args}" : '[uU][nN][iI].*'` -ne 0 ]; then 115132718Skan if [ -z "${prefix_args}" ]; then 116132718Skan echo ' missing NSAP prefix for UNI interface' 117132718Skan continue 118132718Skan fi 119132718Skan 120132718Skan case ${prefix_args} in 121132718Skan ILMI) 122132718Skan ilmid=1 123132718Skan ;; 124132718Skan *) 125132718Skan atm set prefix ${phy} ${prefix_args} || continue 126132718Skan ;; 127132718Skan esac 128132718Skan fi 129132718Skan 130132718Skan atm_phy="${atm_phy} ${phy}" 131132718Skan echo '.' 132132718Skan done 133132718Skan 134132718Skan echo -n 'Starting initial ATM daemons:' 135103445Skan # Start ILMI daemon (if needed) 136132718Skan case ${ilmid} in 137103445Skan 1) 138132718Skan echo -n ' ilmid' 139132718Skan ilmid 140169689Skan ;; 141132718Skan esac 142132718Skan 143132718Skan echo '.' 144132718Skan} 145169689Skan 146132718Skanload_rc_config $name 147132718Skanrun_rc_command "$1" 148132718Skan