| 
 |  | 
The strcf file contains several functions that perform various configuration operations, along with a sample boot function. Normally, no function should be modified to customize the configuration for a given installation. In some cases, however, it may be necessary to change existing functions or add new functions.
The tp and linkint functions perform basic linking operations. The add_interface, add_interface_SNAP, and add_loop functions configure different types of interfaces.
   #
   # tp - configure transport provider (i.e. tcp, udp, icmp)
   # usage: tp devname
   #
   tp {
   	p = open $1
   	ip = open /dev/ip
   	plink p ip
   	close p
   }
   #
   # linkint - link interface to ip or arp
   # usage: linkint top bottom ifname flags
   #
   linkint {
   	x = plink $1 $2
   	sifname $1 x $3 $4
   }
   #
   # add_interface - configure ethernet-type interface for cloning driver with
   #	one major per interface. Arguments are already concatenated with
   #	the major device number (such as emd0). It is assumed that boot has
   #	already run. We open /dev/ip and link the device beneath it.
   #
   # usage: add_interface compat_ip_fd dev ifname
   #
   add_interface {
   	dev = open $2
   	addr = dlbind dev 0x800		# For Ethernet encoding
   	ip = open /dev/ip
   	linkint ip dev $3 0x4042
   	close ip
   	dev2 = open $2
   	addr = dlbind dev2 0x806	# For Ethernet encoding
   	arp = open /dev/arp
   	sifhrd	arp ether		# hardware interface is ethernet
   	linkint arp dev2 $3 0x4042
   	sifaddr arp $3 addr
   	close arp
   	close dev2
   }
   #
   # add_interface_SNAP - configure ethernet-type interface for cloning driver
   #	with one major per interface. This version sets up 802.n framing.
   #	Arguments are already concatenated with the major device number
   #	(such as emd0). It is assumed that boot has already run.
   #	We bind the device to the SNAP SAP for ip and link the device
   #	under ip. We also bind the device to the SNAP SAP for arp and link
   #	the device under arp.
   #
   # usage: add_interface_SNAP compat_ip_fd dev ifname
   #
   add_interface_SNAP {
   	dev = open $2
   	addr = dlbind dev 0xaa		# For IEEE 802 encoding
   	dlsubsbind dev 0x800
   	ip = open /dev/ip
   	linkint ip dev $3 0x4042
   	close ip
   	dev2 = open $2
   	addr = dlbind dev2 0xaa		# For IEEE 802 encoding
   	dlsubsbind dev2 0x806
   	arp = open /dev/arp
   	sifhrd	arp ieee		# hardware interface is ieee802 
   	linkint arp dev2 $3 0x4042
   	sifaddr arp $3 addr
   	close arp
   	close dev2
   }
   #
   # add_loop - configure loopback device. It is assumed that
   #	boot has already run. We will open /dev/ip ourselves
   #	and link the device beneath it.
   #
   # usage: add_loop compat_ip_fd compat_dev ifname
   #
   #
   add_loop {
   	dev = open $2
   	addr = dlbind dev 0x800
   	ip = open /dev/ip
   	linkint ip dev $3 0x4048
   	close ip
   	close dev
   }
   #
   # boot - boot time configuration
   #
   boot {
   	#
   	# queue params
   	#
   	initqp /dev/udp rq 8192 49152
   	initqp /dev/ip muxrq 8192 49152 muxwq 8192 49152
   	initqp /dev/tcp muxrq 8192 49152 muxwq 8192 49152
   	#
   	# transport
   	#
   	tp /dev/tcp
   	tp /dev/udp
   	tp /dev/icmp
   	tp /dev/igmp
   	tp /dev/ipip
   	tp /dev/rip
   }