STRIP(4) | Device Drivers Manual | STRIP(4) |
strip
—
pseudo-device strip
strip
driver takes outbound network packets,
encapsulates them using the Metricom “star mode” framing, and
sends the packets out an RS-232 interface to a Metricom
Ricochet packet radio. Packets arriving from the packet
radio via the serial link are decapsulated and then passed up to the local
host's networking stack.
strip
is an acronym for
STarmode Radio IP.
The strip
interfaces can be created by
using the ifconfig(8)
create
command. Each strip
interface is a pseudo-device driver for the Metricom
Ricochet packet radio, operating in peer-to-peer packet
mode.
In many ways, the strip
driver is very
much like the sl(4) SLIP
pseudo-device driver. A strip
device is attached to
a tty line with slattach(8).
Once attached, the interface is configured via
ifconfig(8). The major
difference between the sl(4) SLIP
pseudo-device driver and the strip
driver is that
SLIP works only between two hosts over a dedicated point-to-point
connection.
In contrast, strip
sends packets to a
frequency-hopping packet radio, which can address packets to any peer
Metricom Ricochet packet radio, rather than just to a
single host at the other end of a point-to-point line. Thus, one
strip
pseudo-device is usually sufficient for any
kernel.
In other respects, a strip
interface is
rather like an Ethernet interface. Packets are individually addressed, and
subsequent packets can be sent independently to different MAC addresses.
However, the “star mode” framing and MAC addressing are not in
any way compatible with Ethernet. Broadcast or multicast to more than one
packet radio is not possible, due to the independent frequency-hopping
operation of the packet radios. The interface flags
IFF_POINTOPOINT
and
IFF_BROADCAST
are not supported on the
strip
interface.
In other words, strip
implements a
multiple-access, non-broadcast device, accessed via an RS-232 serial line,
using a proprietary packet framing scheme.
This version of the strip
driver maps IP
addresses to Metricom Ricochet packet radio addresses
using statically configured entries in the normal routing table. These
entries map IP addresses of peer packet radios to the MAC-level addresses.
The exact syntax of this mapping and an example are discussed below. The
Internet Assigned Numbers Authority (IANA) has allocated an ARP type code
for use with STRIP. A future version of this driver will support
arp(4) to obtain the IP address
of reachable peer packet radios dynamically.
Radio addresses are encoded using the hex equivalent of the packet radio's decimal ASCII address. For example, the following route command will configure a routing entry to a packet radio with a MAC address of 1234-5678, and an IP address 10.11.12.13, reachable via the strip0 interface:
route add -host 10.11.12.13 -link strip0:1:2:3:4:5:6:7:8
Generalising from this example to other IP addresses and to other 8-digit MAC addresses should be clear.
ATS304=115200
to set
the serial baudrate to the specified number (or 0 for autobaud). The command
AT&W
will then save the current packet radio state
in non-volatile memory.
Metricom Ricochet packet radios can operate in
either “modem-emulation” mode or in packet mode (i.e.
“star mode”). The strip
driver
automatically detects if the packet radio has fallen out of “star
mode”, and resets it back into “star mode”, if the baud
rate was set correctly by
slattach(8).
strip
was originally developed for the Linux kernel by
Stuart Cheshire of Stanford's Operating Systems and Networking group, as part
of Mary Baker's MosquitoNet project.
This strip
driver was ported to
NetBSD by Jonathan Stone at Stanford's Distributed
Systems Group and first distributed with NetBSD
1.2.
strip
is IP-only. Encapsulations for
AppleTalk and ARP have been defined, but are not yet implemented in this
driver.
strip
has not been widely tested on a
variety of lower-level serial drivers.
The detection and resetting of packet radios that crash out of
“star mode” does not always work in this version of the
driver. One workaround is to kill the
slattach(8) process,
ifconfig(8) the
strip
interface down, and then start a new slattach
and rerun ifconfig to enable the interface again.
December 5, 2004 | NetBSD 9.4 |