HPUX lan[7]






 lan(7)                                                               lan(7)





 NAME
      lan - network I/O card access information

 DESCRIPTION
      This manual entry explains how to access the LAN device driver at
      Layer 2 (Data Link Layer) of the OSI architecture.  The LAN device
      driver controls the Ethernet/IEEE 802.3 LAN interface card at Layer 1
      (Physical Layer).

      Link Level Access is intended for use by knowledgeable network users
      only.  Refer to the LLA Programmer's Guide for complete programming
      details.

    System Calls
      The following system calls are used to access the driver that controls
      the IEEE 802.3/Ethernet interface card:

           open()         Opens the device file associated with the driver.
                          The only applicable option flags are the delay
                          flag, O_NDELAY, the read only flag, O_RDONLY, and
                          the read/write flag, O_RDWR.  If O_NDELAY is set
                          and no data is available, a read() call returns
                          immediately.  If you want to use only the NETSTAT
                          commands, specify the O_RDONLY flag.  Otherwise,
                          the O_RDWR flag must be specified.  These flags
                          are defined in the header <sys/fcntl.h>.

           close()        Closes a network device file.

           read()         Reads data from the network.  The maximum number
                          of bytes that can be transferred per read() call
                          is 1500 for Ethernet and 1497 for IEEE 802.3.

                          Read operations may block (if O_NDELAY was not
                          specified in open) if system resources are not
                          immediately available to perform the operation.
                          Blocked read operations terminate upon delivery of
                          signals to the calling process.

                          Read and write operations can only address a
                          single packet of data appropriate for the protocol
                          being used.



           write()        Writes data out to the network.  The maximum
                          number of bytes that can be transferred per
                          write() call is 1500 for Ethernet and 1497 for
                          IEEE 802.3.





 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                          Write operations never block, returning instead an
                          error indicating the type of resource limitation
                          that prevents performing the operation (see for
                          specific details).

                          Read and write operations can only address a
                          single packet of data appropriate for the protocol
                          being used.

           select()       Used before read() and write() calls to help an
                          application synchronize its I/O operations.
                          select() is supported for read and write
                          operations, but it is not supported for
                          exceptional conditions.

           ioctl()        Used to construct, inspect, and control the
                          network environment in which the application
                          operates.  All applications must use the ioctl()
                          call to configure source and destination addresses
                          before data can be sent or received using read()
                          and write() calls.  The ioctl() syntax used for
                          these operations is as follows:

                               #include <netio.h>

                               ioctl (fildes,request,arg);
                               int fildes,request;
                               struct fis *arg;

                          Parameters in the calling sequence are:

                               fildes    The file descriptor of the
                                         successfully opened Ethernet/IEEE
                                         802.3 device.

                               request   Specifies which type of command to
                                         perform.  This parameter must be
                                         either NETSTAT or NETCTRL.

                               arg       Address of the fis data structure.
                                         The fis data structure contains
                                         information necessary to perform a
                                         specific NETCTRL or NETSTAT
                                         command.  The arg parameter must be
                                         set to the address of a fis
                                         structure before an ioctl() call is
                                         made.  The type of information
                                         stored in arg is:

                                              struct fis { int reqtype;
                                                  int vtype;



 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                                                  union { float f;
                                                      int i;
                                                      unsigned char s[100];
                                                      } value;
                                                  };

                                         where:

                                         reqtype        contains the name of
                                                        the NETCTRL or
                                                        NETSTAT command to
                                                        be executed.

                                         vtype          identifies the type
                                                        of the value in the
                                                        value union.  If
                                                        vtype = INTEGERTYPE,
                                                        the value is in
                                                        value.i. If vtype =
                                                        FLOATTYPE, the value
                                                        is in value.f.  If
                                                        vtype = a non-
                                                        negative integer,
                                                        the value is a
                                                        character string in
                                                        value.s.  This
                                                        integer also
                                                        specifies the length
                                                        of the string.  The
                                                        vtype parameter must
                                                        only be specified
                                                        for NETCTRL
                                                        commands.

    NETCTRL and NETSTAT Commands
      NETCTRL commands are used to set up device-specific parameters prior
      to read and write operations, and to reset the network I/O card and
      its statistical registers.  There are two types of NETCTRL commands:
      those that affect the network I/O cards and those that affect a
      particular connection to the network I/O card.

      NETSTAT commands are used to obtain device-dependent status and
      statistical information.

      Station Management NETCTRL Commands
      The following NETCTRL arg.reqtype arguments control the read/write
      activities of the network device on a per-file-descriptor basis:

           LOG_TYPE_FIELD
                This command is restricted to the Ethernet protocol, and
                corresponds to the type field of the Ethernet header.  When



 Hewlett-Packard Company            - 3 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                co-existing on a multi-vendor network, the user should
                contact Xerox Corporation for authorization to use a given
                type field.  See LOG_DSAP and LOG_SSAP below for the
                corresponding IEEE 802.3 commands.

                Before performing read() and write() operations, a type
                field must be logged with the driver.  This type field is
                the effective user address for the network connection being
                established, and must be unique among all open network
                connections on the same interface card or an error results.
                Only one type field can be declared per (open) file
                descriptor; once logged, it cannot be changed.

                The format of the type field required by ioctl() is an
                integer in the range 2048..65535.

                LOG_TYPE_FIELD is the first call made in establishing a
                network connection.  The call fails if memory needed to log
                the type field is unavailable.

                The device header prefixed to the user data by the driver on
                each write() call contains this type field.  read() calls
                return the data portion of only those packets whose type
                field in the device header matches the logged type field.

                The following type fields are reserved addresses: 2048,
                2053, 2054, 32773.  Any attempt to log these types fails,
                returning EBUSY to the calling process.

                Other specifically reserved addresses include 4096 through
                4111.  These types are reserved for use by Berkeley Trailer
                Protocols.

                The following parameters must be set prior to calling
                ioctl():

                     arg.vtype    = INTEGERTYPE;
                     arg.value.i = type field ;

           LOG_SSAP
                This command applies only to the IEEE 802.3 protocol.

                Before performing read() and write() operations, a source
                service access point (SSAP) must be logged with the driver.
                This value is the effective user address for the network
                connection being established, and must be unique among all
                open network connections on the same interface card or an
                error results.  Only one SSAP can be declared per (open)
                file descriptor.  Once logged, it cannot be changed.





 Hewlett-Packard Company            - 4 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                The format of the SSAP required by ioctl() is an even
                integer in the range 2..254.

                LOG_SSAP is the first call made in establishing a network
                connection; the call fails if memory needed to log the SSAP
                is unavailable.

                LOG_SSAP sets the destination service access point (DSAP)
                value to the SSAP value.  Under normal circumstances, DSAP
                and SSAP should remain equal.

                The following SSAP values are reserved addresses: 6, 252,
                248.  An attempt to log these SSAPS fail with EBUSY returned
                to the calling process.

                The device header inserted in front of the user data by the
                driver on each write() call contains this SSAP/DSAP.  read()
                calls return the data portion of only those received packets
                whose DSAP value in the device header matches the logged
                SSAP value.

                The following parameters must be set prior to calling
                ioctl():

                     arg.vtype = INTEGERTYPE;
                     arg.value.i = SSAP;

           LOG_DSAP
                This command applies only to the IEEE 802.3 protocol.

                LOG_DSAP can be called to change the default DSAP value set
                up by LOG_SSAP.  The DSAP value can be changed any time
                after the LOG_SSAP call and can be changed any number of
                times.

                The format of the DSAP required by ioctl() is an integer in
                the range 0..254.

                The device header inserted in front of the user data by the
                driver on each write() call contains this DSAP.

                The following parameters must be set prior to calling
                ioctl() :

                     arg.vtype = INTEGERTYPE;
                     arg.value.i = DSAP ;

           LOG_DEST_ADDR
                Before performing write() operations, a destination address
                must be logged with the driver.  This address is the network
                station address of the remote Ethernet/IEEE 802.3 device



 Hewlett-Packard Company            - 5 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                that is to receive the data.  LOG_DEST_ADDR commands can be
                issued any time but must be specified prior to attempting a
                write.  LOG_DEST_ADDR commands can be issued any number of
                times during a LLA connection.

                A header inserted in front of the user data on each write()
                call contains this destination address .

                The following parameters must be set prior to calling
                ioctl():

                     arg.vtype = 6;
                     arg.value.s = destination address ;

           LOG_READ_TIMEOUT
                The default (0) timeout value blocks a user process
                executing a read() until data is available (see
                LOG_TYPE_FIELD).  A positive timeout value causes the read()
                to fail after the specified time has elapsed if no data is
                available.  A negative timeout value fails with EINVAL
                returned.  If the O_NDELAY flag is set, the timeout
                mechanism is overridden and the error, EWOULDBLOCK, is
                returned to the calling process.

                Due to race conditions caused by asynchronous interrupts,
                the accuracy of the timer is guaranteed only to the extent
                that it will not timeout sooner than the assigned value.

                The following parameters must be set prior to calling
                ioctl():

                     arg.vtype = INTEGERTYPE;
                     arg.value.i = read timeout value in milliseconds ;

           LOG_READ_CACHE
                By default, only one packet received for an active type
                field or DSAP is cached, pending a read() to the associated
                file descriptor.  Subsequent packets received for that file
                descriptor are discarded.  This one-packet cache is suitable
                for request/reply protocols, but may not be suitable for
                applications that communicate with more than one host or
                where windowing protocols are used.  LOG_READ_CACHE can be
                used to increase the the receive cache buffer to a total of
                16 packets for a normal user and a total of 64 packets for a
                user with appropriate privileges.  Any request for
                additional packet caching that would result in a cache size
                greater than the above limits is truncated to the
                appropriate limit.  The following parameters must be set
                prior to calling ioctl():





 Hewlett-Packard Company            - 6 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)




                     arg.vtype = INTEGERTYPE;
                     arg.value.i = additional packets to cache ;

           LOG_CONTROL
                This command applies only to the IEEE 802.3 protocol and
                conforms to its specification.  Refer to the IEEE 802.3
                specification for detailed information about the UI, XID,
                and TEST control fields mentioned below.

                This command requires appropriate privileges.

                The Unnumbered Information (UI) control field of the IEEE
                802.3 header is the default used for normal communication.
                This default can be overridden with XID_CONTROL or
                TEST_CONTROL.  When using either the XID or TEST control
                field, any data written to the network device is ignored; an
                XID or TEST request packet is transmitted instead, and any
                response from other network nodes is returned via the read()
                call.

                Prior to calling ioctl() , the arg.vtype parameter must be
                set to INTEGERTYPE; the arg.value.i parameter must be set to
                UI_CONTROL, XID_CONTROL, or TEST_CONTROL.

           LLA_SIGNAL_MASK
                This request allows the user to specify which defined LAN
                events can generate a SIGIO signal to the process which
                configured it.  Currently, the LAN events which can generate
                SIGIO are receipt of packet on LLA connection and inbound
                queue overflow for LLA connection.  Mask values can be
                derived by ORing one or more of the following LAN events
                into the value.i operand:

                     LLA_PKT_RECV
                          is used when the process is to be signaled every
                          time a packet is successfully queued for
                          subsequent reading.  If the queue is full and the
                          packet must be discarded, no signal is generated.
                          Also, if the process is blocked on a read to the
                          LLA connection, no signal will be generated
                          because this would interfere with the current
                          read.

                     LLA_Q_OVERFLOW
                          is used when the process is to be signaled every
                          time a packet must be discarded as a result of
                          inbound queue overflow.

                          To eliminate signal generation completely,
                          LLA_NO_SIGNAL should be assigned (not ORed) to
                          value.i.



 Hewlett-Packard Company            - 7 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                          Be careful when combining mask values because
                          receipt of a signal does not convey which event
                          occurred.  Note also that the driver signals only
                          that process which last configured the
                          LLA_SIGNAL_MASK.  Processes that share file
                          descriptors can potentially interfere with the
                          intended use of LLA SIGIO.

                          Prior to calling ioctl() , the arg.vtype parameter
                          must be set to INTEGERTYPE; the arg.value.i
                          parameter must be set to either LLA_NO_SIGNAL or a
                          combination of LLA_PKT_RECV, and LLA_Q_OVERFLOW.

           Device Control NETCTRL Commands
           The following are global NETCTRL arg.reqtype arguments that
           affect the Ethernet/IEEE 802.3 device itself, as opposed to a
           particular open file descriptor associated with the device, and
           are accessible only to users with appropriate privileges.

               RESET_INTERFACE
                    Resets the Ethernet/IEEE 802.3 device, forcing a
                    complete hardware self-test.  All statistical counters
                    are reset to zero.  No parameters are necessary.  The
                    current multicast state is retained.

                    A reset can drop packets or impair any currently active
                    network connection to the local computer.

               ADD_MULTICAST
                    Adds a multicast address to the device's list of
                    accepted multicast addresses.  A received packet is
                    discarded if its multicast address is not in the current
                    list of accepted multicast addresses.  A multicast
                    address is a 48-bit value with the least significant bit
                    of the first octet set to indicate a group address.  A
                    multicast address list can contain up to 16 addresses.

                    The broadcast address is not handled as a typical
                    multicast address and is documented below under
                    ENABLE_BROADCAST/DISABLE_BROADCAST.

                    The following parameters must be set prior to calling
                    ioctl():

                         arg.vtype = 6;
                         arg.value.s = multicast address ;

               DELETE_MULTICAST
                    Removes a specified multicast address from the current
                    list of accepted multicast addresses.




 Hewlett-Packard Company            - 8 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                    The following parameters must be set prior to calling
                    ioctl():

                         arg.vtype = 6;
                         arg.value.s = multicast address ;

                    Deletion of any HP-special multicast address may prove
                    catastrophic to an active HP network.  The HP multicast
                    addresses are: 0x090009000001, 0x090009000002.

               ENABLE_BROADCAST
                    Allows broadcast packets to be received by the network
                    device.  No parameters are needed.

               DISABLE_BROADCAST
                    Disallows broadcast packets from being received by the
                    network device.  No parameters are needed.

                    Users with appropriate privileges are cautioned that use
                    of this command may be catastrophic to an active HP
                    network.

           Reset and Read Statistics Commands
           The following commands are provided to collect and reset
           interface statistics and can be used as NETCTRL or NETCTRL
           ioctl() commands.  All of the NETCTRL commands require
           appropriate privileges.  When request equals NETCTRL and
           arg.reqtype equals RESET_STATISTICS, all interface statistics
           counters are reset to zero.  When request equals NETSTAT, the
           current value of the statistic specified in arg.reqtype is
           returned.  The following section assumes that the specified
           request is NETSTAT.

                RX_FRAME_COUNT      Returns the number of packets received
                                    without error.

                TX_FRAME_COUNT      Returns the number of packets
                                    transmitted without error.

                UNTRANS_FRAMES      Returns the number of packets that, due
                                    to some error, could not be transmitted.

                UNDEL_RX_FRAMES     Returns the number of packets which were
                                    received, but due to some error, could
                                    not be delivered to an appropriate
                                    network connection.

                RX_BAD_CRC_FRAMES   Returns the number of packets received
                                    with a bad CRC.





 Hewlett-Packard Company            - 9 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                COLLISIONS          Returns the number of transmit attempts
                                    that were retransmitted due to
                                    collisons.

                RESET_STATISTICS    Not applicable.

                DEFERRED            Returns the number of packets that had
                                    to defer before transmission.

                ONE_COLLISION       Returns the number of transmissions
                                    completed with one collision.

                MORE_COLLISIONS     Returns the number of transmissions
                                    completed with more than one collision.

                EXCESS_RETRIES      Returns the number of packets that were
                                    not transmitted due to an excessive
                                    number of retries (16 or more).

                LATE_COLLISIONS     Returns the number of transmit packets
                                    for which the card detected a late
                                    collision.

                CARRIER_LOST        Returns the number of transmit packets
                                    that failed due to the loss of the
                                    carrier.  This is a hardware-dependent
                                    statistic that indicates problems with
                                    the Medium Attachment Unit (MAU)
                                    cabling.

                NO_HEARTBEAT        Returns the number of transmit packets
                                    for which no heartbeat was detected.
                                    This is a hardware-dependent statistic
                                    that indicates problems with the Medium
                                    Attachment Unit (MAU) cabling.

                ALIGNMENT_ERRORS    Returns the number of packets received
                                    with an alignment error and a bad CRC.
                                    These packets are also counted in the
                                    RX_BAD_CRC_FRAMES count.

                MISSED_FRAMES       Returns the number of times that the
                                    card missed packets due to lack of
                                    resources.

                BAD_CONTROL_FIELD   Returns the number of IEEE 802.3 packets
                                    received with an invalid control field.

                UNKNOWN_PROTOCOL    Returns the number of packets dropped
                                    because the type field or DSAP
                                    referenced an unknown protocol.



 Hewlett-Packard Company           - 10 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                RX_XID              Returns the number of IEEE 802.3 XID
                                    packets that were received.

                                    Refer to the discussion of the
                                    LOG_CONTROL command earlier on this
                                    reference page for more information
                                    about XID packets.

                RX_TEST             Returns the number of IEEE 802.3 TEST
                                    packets that were received.

                RX_SPECIAL_DROPPED  Returns the number of IEEE 802.3 XID or
                                    TEST packets that were received but not
                                    responded to due to lack of space on the
                                    outbound queue.

                NO_TX_SPACE         Returns the number of times that the
                                    card exhuasted its transmit buffer
                                    space.  This statistic is kept by Series
                                    800 systems only.

                LITTLE_RX_SPACE     Returns the number of times the card had
                                    one or no buffers to accept incoming
                                    packets.  This statistic is kept by
                                    Series 800 systems only.

                ILLEGAL_FRAME_SIZE  Returns the number of times the card
                                    received and discarded packets that were
                                    illegal in size (greater than 1514
                                    bytes).  This statistic is kept by
                                    Series 800 systems only.

                TDR                 Returns the time (in bit times) from
                                    when a frame started to transmit until a
                                    collision occurred.  This statistic can
                                    be useful for grossly determining where
                                    on the cable a problem is located.  This
                                    statistic is not updated after an
                                    external loopback frame is transmitted.
                                    This statistic is kept by Series 800
                                    systems only.

           The following commands are provided to collect interface
           statistics, but can be only used as NETSTAT commands.

                FRAME_HEADER        Return the Ethernet/IEEE 802.3 device
                                    header associated with the previous
                                    read() call.  The result of a
                                    FRAME_HEADER call is undefined if there
                                    has been no previous read().




 Hewlett-Packard Company           - 11 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                                    For Ethernet, arg.vtype is 14, and
                                    arg.value.s holds the following
                                    information:

                          s[0]..s[5]    holds the destination address, as
                                        determined by the sender;  this
                                        address could be the local Ethernet
                                        device's network station address, or
                                        a multicast/broadcast address;

                          s[6]..s[11]   holds the network station address of
                                        the sender's Ethernet device (i.e.
                                        source address);

                          s[12]..s[13]  holds the type field (user's
                                        address) as a 16-bit unsigned
                                        integer.

                                    For IEEE 802.3, arg.vtype is 17, and
                                    arg.value.s holds the following
                                    information:

                          s[0]..s[5]    holds the destination address, as
                                        determined by the sender.  This
                                        address could be the local IEEE
                                        802.3 device's network station
                                        address or a multicast/broadcast
                                        address.

                          s[6]..s[11]   holds the network station address of
                                        the sender's IEEE 802.3 device (i.e.
                                        source address).

                          s[12]..s[13]  holds the received packet's length,
                                        including data, the SSAP/DSAP and
                                        the control field.

                          s[14]         holds the destination sap value;

                          s[15]         holds the source sap value;

                          s[16]         holds the control field value.

                LOCAL_ADDRESS       Returns the address of the local
                                    Ethernet/IEEE 802.3 device in
                                    arg.value.s.  arg.vtype is 6 (length of
                                    arg.value.s).  Any byte of the address
                                    can be NULL.

                DEVICE_STATUS       Returns the current status of the
                                    Ethernet/IEEE 802.3 device.  Possible



 Hewlett-Packard Company           - 12 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                                    return values are INACTIVE,
                                    INITIALIZING, ACTIVE and FAILED.

                MULTICAST_ADDRESSES Returns the current number of accepted
                                    multicast addresses in arg.value.i.

                MULTICAST_ADDR_LIST Returns the current list of accepted
                                    multicast addresses in arg.value.s. The
                                    value specified in arg.vtype.s
                                    represents the number of bytes used for
                                    the contiguous address list in
                                    arg.value.s.  Each address is six bytes
                                    long.  The maximum number of bytes that
                                    can be returned is 96.

 DIAGNOSTICS
      If an error occurs, the error value is given in errno.

           [EIO]          read()/write() failure (includes timeout
                          conditions).

           [EPERM]        A user attempted to call a command that requires
                          privileges the user does not have.

           [ENOMEM]       Series 300 only.  One of the following:

                             o  Memory requested by LOG_READ_CACHE is
                                unavailable.
                             o  Memory requested by LOG_TYPE_FIELD is
                                unavailable.
                             o  Memory requested by LOG_SSAP is unavailable.
                             o  Memory requested by a write() call is
                                unavailable.

           [EBADF]        An attempt was made to write (or NETCTRL ioctl())
                          to a device that was opened with O_RDONLY
                          permission.

           [EBUSY]        An attempt was made to log a user-level address
                          that is already in use.

           [ENXIO]        One of the following:

                             o  An attempt was made to open() LAN device
                                with incorrect select code (Series 300/400)
                                or incorrect logical unit or protocol
                                (Series 700/800).  lanscan can be used to
                                display the select code (Series 300/400) or
                                the hardware path (Series 700/800) and the
                                logical unit of each LAN interface card (see
                                lanscan(1M)).



 Hewlett-Packard Company           - 13 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





                             o  The specified driver call could not complete
                                because the interface card was found to be
                                in a DEAD state.  The card must be reset
                                before any further interface activity can
                                resume.

           [EINTR]        During a blocked read, the calling process was
                          delivered a software interrupt prior to receiving
                          a packet on its inbound queue.

           [EDESTADDRREQ] read()/write() call preceded a LOG_TYPE_FIELD or
                          LOG_SSAP call.

                          write() call preceded a LOG_DEST_ADDR call.

           [EMSGSIZE]     An attempt was made to write() more than the
                          maximum bytes allowed by the selected protocol.

           [EINVAL]       One of the following:

                             o  An attempt was made to write() or read() a
                                negative number of bytes.

                             o  An attempt was made to open() with bad oflag
                                value.

                             o  LOG_DSAP call preceded a LOG_SSAP call.

                             o  LOG_TYPE_FIELD call was sent to an IEEE
                                802.3 device.

                             o  LOG_SSAP, LOG_DSAP, LOG_CONTROL, or RX_XID ,
                                RX_TEST, RX_SPECIAL_DROPPED,
                                BAD_CONTROL_FIELD calls were sent to an
                                Ethernet device.

                             o  An attempt was made to log a user address
                                and the SSAP or TYPE was out of range.

                             o  An attempt was made to change a type_field
                                or SSAP (user-level address).

                             o  Improper address format in an ioctl() call
                                involving an address.

                             o  An ADD_MULTICAST call was attempted but the
                                supplied address was already in the list.

                             o  An ADD_MULTICAST call was attempted but 16
                                multicast addresses were already logged
                                (list full).



 Hewlett-Packard Company           - 14 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)




                             o  A DELETE_MULTICAST call was attempted but
                                the supplied address was not in the list.

                             o  A DELETE_MULTICAST call was attempted but no
                                multicast addresses have been logged (list
                                empty).

                             o  An ADD_MULTICAST or DELETE_MULTICAST call
                                was attempted but the multicast bit was not
                                set in address operand.

                             o  Timeout value passed to LOG_READ_TIMEOUT was
                                negative.

                             o  Unknown arg.reqtype.

                             o  Incorrect arg.vtype.

                             o  fildes does not specify an active network
                                I/O device.

                             o  An attempt was made to set LLA_SIGNAL_MASK
                                with undefined events set in the mask
                                operand.

           [ENOSPC]       An attempt to write() a packet failed as a result
                          of an outbound queue overflow on the interface
                          card.

           [ENOBUFS]      An open(), read(), write(), or ioctl() call could
                          not get enough memory.

 NOTES
      The fstat() system call does not support LAN device files (see
      fstat(2)).  When fstat() is called on a LAN device file, the error
      code [EINVAL] is returned.  Use stat() instead (see stat(2)).

 WARNINGS
      Multiple processes sharing a file descriptor can interfere with each
      other, especially with respect to the commands LOG_READ_TIMEOUT,
      LOG_READ_CACHE, LOG_DEST_ADDR, and LLA_SIGNAL_MASK.

      Also, the network driver does not guarantee data delivery.  On a
      successful write(), the only guarantee is that data has been queued
      for transmission by the network I/O card.  Likewise, there is no
      guarantee that once transmitted, data is received by the target node.
      The desired degree of reliability must be coded into the user program.

 AUTHOR
      lan was developed by HP




 Hewlett-Packard Company           - 15 -     HP-UX Release 9.0: August 1992






 lan(7)                                                               lan(7)





 SEE ALSO
      lanscan(1M), close(2), fcntl(2), ioctl(2), open(2), read(2),
      select(2), signal(2), write(2), net_aton(3N).

      The Ethernet, A LAN: Data Link Layer and Physical Specification,
      Version 2.0, November 1982, Digital Equipment Corporation, Intel
      Corporation, Xerox Corporation

      CSMA/CD Access Method and Physical Specification, October 1984,
      Institute of Electrical and Electronic Engineers

      LLA Programmer's Guide.

 DEPENDENCIES
    Series 300
      NO_TX_SPACE, LITTLE_RX_SPACE, TDR,RX_XID, RX_TEST, RX_SPECIAL_DROPPED,
      MULTICAST_ADDR_LIST, and ILLEGAL_FRAME_SIZE statistics are not kept by
      Series 300 systems.




































 Hewlett-Packard Company           - 16 -     HP-UX Release 9.0: August 1992