home *** CD-ROM | disk | FTP | other *** search
- Short: SANA2 rh(c)slip.device
- Uploader: Pekka.Pessi@hut.fi
- Type: comm/net
- Version: $Id: README.Rhialto,v 38.1 1994/01/25 09:31:56 ppessi Exp $
-
- This is a modified version of Commodores example SANA driver:
- the slip.device. As released, it contained a number of bugs and
- misfeatures. This version has been renamed to rh(c)slip.device.
-
- This is second major release of rh(c)slip.device, containing some new
- features and bug fixes.
-
- Installation
- ------------
-
- - Summary: Place the file rh(c)slip.device in DEVS:Networks/ and
- slip<unit>.config in ENV:SANA2/ and ENVARC:SANA2/.
-
- If the configuration file rhslip<unit>.config is not found, then
- (rhcslip.device tries also cslip<unit>.config) slip<unit>.config. This
- is for compatibility with other (c)slip devices.
-
- - If you are going to compile rh(c)slip.device, it is best to get the
- full, original SANA developer package. It is available on Fish disk
- number 779. Newer versions may be available by ftp.
-
- Additions
- ---------
-
- V38:
- - New EOFMODE flag in configuration file determines whether the
- SERF_EOFMODE feature of serial device is used. This prevents the
- slip.device from hogging the CPU at high priority, and even at equal
- priority improves efficiency. This may not work with all serial device
- replacements.
-
- - You can change the maximum frame size with the new MTU parameter in the
- configuration file.
-
- V37:
- - Now also header-compressed slip. (See RFC-1144 by Van Jacobson). This
- is even compatible with non-comressing slip drivers, as it first tries
- to trigger the other side of the connection into using compression as
- well, but ceases these attempts if they appear unsuccessful. In any
- case, once the other side starts sending compressed headers, it is
- turned on in the local-to-remote direction as well.
-
- Corrected bugs
- --------------
-
- V38:
- - There was a problem with header compression failures. The device driver
- dropped IO message if an error occurred in the header uncompression
- routine. The driver eventually jammed when all IO requests had been
- lost.
-
- - The CD flag messed with online state. The serial device was closed
- while the driver thought to be online. The CD sensing code is also
- sanitized, the CD line is checked every time a packet is sent.
-
- - The offline code is now *supposed* to work with DEMANDREAD.
-
- V37:
- - The AbortIO function erroneously assumed that A3 was the Unit pointer.
- Even Commodore's official example in the RKM gets that wrong (see page
- 567).
-
- - S2_GETGLOBALSTATS always returned an error, even though it worked.
- Well, it got the microseconds of the last online wrong.
-
- - S2_TRACKTYPE had two bugs: it would always think a type that you
- requested to track would not yet be tracked, even if it would get the
- packet type right, which it didn't. As a result, every call to
- S2_TRACKTYPE allocated memory for the statistics, yet S2_GETTYPESTATS
- always claimed the type wasn't being tracked.
-
- - S2_GETSTATIONADDRESS should return 2 addresses, the current address, and
- the ROM address. It used to give only a 0.0.0.0 "ROM" address in the
- wrong location. Now, it considers the address in the config file the
- "ROM" address, and the one from S2_CONFIGINTERFACE is the current
- address. Initially both are the same (and both are futher ignored since
- they are meaningless to slip).
-
- - S2_DEVICEQUERY didn't give all required information, and claimed a weird
- size for it.
-
- - Flags set when opening the serial device should be in io->io_SerFlags,
- not in the flags argument to OpenDevice().
-
- - Returned read requests from the serial device were sized by their
- io_Length instead of io_Actual.
-
- - Serial input could potentially overflow the input buffer.
-
- - The code assumed, by using registered arguments, that the callback
- routines would have their arguments in the correct registers. Now the
- type of the pointer explicitly declares the calling convention.
-
- - Eliminated use of SLIPBase as __builtin_getreg(14).
-
- Corrected misfeatures
- ---------------------
-
- - The device now runs at the same priority as the opener. This helps
- preventing starvation of the opener in case of high amounts of input.
-
- - Uses the serial.device's SERF_EOFMODE mode. This prevents the
- slip.device from hogging the CPU at high priority, and even at equal
- priority improves efficiency.
-
- Debatable issues
- ----------------
-
- - Optionally, serial device reads are only initiated when they are
- (already) requested by the caller. This is contrary to the SANA
- philosophy, and therefore makes debugging protocol stacks more
- difficult. On the other hand, why not use the serial device's buffer to
- keep input, instead of dropping it? This also reduces CPU load in case
- the device is open but unused for some reason. (As it was, the
- slip.device would continually read and decode packets, even if nobody
- wanted them.)
-