Subject: Re: ATM NIC support
To: None <>
From: Ignatios Souvatzis <>
List: tech-net
Date: 02/27/1997 18:56:47
   Date: Thu, 27 Feb 1997 11:19:53 -0600 (CST)
   From: Ty Sarna <>
   Newsgroups: netbsd.sys.i386
   Organization: Endicor Technologies, Inc., San Antonio, Texas
   Sender: tech-net-owner@NetBSD.ORG
   Precedence: list
   Delivered-To: tech-net@NetBSD.ORG

   In article <> of port-i386, you wrote:
   > I am very satisfied with performance, only wish to have ATMARP support.

   Does Ignatious' ARP work help at all for this, or is ATMARP something
   very different (I'm fairly ignorant about ATM)?

Don't know myself; have to check docs. If it uses the same packet
structure, it can share the code. If not, it can't; or at least, only
the route table manipulation.

   On a vaugely related question, one of Ignatious' commit messages
   mentioned something to the effect that while the new arp code supports
   other-than-ethernet link address lengths, it doesn't support variable
   lengths.  Are there really any link-level protocols with variable-length
   addresses? (And have the perpetrators been brought to justice? :->)

Err... AX25 might be considered, but they use, in their specs and
reality, padded [with (' '<<1)] 7byte fields, where the last byte has
some special values.

The ARP protocol does not really support variable length
addresses. There is only one length field for sender and receiver
hardware addresses, and another one for sender and receiver protocol

Non-ARPing protocols are different: X.25 addresses are err... nibble
strings, if I recall right, and (potentially) variable length. 

   Does the new ARP code handle non-byte-multiple link adresses? 

No. (well, you could cheat, like, using packed BCD and padding with 0xF)

   Are there any real world examples of such?

Nibble-packed telephone numbers come into my mind.

   What are the largest and smallest link address sizes? Anything larger
   than 64bit? 128bit?

The ARP protocol supports "protocol" and "hardware" length's of 1
(integer) to 255 (integer) bytes... the length fields are bytes and in
units of bytes. That is, 8 to 2040 bits with a granularity of 8 bits.

   (The latter two questions come from rereading the SANA-II specs
   recently. It takes pains to accomodate non-byte-multiple LLA's,
   doesn't seem to acknowledge the existance of variable-length LLA's if
   there do in fact exist such, and uses a 128 bit field for storing LLA's
   in IO request messages).

Thats 16 bytes... enough for all 3 protocols which come into my mind
(1-byte ARCnet, 6byte Ethernet/FDDI, 7byte AX25).

And you could carry, say, up to 32 nibble ISDN numbers in that
structure, enough for everybody.