glenda.party
term% ls -F
term% pwd
$home/manuals/9front/3/ether
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).

       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)