BSD 4_4 release
[unix-history] / usr / src / lib / libc / net / linkaddr.3
index 9248f57..54e3206 100644 (file)
@@ -1,14 +1,40 @@
-.\" Copyright (c) 1993 The Regents of the University of California.
-.\" All rights reserved.
+.\" Copyright (c) 1993
+.\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\" This code is derived from software contributed to Berkeley by
 .\" Donn Seeley at BSDI.
 .\"
-.\" %sccs.include.redist.man%
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
-.\"     @(#)linkaddr.3 8.1 (Berkeley) %G%
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
-.Dd 
+.\"     @(#)linkaddr.3 8.1 (Berkeley) 7/28/93
+.\"
+.Dd July 28, 1993
 .Dt LINK_ADDR 3
 .Os BSD 4.4
 .Sh NAME
@@ -33,40 +59,40 @@ The routine
 .Fn link_ntoa
 takes
 a link-level
-addresses and returns
+address and returns an
 .Tn ASCII
-strings representing some of the information present
-(The link level address itself, and the interface name
-or number, if present.)
-This facility is still experimental, and had there been
-further development of the system would have been subject to change.
+string representing some of the information present,
+including the link level address itself, and the interface name
+or number, if present.
+This facility is experimental and is
+still subject to change.
 .Pp
-The syntax employed by
-.Fn link_addr
-is an optional network interface identifier (a string of the
-form
-.Dq name\ unit ,
+For
+.Fn link_addr ,
+the string
+.Fa addr
+may contain
+an optional network interface identifier of the form
+.Dq "name unit-number" ,
 suitable for the first argument to
-.Xr ifconfig 4 )
-followed by a colon when the interface identifier is present,
-followed in all cases by a sequence of hexadecimal
-.Dq digits
-(optionally separated by periods),
-of the form:
-.Bd -filled -offset indent
-<name unit :> <hex digits>.<hex digits>.<hex digits>
-.Ed
+.Xr ifconfig 4 ,
+followed in all cases by a colon and
+an interface address in the form of
+groups of hexadecimal digits
+separated by periods.
+Each group represents a byte of address;
+address bytes are filled left to right from
+low order bytes through high order bytes.
 .Pp
-Each pair of hexadecimal digits represents a byte
-with the leading digit indicating the higher-ordered bits.
-A period following an even number of bytes has no
-effect (but may be used to increase legitibility).
-A period following an odd number of bytes has the
-effective of filling the byte of address being translated
-to have its higher order bits filled with zeros.
-.Pp
-Thus le0:8.0.9.13.d.30 represents an ethernet address
-to be transmitted on the first lance ethernet interface.
+.\" A regular expression may make this format clearer:
+.\" .Bd -literal -offset indent
+.\" ([a-z]+[0-9]+:)?[0-9a-f]+(\e.[0-9a-f]+)*
+.\" .Ed
+.\" .Pp
+Thus
+.Li le0:8.0.9.13.d.30
+represents an ethernet address
+to be transmitted on the first Lance ethernet interface.
 .Sh RETURN VALUES
 .Fn link_ntoa
 always returns a null terminated string.
@@ -86,7 +112,20 @@ functions appeared in
 .Sh BUGS
 The returned values for link_ntoa
 reside in a static memory area.
+.Pp
 The function
 .Fn link_addr
 should diagnose improperly formed input, and there should be an unambiguous
 way to recognize this.
+.Pp
+If the
+.Va sdl_len
+field of the link socket address
+.Fa sdl
+is 0,
+.Fn link_ntoa
+will not insert a colon before the interface address bytes.
+If this translated address is given to
+.Fn link_addr
+without inserting an initial colon,
+the latter will not interpret it correctly.