AminetAminet
Search:
84761 packages online
About
Recent
Browse
Search
Upload
Setup
Services

comm/net/sana2-cslip.lha

Mirror:Random
Showing: m68k-amigaos iconppc-amigaos iconppc-morphos iconi386-aros iconi386-amithlon iconppc-warpup iconppc-powerup icongeneric icon
No screenshot available
Short:SANA2 (c)slip device
Uploader:rhialto mbfys kun nl (Olaf Seibert)
Type:comm/net
Version:15-Aug-1993
Architecture:m68k-amigaos
Date:1993-08-16
Download:comm/net/sana2-cslip.lha - View contents
Readme:comm/net/sana2-cslip.readme
Downloads:1013

This is a modified version of Commodores example SANA driver:
the slip.device. As released, it contained a number of bugs and
misfeatures.

Installation:
------------
-   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.

-   Summary: Place the file (c)slip.device in DEVS:Networks/ and
    (c)slip<unit>.config in ENV(ARC):SANA2/.

Additions:
---------
-   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:
--------------
-   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.

-   And the worst of all: it attempted this EXTREMELY STUPID TRICK:

    #define SLIPBase ((struct SLIPDevice *)__builtin_getreg(14))

    This is terrible!!! That people write code like this! How can you be
    sure the compiler won't use A6 for a register variable somewhere and
    make it unusable in the functions that it calls? In fact, SAS/C 6.2
    does something like that, in ReadConfig..., when it first calls an Exec
    function and then a DOS function, and in both cases fetches the
    required base pointer off A6.

    If you want global register variables, use a compiler that supports
    them, such as gcc.

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.)


Contents of comm/net/sana2-cslip.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                  807    1895  42.6% -lh5- 18a8 Jun 21  1993 copyright
[generic]                 6525   18881  34.6% -lh5- 64db Jun 29  1993 cslip.c
[generic]                 5692    9128  62.4% -lh5- 26de Aug 13  1993 cslip.device
[generic]                 4040   10893  37.1% -lh5- 75f8 Jun 29  1993 cslip.h
[generic]                13703   48851  28.1% -lh5- a300 Aug 13  1993 device_funcs.c
[generic]                  803    3443  23.3% -lh5- 8da8 Aug 13  1993 device_protos.h
[generic]                  115     161  71.4% -lh5- 4415 Jun 16  1993 endcode.asm
[generic]                  856    2309  37.1% -lh5- a3dc Jul  4  1993 Makefile.cslip
[generic]                  840    2261  37.2% -lh5- e300 Jun 25  1993 Makefile.slip
[generic]                   66      68  97.1% -lh5- 84bf Jan 11  1993 readme
[generic]                 2093    4215  49.7% -lh5- b228 Aug 15  1993 README.Rhialto
[generic]                 3836    6220  61.7% -lh5- afba Aug 13  1993 slip.device
[generic]                 1594    3401  46.9% -lh5- 36ff Jun 25  1993 slip_device.asm
[generic]                 2194    5599  39.2% -lh5- 40be Jun 25  1993 slip_device.h
[generic]                  491     895  54.9% -lh5- c77d Jan 11  1993 slip_device.i
[generic]                  118     202  58.4% -lh5- fd29 Jun 20  1993 slip_rev.h
[generic]                  131     244  53.7% -lh5- 354d Jun 20  1993 slip_rev.i
[generic]                    2       2 100.0% -lh0- c796 Jun 20  1993 slip_rev.rev
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        18 files   43906  118668  37.0%            Aug 15  1993
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>