Amiga Unix — 68040 · 68060

Manual pages › File formats and configuration files (4)

strcf(4)

STREAMS Configuration File for STREAMS TCP/IP

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

strcf - STREAMS Configuration File for STREAMS TCP/IP

DESCRIPTION

/etc/strcf contains the script that is executed by slink(1M) to perform the STREAMS configuration operations required for STREAMS TCP/IP.

The standard /etc/strcf file contains several functions that perform various configuration operations, along with a sample boot function. Normally, only the boot function must 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 following functions perform basic linking operations:

The tp function is used to set up the link between a transport provider, such as TCP, and IP.

#
# tp - configure transport provider (i.e. tcp, udp, icmp)
# usage: tp devname
#
tp {
     p = open $1
     ip = open /dev/ip
     link p ip
}

The linkint function links the specified streams and does a sifname operation with the given name.

#
# linkint - link interface to ip or arp
# usage: linkint top bottom ifname
#
linkint {
     x = link $1 $2
     sifname $1 x $3
}

The aplinkint function performs the same function as linkint for an interface that uses the app module.

#
# aplinkint - like linkint, but app is pushed on dev
# usage: aplinkint top bottom ifname
#
aplinkint {
     push $2 app
     linkint $1 $2 $3

}

The following functions are used to configure different types of Ethernet interfaces:

The uenet function is used to configure an Ethernet interface for a cloning device driver that uses the unit select ioctl to select the desired interface. The interface name is constructed by concatenating the supplied prefix and the unit number.

#
# uenet - configure ethernet-type interface for cloning driver using
#         unit select
# usage: uenet ip-fd devname ifprefix unit
#
uenet {
     ifname = strcat $3 $4
     dev = open $2
     unitsel dev $4
     aplinkint $1 dev ifname
     dev = open $2
     unitsel dev $4
     arp = open /dev/arp
     linkint arp dev ifname
}

The denet function performs the same function as uenet, except that DL_ATTACH is used instead of unit select.

#
# denet - configure ethernet-type interface for cloning driver using
#         DL_ATTACH
# usage: denet ip-fd devname ifprefix unit
#
denet {
     ifname = strcat $3 $4
     dev = open $2
     dlattach dev $4
     aplinkint $1 dev ifname
     dev = open $2
     dlattach dev $4
     arp = open /dev/arp
     linkint arp dev ifname
}

The cenet function is used to configure an Ethernet interface for a cloning device driver that uses a different major number for each interface. The device name is formed by concatenating the supplied device name prefix and the unit number. The interface name is formed in a similar manner using the interface name prefix.

#
# cenet - configure ethernet-type interface for cloning driver with
#         one major per interface
# usage: cenet ip-fd devprefix ifprefix unit
#
cenet {
     devname = strcat $2 $4
     ifname = strcat $3 $4
     dev = open devname
     aplinkint $1 dev ifname
     dev = open devname
     arp = open /dev/arp
     linkint arp dev ifname
}

The senet function is used to configure an Ethernet interface for a non-cloning device driver. Two different device nodes must be specified for IP and ARP.

#
# senet - configure ethernet-type interface for non-cloning driver
# usage: senet ip-fd ipdevname arpdevname ifname
#
senet {
     dev = open $2
     aplinkint $1 dev $4
     dev = open $3
     arp = open /dev/arp
     linkint arp dev $4
}

The senetc function is like senet, except that it allows the specification of a convergence module to be used with the ethernet driver (such as, for the 3B2 emd driver).

#
# senetc - configure ethernet-type interface for non-cloning driver
#          using convergence module
# usage: senetc ip-fd convergence ipdevname arpdevname ifname
#
senetc {
     dev = open $3
     push dev $2
     aplinkint $1 dev $5
     dev = open $4
     push dev $2
     arp = open /dev/arp
     linkint arp dev $5
}

The loopback function is used to configure the loopback interface.

#
# loopback - configure loopback device
# usage: loopback ip-fd
#
loopback {
     dev = open /dev/loop
     linkint $1 dev lo0
}

The slip function is used to configure a SLIP interface. This function is not normally executed at boot time. Rather, the slattach(1M) command runs slink specifying slip on the command line.

#
# slip - configure slip interface
# usage: slip unit
#
slip {
     ip = open /dev/ip
     s = open /dev/slip
     ifname = strcat sl $1
     unitsel s $1
     linkint ip s ifname
}

The boot function is called by default when slink is executed. Normally, only the interfaces section and possibly the queue params section will have to be customized for a given installation. Examples are provided for the various Ethernet driver types.

#
# boot - boot time configuration
#
boot {
     #
     # queue params
     #
     initqp /dev/udp rq 8192 40960
     initqp /dev/ip muxrq 8192 40960 rq 8192 40960
     #
     # transport
     #
     tp /dev/tcp
     tp /dev/udp
     tp /dev/icmp
     tp /dev/rawip
}

FILES

/etc/strcf

SEE ALSO

slattach(1M), slink(1M).