Date: Mon, 31 Jan 94 04:30:01 PST
From: Advanced Amateur Radio Networking Group <tcp-group@ucsd.edu>
Errors-To: TCP-Group-Errors@UCSD.Edu
Reply-To: TCP-Group@UCSD.Edu
Precedence: Bulk
Subject: TCP-Group Digest V94 #28
To: tcp-group-digest


TCP-Group Digest            Mon, 31 Jan 94       Volume 94 : Issue   28

Today's Topics:
                            LINUX (2 msgs)
           param slottime & persist command - description?
                     Some Questions About Basics
                     TCP WIN - the modifications
                             Unsubscribe

Send Replies or notes for publication to: <TCP-Group@UCSD.Edu>.
Subscription requests to <TCP-Group-REQUEST@UCSD.Edu>.
Problems you can't solve otherwise to brian@ucsd.edu.

Archives of past issues of the TCP-Group Digest are available
(by FTP only) from UCSD.Edu in directory "mailarchives".

We trust that readers are intelligent enough to realize that all text
herein consists of personal comments and does not represent the official
policies or positions of any party.  Your mileage may vary.  So there.
----------------------------------------------------------------------

Date: Sun, 30 Jan 1994 15:47:08 EET-2EEST
From: "Markus Lamminmaki OH6LSA" <MARKUS@TECHNIS.vtyh.fi>
Subject: LINUX
To: tcp-group@ucsd.edu

>    I hope someone will come along with a public anonymous guest 
>source for Linux.

ftp.funet.fi has Linux available by anonymous ftp. Try to have a look 
in /pub/OS/Linux you will find all that you want from there to get 
Linux upp and runing.

---
Vasa Polytechnic              Email: markus@technis.vtyh.fi
PB 6, SF-65201, FINLAND              postmaster@vtyh.fi
Fax: +358-61-3230 610         PS: Please, someone, make X.400 go away!
Work:+358-61-3230 661         Home:  +358-61-3171 466

            Looks great on the outside, but Intel inside.

------------------------------

Date: Sun, 30 Jan 1994 10:37:48 -0500
From: "Brandon S. Allbery" <bsa@kf8nh.wariat.org>
Subject: LINUX 
To: tcp-group@ucsd.edu

In your message of Sun, 30 Jan 1994 15:47:08 +0700, you write:
+---------------
| >    I hope someone will come along with a public anonymous guest 
| >source for Linux.
| 
| ftp.funet.fi has Linux available by anonymous ftp. Try to have a look 
| in /pub/OS/Linux you will find all that you want from there to get 
| Linux upp and runing.
+------------->8

Also tsx-11.mit.edu and sunsite.unc.edu in the U.S. (some of the distributions 
are a bit large for overseas FTP :-)

There are also dial-up bulletin boards which carry Linux; the list is posted to 
comp.os.linux.announce once a month.  I'd include it but it has expired here.

++Brandon
--
Brandon S. Allbery    kf8nh@kf8nh.ampr.org   bsa@kf8nh.wariat.org
"MSDOS didn't get as bad as it is overnight -- it took over ten years
of careful development."  ---dmeggins@aix1.uottawa.ca

------------------------------

Date: Mon, 31 Jan 1994 03:24:45 +1030 (CST)
From: gwillis@eleceng.adelaide.edu.au
Subject: param slottime & persist command - description?
To: tcp-group@ucsd.edu

Hello.

I have been trying to find an accurate consise description of exactly
what the function of the 'persist' and 'slottime' functions are that
are set using the param command in NOS and how these parameters
affect radio channel performance. My understanding is that they are
a replacement for DWAIT which is found in many TNC software EPROMS.

Could somebody point me in the direction of a document or file that
describes this function? Also which layer of the OSI protocol stack
do these functions belong to? (I am guessing level 1?)

Also I am interested to find out if there is any implementation of the
T2 timer described in the AX.25 v2.0 protcol specification in the
NOS package for AX.25 connections or IP virtual circuits carried on
AX.25? (This parameter is the equivalent of what in the popular TNCs
is seemingly called RESPTIME).

Cheers de Grant VK5ZWI
--
Grant Willis - Adelaide, South Australia    | Around here, talking to
Internet: gwillis@eleceng.adelaide.edu.au   | yourself is a sign of Sanity!
Packet Radio: VK5ZWI@VK5TTY.#ADL.#SA.AUS.OC +------------------------------
Disclaimer: Thoughts expressed here are not those of any organisation.

------------------------------

Date: Sun, 30 Jan 1994 22:03:24 -0500 (EST)
From: John Stewart <JSTEWART@umiami.ir.miami.edu>
Subject: Some Questions About Basics
To: tcp-group@ucsd.edu

    I am trying to understand what interrupt buffers are used
for in NOS? Are they used on both transmit and receive? 

    Given that ibufsize should be greater than or equal to MTU,
does the TCP WINDOW setting have an effect on the number of buffers
that you need?  

    Does the transmit queue length on the ATTACH PACKET statement
have an effect on the number of buffers that you need?

    I have read the NOS documentation and some other references, but
am still missing part of the story. Can someone enlighten me?

Thanks.

John, n4qi
Internet: jstewart@umiami.ir.miami.edu
AmprNet:  n4qi@n4qi.ampr.org

------------------------------

Date: Mon, 31 Jan 94 10:06:21 GMT
From: A.D.S.Benham@bnr.co.uk
Subject: TCP WIN - the modifications
To: TCP-Group@UCSD.Edu

Here (somewhat later than promised - humble apologies) are the modifications
needed to get a "per interface" TCP window.
Whilst putting the TCP window modifications in, you might like to put
in another of my modifications, which allows for different AX.25 beacon
text on different interfaces.

==================
File: IFACE.H

1). Add two new variables to struct iface definition

was:
 ....
 int16 mtu;  /* Maximum transmission unit size */
 int16 paclen;  /* AX.25 paclen, if applicable */

 int32 flags;  /* Configuration flags */
 ....

now:
 ....
 int16 mtu;  /* Maximum transmission unit size */
 int16 window;  /* TCP window  G8FSL */
 int16 paclen;  /* AX.25 paclen, if applicable */
 char *beacontext; /* AX.25 beacon text, if applicable  G8FSL */

 int32 flags;  /* Configuration flags */
 ....

=================
File: IFACE.C

1). Add new #include:

 #include "tcp.h"

2). Add two function protypes:

 static int ifbeacon __ARGS((int argc,char *argv[],void *p)); /* G8FSL */
 static int ifwindow __ARGS((int argc,char *argv[],void *p)); /* G8FSL */

3). Add extra variables in definitions of "struct iface loopback" and
    "struct iface Encap" (changes are identical):

were:
 ....
 MAXINT16, /* mtu  No limit */
 0,  /* AX.25 paclen, if applicable */
 0,  /* flags    */
 ....

now: ....
 MAXINT16, /* mtu  No limit */
 0,  /* window  G8FSL */
 0,  /* AX.25 paclen, if applicable */
 NULLCHAR, /* AX.25 beacontext  G8FSL */
 0,  /* flags    */
 ....

4). Add two entries in struct cmds Ifcmds[] (at the appropriate places to
    be in alphabetical order):

#ifdef AX25
 "beacontext",  ifbeacon, 0, 0, NULLCHAR,
#endif

 "window",  ifwindow, 0, 2, NULLCHAR,

5). Add line in function setencap():

was:
 ifp->iftype = ift;
 ifp->send = ift->send;

now:
 ifp->iftype = ift;
 ifp->window = 0; /* G8FSL */
 ifp->send = ift->send;

6). Modify display routine in function showiface():

 tprintf("%-10s IP addr %s MTU %u Window %u Link encap ",ifp->name,
   inet_ntoa(ifp->addr),(int)ifp->mtu,
   ifp->window ? ifp->window : Tcp_window); /* G8FSL */

7). Add more display information in function showiface():

was:
   if(ifp->iftype->type == CL_AX25)
    tprintf("   BBS Call %s   Paclen %d\n",
      (*ifp->iftype->format)(tmp,ifp->bbscall),
      (int)ifp->paclen);

now:
   if(ifp->iftype->type == CL_AX25) {
    tprintf("   BBS Call %s   Paclen %d\n",
      (*ifp->iftype->format)(tmp,ifp->bbscall),
      (int)ifp->paclen);
    if (ifp->beacontext != NULLCHAR)
     tprintf("           Beacon: %s\n",
       ifp->beacontext); /* G8FSL */
   }

8). Add two new functions:

#ifdef AX25

/* Set beacon text - G8FSL */
static int
ifbeacon(argc,argv,p)
int argc;
char *argv[];
void *p;
{
 struct iface *ifp = p;

 if(ifp->iftype->type == CL_AX25){
  if(ifp->descr != NULLCHAR){
   free(ifp->beacontext);
   ifp->beacontext = NULLCHAR; /* reset the pointer */
  }
  if(!strlen(argv[1]))
   return 0; /* clearing the buffer */

  ifp->beacontext = malloc(strlen(argv[1])+1);
  strcpy(ifp->beacontext, argv[1]);
 }
 return 0;
}

#endif /* AX25 */

/* Set interface TCP window - G8FSL */
static int
ifwindow(argc,argv,p)
int argc;
char *argv[];
void *p;
{
 struct iface *ifp = p;

 ifp->window = atoi(argv[1]);
 return 0;
}

===========
File TCPIN.C:

1). Add an extra parameter to declaration of function proc_syn():

static void proc_syn __ARGS((struct tcb *tcb,char tos,struct tcp *seg,
 struct iface *iface)); /* G8FSL */

2). proc_syn() is called in two places. Add the new parameter in both cases:

 proc_syn(tcb,ip->tos,&seg,iface);

3). Add the extra parameter to definition of proc_syn:

/* Process an incoming SYN */
static void
proc_syn(tcb,tos,seg,iface) /* G8FSL */
register struct tcb *tcb;
char tos;
struct tcp *seg;
struct iface *iface; /* G8FSL */

4). Put window setting code in proc_syn():

was:
 if((mtu = ip_mtu(tcb->conn.remote.address)) != 0){
  /* Allow space for the TCP and IP headers */
  mtu -= TCPLEN + IPLEN;
  tcb->cwind = tcb->mss = min(mtu,tcb->mss);
 }
 /* See if there's round-trip time experience */

now:
 if((mtu = ip_mtu(tcb->conn.remote.address)) != 0){
  /* Allow space for the TCP and IP headers */
  mtu -= TCPLEN + IPLEN;
  tcb->cwind = tcb->mss = min(mtu,tcb->mss);
 }
 /* Alter the receive window according to the interface  G8FSL*/
 if (iface->window != 0)
  tcb->window = tcb->rcv.wnd = iface->window;
 else
  tcb->window = tcb->rcv.wnd = Tcp_window;
 /* See if there's round-trip time experience */


=================
File AX25CMD.C

1). Modify function ax_bc():

static void ax_bc(axif)
struct iface *axif;
{
        struct mbuf *hbp;
        int i;
        char *beacontxtp;       /* G8FSL */
        
        /* prepare the header */

        if (axif->beacontext != NULLCHAR) /* G8FSL */
                beacontxtp = axif->beacontext;
        else
                beacontxtp = axbctext;

        i = strlen(beacontxtp);
        if((hbp = alloc_mbuf(i)) == NULLBUF)
                return;
                
        hbp->cnt = i;   
        memcpy(hbp->data,beacontxtp,i);

        (*axif->output)(axif, Ax25multi[IDCALL], axif->hwaddr,
                PID_NO_L3, hbp);        /* send it */

        /*
        ** Call another function to reset the timer...
        reset_bc_timer();
        */
}

===============

I =believe= this is an exhaustive list of the modifications I made. It's always
possible I've missed something, so please let me know if there are problems.


GENERAL NOTE - THIS APPLIES TO ALL USERS OF ALL NOS VERSIONS:

The TCP and IP parameters should =always= be set in the AUTOEXEC.NOS (or similar)
file BEFORE any "start" commands are used to start the servers.
If this is NOT done, then the servers take the default parameters hard-coded
into NOS and the TCP and IP parameters set by the user only have effect on
sessions initiated by the user.

73,
Andrew Benham G8FSL
--------------------------------------------------------------------
adsb@bnr.co.uk   BNR Europe Ltd, London Road, Harlow, Essex CM17 9NA
adsb@bnr.ca      +44 279 402372    Fax: +44 279 402029
Home:            g8fsl@g8fsl.ampr.org [44.131.19.165]
--------------------------------------------------------------------

------------------------------

Date: Mon, 31 Jan 94 06:32:22 GMT
From: ian@g3nrw.demon.co.uk (Ian Wade)
Subject: Unsubscribe
To: tcp-group@ucsd.edu

Unsubscribe
+---------------------------------+----------------------------------------+
|  Ian Wade                       | e-mail:  ian @ g3nrw.demon.co.uk       |
|  7 Daubeney Close, Harlington,  | AMPRnet: g3nrw.ampr.org [44.131.5.147] |
|  Dunstable, Beds, LU5 6NF, UK.  | AX.25:   G3NRW @ GB7BIL.#27.GBR.EU     |
+---------------------------------+----------------------------------------+

------------------------------

Date: Mon, 31 Jan 1994 16:34:34 +1100
From: janj@acci.com.au (Jan Jaeger)
To: deyke@fc.hp.com, tcp-group@ucsd.edu

Subject: Wampes on IBM/RT (AOS)

Hi Dieter, 

I am finished with my port of wampes to the IBM RT running AOS.
It basically consists of two parts, a tar file which creates
an extra subdirectory called 'aos' which consist of a few library
functions that are used by wampes, but are not supplied by AOS.
Most of these are a quick port from FreeBSD. The second part is
a patchfile for the rest of wampes, it will make all the nessesary
updates to the source.  All AOS specific updates are ifdef'ed.
I have in fact tried to recompile the whole lot on AIX V3 (RS6K)
and it still works with all the AOS patches on.  There is one place
where I have made a mod to the wampes code, and that is in n8250.c 
where it allows for a device to be a tcp/ip socket.  I have added
some code that it will also listen on the port given, so that 
it can act as primary as well as secondary.  It is also fair to
say that I have not put much efford into ttydriv.c it contains
quite a few device specific things, and I have not implemented
all of those for the ibm6153 terminal.  I do not know how many 
people in the field would use an ibm6153.  

What is required on the IBM RT is:

1)  AOS 
2)  patchkit for AOS as available on various internet ftp sites
3)  gnu make
4)  gnu patch
5)  gnu gcc (2.5.7)
6)  one line 'uname' shell script that echo's AOS
7)  ksh (for the configure script)

I have stored my updates on ftp.acci.com.au:/pub/aos, and will also
upload them to ucsd.edu:/incoming. 

The files are: 

wampes-ibm032.patch.gz  -- patch file
wampes-ibm032.tar.gz    -- aos library

All the patches are based on wampes-931106 and should be applied 
as following:

mkdir wampes
cd wampes 
tar -xf /tmp/wampes-931106.tar
tar -xf /tmp/wampes-ibm032.tar
patch -p1 < /tmp/wampes-ibm032.patch
make

Thats all.

Regards, Jan Jaeger PA3EFU/VK3CEX.  (janj@acci.com.au)

------------------------------

End of TCP-Group Digest V94 #28
******************************
******************************