glenda.party
term% ls -F
term% cat index.txt
ETHER(3)                   Library Functions Manual                   ETHER(3)



NAME
       ether - Ethernet device

SYNOPSIS
       bind -a #ln /net

       /net/ethern/clone
       /net/ethern/addr
       /net/ethern/ifstats
       /net/ethern/stats
       /net/ethern/[0-7]
       /net/ethern/[0-7]/data
       /net/ethern/[0-7]/ctl
       /net/ethern/[0-7]/ifstats
       /net/ethern/[0-7]/stats
       /net/ethern/[0-7]/type

DESCRIPTION
       The  Ethernet  interface, /net/ethern, is a directory containing subdi‐
       rectories, one for each distinct Ethernet packet type, and clone, addr,
       ifstats,  and  stats  files.   stats and ifstats are the same as in the
       subdirectories (see below).  Reading addr returns the  MAC  address  of
       this interface in hex with no punctuation and no trailing newline.  The
       number n (optional in the bind) is the device number of the card,  per‐
       mitting multiple cards to be used on a single machine.

       Each directory contains files to control the associated connection, re‐
       ceive and send data, and supply statistics.  Incoming Ethernet  packets
       are  demultiplexed  by packet type and passed up the corresponding open
       connection.  Reading from the data file reads packets of that type  ar‐
       riving  from  the network.  A read will terminate at packet boundaries.
       Each write to the data file causes a packet to be sent.   The  Ethernet
       address  of  the  interface  is  inserted into the packet header as the
       source address.

       A connection is assigned to a packet type by opening its ctl  file  and
       writing connect n where n is a decimal integer constant identifying the
       Ethernet packet type.  A type of -1 enables the connection  to  receive
       copies of packets of all types.  A type of -2 enables the connection to
       receive copies of the first 64 bytes of packets of all types.  If  mul‐
       tiple  connections  are  assigned to a given packet type a copy of each
       packet is passed up each connection.

       Some interfaces also accept unique options when written to the ctl  (or
       clone)  file; see the description of wavelan in plan9.ini(8).  The con‐
       trol messages described in ip(3) under Configuring interfaces  from  to
       are  understood.   The  additional  control message makes write systems
       calls to this interface non-blocking iff followed by nothing or a  non-
       zero integer; a following makes writes block on a full output queue.

       Reading  the  ctl file returns the decimal index of the associated con‐
       nection, 0 through 7.  Reading the type file returns the decimal  value
       of  the  assigned Ethernet packet type.  Reading the stats file returns
       status information such as the Ethernet address of the card and general
       statistics,  independent of the interface; ifstats contains device-spe‐
       cific data and statistics about the card.

       An interface normally receives only those packets whose destination ad‐
       dress   is   that  of  the  interface  or  is  the  broadcast  address,
       ff:ff:ff:ff:ff:ff.  The interface can be made to receive all packets on
       the network by writing the string promiscuous to the ctl file.  The in‐
       terface remains promiscuous until the control file is closed.  The  ex‐
       tra packets are passed up connections only of types -1 and -2.

SOURCE
       /sys/src/9/*/devether.c



                                                                      ETHER(3)