eri(7D)




NAME

     eri - eri Fast-Ethernet device driver


SYNOPSIS

     /dev/eri


DESCRIPTION

     The eri Fast Ethernet driver is a multi-threaded,  loadable,
     clonable,  STREAMS-based hardware driver supporting the con-
     nectionless Data Link Provider Interface  dlpi(7P)  over  an
     eri Fast-Ethernet controller. Multiple eri devices installed
     within the system are supported by the driver.

     The eri driver provides basic support for the  eri  hardware
     and handles the eri device. Functions include chip initiali-
     zation, frame transit and receive, multicast and promiscuous
     support, and error recovery and reporting.

     The eri device  provides  100Base-TX  networking  interfaces
     using  the SUN RIO ASIC and an internal transceiver. The RIO
     ASIC provides the PCI interface and MAC functions.  The phy-
     sical  layer  functions  are  provided by the internal tran-
     sceiver which connects to a RJ-45 connector.

     The 100Base-TX standard specifies an auto-negotiation proto-
     col to automatically select the mode and speed of operation.
     The internal transceiver  is  capable  of  performing  auto-
     negotiation  using the remote-end of the link (link partner)
     and receives the capabilities  of the remote end. It selects
     the   highest  common denominator mode of operation based on
     the priorities. It also supports a forced-mode of  operation
     under which the driver selects the mode of operation.


APPLICATION PROGRAMMING INTERFACE

     The cloning character-special device  /dev/eri  is  used  to
     access all eri controllers installed within the system.

  eri and DLPI
     The  eri driver is a "style 2" Data Link  Service  provider.
     All  M_PROTO  and M_PCPROTO type messages are interpreted as
     DLPI  primitives.  Valid  DLPI  primitives  are  defined  in
     <sys/dlpi.h>. Refer to dlpi(7P) for more information.

     An explicit DL_ATTACH_REQ message by the user is required to
     associate  the opened stream with a particular device (ppa).
     The ppa ID is interpreted as an unsigned integer  data  type
     and  indicates  the  corresponding  device  instance  (unit)
     number. An error (DL_ERROR_ACK) is returned by the driver if
     the  ppa  field  value does not correspond to a valid device
     instance number for this system. The device  is  initialized
     on first attach and de-initialized (stopped) at last detach.

     The values returned by the driver in the DL_INFO_ACK  primi-
     tive  in  response  to  the DL_INFO_REQ from the user are as
     follows:

        o  The  maximum  SDU  is  1500  (ETHERMTU  -  defined  in
           <sys/ethernet.h> ).

        o  The minimum SDU is 0.

        o  The dlsap address length is 8.

        o  The MAC type is DL_ETHER.

        o  The sap length values  is  -2,  meaning  the  physical
           address component is followed immediately  by a 2 byte
           sap component within the DLSAP address.

        o  The service mode is DL_CLDLS.

        o  Optional quality of service  (QOS)  is  not  currently
           supported so  QOS fields are 0.

        o  The provider style is DL_STYLE.

        o  The version is DL_VERSION_2.

        o  The broadcast address value is Ethernet/IEEE broadcast
           address (0xFFFFFF).

     Once  in  the  DL_ATTACHED  state,  the  user  must  send  a
     DL_BIND_REQ  to  associate  a particular SAP (Service Access
     Pointer) with the stream. The eri driver interprets the  sap
     field  within  the DL_BIND_REQ as an Ethernet "type," there-
     fore valid values for the sap field are  in  the  [0-0xFFFF]
     range.  Only one Ethernet type can be bound to the stream at
     any time.

     If the user selects a sap with a value of  0,  the  receiver
     will  be  in  IEEE  802.3 mode. All frames received from the
     media having a Ethernet type field in the range [0-1500] are
     assumed  to  be  802.3  frames  and  are  routed up all open
     Streams which are bound to sap value 0.  If  more  than  one
     Stream  is  in  802.3 mode, the frame will be duplicated and
     routed up multiple Streams as DL_UNITDATA_IND messages.

     In transmission, the driver checks  the  sap  field  of  the
     DL_BIND_REQ  to determine if the value is 0 or if the Ether-
     net type field is in the range [0-1500]. If either is  true,
     the driver computes the length of the message, not including
     initial M_PROTO mblk  (message  block),  of  all  subsequent
     DL_UNITDATA_REQ  messages,  and  transmits 802.3 frames that
     have this value in the MAC frame header length field.
     The eri driver's DLSAP address format consists of the 6 byte
     physical  (Ethernet)  address component followed immediately
     by the 2 byte sap (type)  component,  producing  an  8  byte
     DLSAP address. Applications should not hardcode to this par-
     ticular implementation-specific DLSAP address format but use
     information returned in the DL_INFO_ACK primitive to compose
     and decompose DLSAP addresses. The sap  length,  full  DLSAP
     length,  and  sap/physical  ordering are included within the
     DL_INFO_ACK. The physical address length can be computed  by
     subtracting  the  sap  length  from  the  full DLSAP address
     length or by issuing  the  DL_PHYS_ADDR_REQ  to  obtain  the
     current physical address associated with the stream.

     Once in the DL_BOUND state, the user may transmit frames  on
     the  Ethernet by sending DL_UNITDATA_REQ messages to the eri
     driver. The eri driver will route received  Ethernet  frames
     up all open and bound streams having a sap which matches the
     Ethernet type as DL_UNITDATA_IND messages.  Received  Ether-
     net  frames  are  duplicated  and  routed  up  multiple open
     streams if necessary. The DLSAP address contained within the
     DL_UNITDATA_REQ  and  DL_UNITDATA_IND  messages  consists of
     both the sap (type) and physical (Ethernet) components.

  eri Primitives
     In addition to the  mandatory  connectionless  DLPI  message
     set, the driver also supports the following primitives:

     The  DL_ENABMULTI_REQ   and   DL_DISABMULTI_REQ   primitives
     enable/disable   reception  of  individual  multicast  group
     addresses. A set of multicast addresses may  be  iteratively
     created and modified on a per-stream basis using these prim-
     itives. These primitives are accepted by the driver  in  any
     state following DL_ATTACHED.

     The DL_PROMISCON_REQ and DL_PROMISCOFF_REQ  primitives  with
     the   DL_PROMISC_PHYS   flag   set  in  the  dl_level  field
     enables/disables reception of all promiscuous mode frames on
     the  media,  including  frames  generated by the local host.
     When  used  with   the   DL_PROMISC_SAP   flag   set,   this
     enables/disables   reception  of  all  sap  (Ethernet  type)
     values. When used with the DL_PROMISC_MULTI flag  set,  this
     enables/disables reception of all multicast group addresses.
     The effect of each is  always  on  a  per-stream  basis  and
     independent  of  the other sap and physical level configura-
     tions on this stream or other streams.

     The DL_PHYS_ADDR_REQ primitive returns the 6 octet  Ethernet
     address currently associated (attached) to the stream in the
     DL_PHYS_ADDR_ACK primitive.  This primitive is valid only in
     states following a successful DL_ATTACH_REQ.

     The DL_SET_PHYS_ADDR_REQ primitive changes the 6 octet  Eth-
     ernet   address  currently  associated  (attached)  to  this
     stream. The credentials  of  the  process  which  originally
     opened  this  stream must be superuser, or EPERM is returned
     in the DL_ERROR_ACK. This primitive is  destructive  because
     it  affects  all current and future streams attached to this
     device. An  M_ERROR is sent up all other streams attached to
     this  device  when  this  primitive  is  successful  on this
     stream.
      Once changed, all streams subsequently opened and  attached
     to  this device will obtain this new physical address.  Once
     changed, the physical address will remain until this  primi-
     tive  is  used  to  change the physical address again or the
     system is rebooted, whichever comes first.

  eri DRIVER
     By default, the  eri  driver  performs  auto-negotiation  to
     select  the  mode and speed of the link, which can be in one
     of the  following modes,  as  described  in  the  100Base-TX
     standard:

        o  100 Mbps, full-duplex

        o  100 Mbps, half-duplex

        o  10 Mbps, full-duplex

        o  10 Mbps, half-duplex

     The auto-negotiation protocol automatically selects:

        o  Operation mode (half-duplex or full-duplex)

        o  Speed (100 Mbps or 10 Mbps)

     The auto-negotiation protocol does the following:

        o  Gets all modes of  operation  supported  by  the  link
           partner

        o  Advertises its capabilities to the Link Partner

        o  Selects the highest common denominator mode of  opera-
           tion based on the  priorities

     The internal transceiver is capable of all of the  operating
     speeds  and modes listed above. By default, auto-negotiation
     is used to select the speed and the mode of the link and the
     common mode of operation with the link partner.

     For users who want to select the  speed  and  mode  of   the
     link, the eri device supports programmable IPG (Inter-Packet
     Gap) parameters ipg1 and  ipg2. Sometimes, the user may want
     to  alter  these values depending on whether the driver sup-
     ports 10 Mbps or 100 Mpbs and accordingly, IPG will  be  set
     to 9.6 or 0.96 microseconds.

  eri Parameter List
     The eri driver provides  for  setting  and  getting  various
     parameters  for the  eri device. The parameter list includes
     current transceiver  status,  current  link  status,  inter-
     packet  gap, local transceiver capabilities and link partner
     capabilities.

     The local transceiver has two set of capabilities:  one  set
     reflects   hardware  capabilities, which are  read-only (RO)
     parameters. The second set reflects the values chosen by the
     user  and  is used in speed selection and possess read/write
     (RW) capability. At boot time, these two sets  of  capabili-
     ties  will be the same. Because the current default value of
     these parameters can only be read and not modified, the link
     partner capabilities are also read only.


FILES

     /dev/eri
           eri special character device.

     /kernel/drv/eri.conf
            System wide default device driver properties

     /kernel/drv/sparcv9/eri
            64 bit device driver


SEE ALSO

     ndd(1M),  netstat(1M),  driver.conf(4),  hme(7D),   qfe(7D),
     dlpi(7P)


Man(1) output converted with man2html