net-physical revision 6927f468b0af7710df000f6b16f6ee413e1e3007
0N/A# The contents of this file are subject to the terms of the 0N/A# Common Development and Distribution License (the "License"). 2362N/A# You may not use this file except in compliance with the License. 0N/A# See the License for the specific language governing permissions 0N/A# and limitations under the License. 0N/A# When distributing Covered Code, include this CDDL HEADER in each 0N/A# If applicable, add the following below this CDDL HEADER, with the 0N/A# fields enclosed by brackets "[]" replaced with your own identifying 0N/A# information: Portions Copyright [yyyy] [name of copyright owner] 2362N/A# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 0N/A# Use is subject to license terms. 0N/A# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T. 0N/A# All rights reserved. 0N/A# ident "%Z%%M% %I% %E% SMI" 0N/A# In a zone we need this service to be up, but all of the work 0N/A# it tries to do is irrelevant (and will actually lead to the service 0N/A# failing if we try to do it), so just bail out. 0N/A# Print warnings to console 0N/A# Make sure that the libraries essential to this stage of booting can be found. 0N/A# Cause ifconfig to not automatically start in.mpathd when IPMP groups are 0N/A# configured. This is not strictly necessary but makes it so that in.mpathd 0N/A# sure that /usr is mounted. 0N/A# Bring up link aggregations 0N/A# If the system was net booted by DHCP, hand DHCP management off to the 0N/A# DHCP agent (ifconfig communicates to the DHCP agent through the 0N/A# loopback interface). 4138N/A# The network initialization is done early to support diskless and 4138N/A# dataless configurations. For IPv4 interfaces that were configured by 4138N/A# the kernel (e.g. those on diskless machines) and not configured by 4138N/A# exists, and then reset the broadcast address based on the netmask. 4138N/A# All the IPv4 and IPv6 interfaces are plumbed before doing any 4138N/A# interface configuration. This prevents errors from plumb failures 4138N/A# getting mixed in with the configured interface lists that the script 4138N/A# Get the list of IPv4 interfaces to configure by breaking 0N/A if [
"$1" =
"xx0" ];
then 0N/A # For some unknown historical reason the xx0 0N/A # ifname is ignored. 0N/A# Get the list of IPv6 interfaces to configure by breaking 0N/A# Step through the IPv4 interface list and try to plumb every interface. 0N/A# Generate list of plumbed and failed IPv4 interfaces. 0N/A# Run autoconf to connect to a WLAN if the interface is a wireless one 0N/A# Step through the IPv6 interface list and plumb every interface. 0N/A# Generate list of plumbed and failed IPv6 interfaces. Each plumbed 0N/A# interface will be brought up later, after processing any contents of 0N/A# /etc/hostname file is not present or is empty, the ifconfig auto-dhcp 0N/A# / auto-revarp command will attempt to set the address, later. 0N/A# configuration of lo0. 0N/A echo "configuring IPv4 interfaces:\c" 0N/A# processing the hostname6 file, bring the interface up. If 0N/A# configuration of lo0. 0N/A echo "configuring IPv6 interfaces:\c" 0N/A# Run DHCP if requested. Skip boot-configured interface. 0N/A # First find the primary interface. Default to the first # interface if not specified. First primary interface found # "wins". Use care not to "reconfigure" a net-booted interface # configured using DHCP. Run through the list of interfaces # again, this time trying DHCP. echo "starting DHCP on primary interface $primary" # Exit code 4 means ifconfig timed out waiting for dhcpagent echo "starting DHCP on interface $1" # Exit code can't be timeout when wait is 0 # In order to avoid bringing up the interfaces that have # intentionally been left down, perform RARP only if the system # Process IPv4 and IPv6 interfaces that failed to plumb. Find an # alternative interface to host the addresses. # stage of booting will have access to NFS. '#'* |
'') ;;
# Ignore comments, empty lines # We tell smf this service is online if any of the following is true: # - no interfaces were configured for plumbing and no DHCP failures # - any non-loopback IPv4 interfaces are up and have a non-zero address # - there are any DHCP interfaces started # - any non-loopback IPv6 interfaces are up # If we weren't asked to configure any interfaces, exit # Config error if DHCP was attempted without plumbed interfaces # Any non-loopback IPv4 interfaces with usable addresses up? [
$addr !=
0.0.
0.0 ] &&
exit 0# Any DHCP interfaces started? # Any non-loopback IPv6 interfaces up? # This service was supposed to configure something yet didn't. Exit