TreehouseTechnologies > Articles > STRIP - Networking - Databanks

What is STRIP?

STRIP is a networking protocol that allows IP traffic to be exchanged between Metricom Ricochet packet radios using Metricom's Star Mode protocol. STRIP is a part of Stanford University's MosquitoNet project, and they have several pages dedicated to it.

What hardware supports STRIP?

Most Metricom Ricochet-based radio modems support STRIP. The one exception I've encountered is the Sierra Wireless AirCard 400. The Windows drivers for this card only support real network connections, and as of yet, there are no Linux drivers. The other Ricochet-based PCMCIA card that I'm aware of, the Novatel Wireless Merlin, works fine. It is recognized as a serial port by Linux, which is ideal. As for the external models, most support either USB or plain serial connections. The USB mode (as well as the serial mode, obviously) is supported by Linux.

Is STRIP reliable?

Maybe. There are a few issues with STRIP, some have been addressed, some are likely more a result of flaky Ricochet modem behaviors. Firstly, the original Ricochet modems had 8-digit modem numbers (divided into two groups of four using a hyphen). This modem number is unique and is used to address other modems while in Star Mode and when attempting to create a point-to-point connection between two modems. The original STRIP driver was designed only for these 8-digit modem numbers. Since then, Metricom released modems containing 10 and 11 digits, and the original STRIP driver (the one that is part of the real Linux kernel) does not handle them properly. See below for two fixes to this problem.

I have also had problems with the Star Mode on radios seemingly shutting down with a error message such as

st0: Error Msg:   "*!ERROR*ERR_012 [] Failed to transmit packet0E44"
often requiring a reboot of the radio (and the problems with go with it) to correct.

How can I hack STRIP to use radios with 10 and 11 digit modem numbers?

There are two ways that I have found, and I'm strongly biased in favor of one of them.

One: Use a patched version of STRIP. Patches for the kernel and the net-utils package are available from this site. They patch the kernel and user level handling of the modem numbers (abstracted as MAC addresses) to ensure that they are translated properly for 10 and 11 digit modem numbers. The site claims to support 11 digit numbers, however, I was unable to make this work. And therefore was forced to investigate an alternative...

Two: Change the modem's number (really just give it an alias). There are two different 'names' that a Ricochet modem can be referenced by: its permanent factory-set and globally unique modem number and a user-defined name (set to the account name if you use a commercial service). I suggest assigning a modem number that the original STRIP understands (8-digit) to the user-defined field. You can then use this virtual modem number to configure STRIP. Here's how:

Use your favorite terminal program and establish a session with the modem.

at
OK
ats306=0001-1729
OK
at&w
OK
This series of commands adds an alias modem number of 0001-1729 to my Ricochet modem and then writes it to memory (makes it persistent across a reset). Why do i prefer this method? It takes about 3 seconds, doesn't involve hacking the kernel or net-utils packages, and it will work on an out-of-the-box RedHat distribution with almost no tweaking. I could be crazy, but I also think that the original STRIP driver causes the "Failed to transmit packet" error less frequently than the patched version.

Could you walk me through the setup?

Sure thing. Here are the steps I normally take:

Computer 1
Minicom to your serial port (I won't teach you how to use minicom...)

at
OK
ats306=0001-0001
OK
at&w
OK

As root, do the following:
# modprobe strip
# slattach -p strip -s 115200 /dev/ttyS0 &
# ifconfig st0 10.1.1.1 netmask 255.255.255.0
# arp -H strip -s 10.1.1.2 0001-0002

Computer 2
at
OK
ats306=0001-0002
OK
at&w
OK

As root, do the following:
# modprobe strip
# slattach -p strip -s 115200 /dev/ttyS0 &
# ifconfig st0 10.1.1.2 netmask 255.255.255.0
# arp -H strip -s 10.1.1.1 0001-0001
Both configurations assume that your Ricochet is attached to /dev/ttyS0 and that it is capable of automagically negotiating at 115200 bps.

Does STRIP work when using a BocaBoard 2016 to connect the Ricochet to your computer?

Absolutely.


Copyright © 2001-2007 Brady Alleman. All Rights Reserved.