Date: Wed, 22 Dec 93 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 V93 #330
To: tcp-group-digest


TCP-Group Digest            Wed, 22 Dec 93       Volume 93 : Issue  330

Today's Topics:
      Borland C++ 4.0 sequential decoding performance? (3 msgs)
                    Dealing with multiple ports...
                                 GCC?
                                 LZW
                    Memory access in NOS. (2 msgs)
                         OS/2 and KA9Q code.
                            X1J questions

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: Tue, 21 Dec 1993 07:57:42 -0600 (CST)
From: drk@fed-ins.ca (Dan Keizer)
Subject: Borland C++ 4.0 sequential decoding performance?
To: karn@unix.ka9q.ampr.org (Phil Karn)

> ... faster than 3.1 before I buy it, otherwise I think I'll look seriously
> at the GCC port.

Yes!  ... I've always thought at using GCC
for NOS ... It gets my nod as a defacto compiler to use for nos...
I've never gone further than that into looking at it though ... It would
be interesting to see it's performance...

Dan.

------------------------------------------------------------------------
Dan Keizer, VE4DRK                    Federated Insurance Company of Canada
drk@fed-ins.ca                        717 Portage Ave, Winnipeg, MB R3C 3C9
Opinions are mine and that's that.    TEL:(204) 786-6431  FAX:(204) 786-5707

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

Date: Tue, 21 Dec 1993 11:15:51 -0800 (PST)
From: Lyndon Nerenberg <lyndon@unbc.edu>
Subject: Borland C++ 4.0 sequential decoding performance?
To: Dan Keizer <drk@fed-ins.ca>

> Yes!  ... I've always thought at using GCC
> for NOS ... It gets my nod as a defacto compiler to use for nos...
> I've never gone further than that into looking at it though ... It would
> be interesting to see it's performance...

Just before we all jump into a vat of hot oil for a swim ... will GCC 
compiled 32 bit app's run under Windoze or any of the other DOS 
multi-taskers? My understanding is that GCC takes liberties that make the 
compiled applications not get along with task switchers and such.

If GCC won't let me run NOS under windows then I can't use the resulting 
product.

--lyndon

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

Date: Tue, 21 Dec 1993 14:31:58 -0600 (CST)
From: drk@fed-ins.ca (Dan Keizer)
Subject: Borland C++ 4.0 sequential decoding performance?
To: lyndon@unbc.edu (Lyndon Nerenberg)

> If GCC won't let me run NOS under windows then I can't use the resulting 
> product.

I believe I've seen the GNU chess program available for Windows.  My
impression would be that it would be compiled with GCC.  Anyone able to
confirm or deny that?

There's also nothing stating we can't go ahead and make conditional entries
for GCC vs BORLAND specific coding.  I'm no expert at identifying the
differences between the two, but given the speed increase that Phil has
identified in some other programs, it would be interesting to see the results.

Not only that, but having a freely available compiler for anyone to use for
NOS strikes a good chord with me as well. :-)

Dan.

------------------------------------------------------------------------
Dan Keizer, VE4DRK                    Federated Insurance Company of Canada
drk@fed-ins.ca                        717 Portage Ave, Winnipeg, MB R3C 3C9
Opinions are mine and that's that.    TEL:(204) 786-6431  FAX:(204) 786-5707

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

Date: Tue, 21 Dec 1993 11:56:55 -0500 (EST)
From: "Barry McLarnon" <barry@skat.dgbt.doc.ca>
Subject: Dealing with multiple ports...
To: tcp-group@ucsd.edu

> > This gateway (uugate) now has multiple ports by which a TCP/IP users
> > may connect.  How does one make sure packets get routed to the correct port?
> > Is this something that one would need ARP to handle?
> 
> One way to approach this would be to use one sub-net for one port and
> one sub-net for the second port. Locally... we have 44.28.0.x users on our
> 2 mtr port and 44.28.1.x users on our 440 port. The gateway uses a single IP
> address for both ports. 440 users use a
> route add 44.28.0/24 portname gateway
> route add 44.28.1/24 portname
> and 2 mtr users do a
> route add 44.28.1/24 portname gateway
> route add 44.28.0/24 portname
> 
> This won't handle a user picking ports randomly. I don't think that anything
> will handle a user picking ports at random using the same IP address. For

Au contraire... we do that in Ottawa, using RIP.  I don't much like
subnetting by frequency... hams being what they are, they want to be able
to switch frequencies to dodge congestion, or when the network access port
on their usual frequency goes down.  In this area, we have a flat address
space, and users announce their presence on a given frequency by means of
RIP broadcasts (interval of 10 min for 1200bps users).  A 'rip kick'
command was added to JNOS so that a broadcast could be forced (e.g., at
startup in the autoexec file) instead of waiting for the rip timer to
expire.  The only limitation on changing frequency is that the old route
must age out before the new one takes effect, so there is a delay of half
an hour or so.  The RIP code could probably be hacked to permit faster
frequency changes, but we haven't found it necessary to do anything radical
to the code.  It sure beats subnetting by frequency (and as IP address
coordinator, I can certainly do without the hassle of administering same :-).
We have IP activity on at least 8 different frequencies in the area (no
segregation practiced here :-), so subnetting by frequency would be a
logistical nightmare...

This isn't exactly what the designers of RIP had in mind (e.g., individual
hosts announcing routes to themselves), but it works pretty well in our
environment.  Now that some RIP-2 code is available, maybe some further
enhancements are possible, but I haven't had time to look at it yet.

> 73's  de  Jack  -  kf5mg

Happy holidays, y'all...

Barry VE3JF

-- 
Barry McLarnon                  |  Internet: barry@dgbt.doc.ca
Communications Research Center  |  AMPRnet:  barry@bbs.ve3jf.ampr.org
Ottawa, Canada  K2H 8S2         |  PBBSnet:  ve3jf@ve3jf.#eon.on.can

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

Date: Tue, 21 Dec 1993 16:49:18 -0500
From: goldstein@carafe.tay2.dec.com (k1io, FN42jk)
Subject: GCC?
To: tcp-group@ucsd.edu

This is only from memory... I haven't tried it...

THe original GCC compiler accessed 32-bit space by using VCPI.  That's
obsolete, and incompatible with WIndows and OS/2 DOS boxes.  If they've
switched to a newer, more supported format (like DPMI) then it might
work... I remember this from some flame wars a couple years ago on
a Usenet group.

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

Date: Tue, 21 Dec 93 15:51:35 CST
From: kf5mg@kf5mg.ampr.org
Subject: LZW
To: tcp-group@ucsd.edu

> With FTP most all of the downloads are zipped binary files and I am sure
> that lzw does not compress anymore and probably adds more overhead. Is this
> true? Maybe you only use it on ascii transfers.
The LZW on FTP sockets only works on ASCII transfers. I did some more quick
testing. I transferred a 5K ASCII file. With compression off... it took 10,
512K packets to transfer the data. With compression on ( 9 bit ) it took
6.5 512K packets to transfer the data. With compression on ( 13 bit ) it took
5.25 packets to transfer the data but was NOTICEABLY slower than the 9 bit
compression mode.

> pkzip with maximum compression does at least 50-60% on text files. With all
> the hype about lzw I thought it would be better. Maybe I will try more bits.
I'm reasonably certain that LZW compression works a small portion of the data
at a time. As soon as it gets a buffer equal to MSS size, NOS sends the buffer.
PKZIP on the other hand has the luxury of working with the entire file. PKZIP
might get 50% compression on a large file (5K), but it is much less on a small
file ( 1K ) That's one of the reasons the LZW compression does not do as much 
as you think it would. If it could process the entire file a head of time, the
compression would be greater, but it would require more storage that is used
today.

There's a good book on different Data Compression schemes. It's called 'The 
Data Compression book' and comes with the code on a disk. The author is Nelson.
I can understand most of the stuff in the book, but can't make heads or tails
from the JNOS LZW files. It might be possible to implement a better LZW
compression routine ( there are several ) or a different encoding scheme
altogether.

> It does have one advantage though and that is the visual scrambling of
> the data. Not that we are trying to hide anything.....

We're not hiding.... we're compressing. At 1200b, every little bit helps.

73's  de  Jack  -  kf5mg
Internet        -  kf5mg@kf5mg.ampr.org            -  44.28.0.14
AX25net         -  kf5mg@kf5mg.#dfw.tx.usa.noam    -  home (817) 488-4386
-------------------------------------------------------------------------
|    "I am Homer of Borg.... Prepare to be assim.... oooo Donuts."      |
-------------------------------------------------------------------------

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

Date: Tue, 21 Dec 93 21:23:02 CST
From: kf5mg@kf5mg.ampr.org
Subject: Memory access in NOS.
To: tcp-group@ucsd.edu

    I want to look at who calls malloc() and free() and when the are 
called.  I want to get a feel for why after 26.6 hours, my system has 
issued 585,000 allocs.  The diff count is 615.  I'm not all that concerned 
about the diffs, but I'm thinking that half-a-million plus mallocs (6 per 
second for a 26.6 hour period ) is a bit excessive.  I've always had 
problems with memory fragmentation.  My mem free table is about a page.  
There are lots of small, 16, 32, 64 byte slots free that fragment storage.  
I'd like to find out what routines call malloc() and see if there are any 
patterns.  It would be nice if I found that several routines made up 50% of 
the mallocs and frees and could be changed to use static variables.  This 
would greatly reduce the calls to malloc and free and would improve system 
performance.  
    Does anyone know how I can figure out who called malloc() and when the
associated block was free'd?  If I use a fprintf() statement in the malloc
code, I'll know when the code was called, but I won't know who called it.
I might also get in trouble because fprintf() will probably call malloc()
and I'll start looping.  Can I use the Borland Debugger to do what I want?
Any info would be appreciated.

73's  de  Jack  -  kf5mg
Internet        -  kf5mg@kf5mg.ampr.org            -  44.28.0.14
AX25net         -  kf5mg@kf5mg.#dfw.tx.usa.noam    -  home (817) 488-4386
Dialup          -  kf5mg@tcet.unt.edu              -  work (not  any more)

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

Date: Wed, 22 Dec 93 00:10 PST
From: bob@nyssa.wa7ipx.ampr.org (Bob Finch)
Subject: Memory access in NOS.
To: kf5mg@kf5mg.ampr.org

>>>>> On Tue, 21 Dec 93 21:23:02 CST, henson!kf5mg.ampr.org!kf5mg said:

Jack> Does anyone know how I can figure out who called malloc() and
Jack> when the associated block was free'd?

Take a look at stktrace.c in Phil's code -- it writes a stack
backtrace (with symbolic names) to a file.

73 -- Bob

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

Date: Tue, 21 Dec 93 07:32:38 EST
From: n4clh@vnet.IBM.COM
Subject: OS/2 and KA9Q code.
To: TCP-Group@UCSD.Edu

I have also been unable to get it to stay up under OS/2. The WG7J 1.15
compile seems to work just fine. Hey Phil, anything we can do to assist in
diagnose'n the problem? I like the encrypted password, and the screen roll
back.

73,
=> Bob - N4CLH  @  WA4BRO.ATL.GA.USA.NA
=> amprnet - 44.36.0.120 (n4clh.ampr.org) Atlanta, GA.
=> internet - rwaustin@atlvm1.vnet.ibm.com

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

Date: Tue, 21 Dec 93 11:55:53 CST
From: kf5mg@kf5mg.ampr.org
Subject: X1J questions
To: tcp-group@ucsd.edu

   What are the options for attaching a X1J TNC to a NOS box? I don't have
NET/ROM loaded on the NOS Box and don't want to load Net/Rom. I'd like the TNC
to act as an IP router for normal radio traffic and route stuff for the NOS Box
to the NOS Box via the serial port on the TNC. Is that possible?
   At some point... I want to make the TNC ( MFJ-1270B ) a digital,
bit-regenerating repeater. Either on 1200b or 9600b. Will the software handle
this, or would I have to do a hardware mod to the TNC? If it's a hardware
mod... is it the same mode for both a 1200b TNC and a 9600b tnc? Thanks.

73's  de  Jack  -  kf5mg
Internet        -  kf5mg@kf5mg.ampr.org            -  44.28.0.14
AX25net         -  kf5mg@kf5mg.#dfw.tx.usa.noam    -  home (817) 488-4386
Worknet         -  kf5mg@vnet.ibm.com              -  work (817) 962-4409
-------------------------------------------------------------------------
|    "I am Homer of Borg.... Prepare to be assim.... oooo Donuts."      |
-------------------------------------------------------------------------

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

End of TCP-Group Digest V93 #330
******************************
******************************