ETHER(2)                                                 ETHER(2)

     NAME
          ether - Ethernet address manipulation

     SYNOPSIS
          include "ether.m";
          ether := load Ether Ether->PATH;

          Eaddrlen: con 6;

          init:   fn();
          parse:  fn(s: string): array of byte;
          text:   fn(a: array of byte): string;
          addressof:  fn(dev: string): array of byte;
          eqaddr: fn(a, b: array of byte): int;

     DESCRIPTION
          Ether provides a small set of functions that manipulate Eth-
          ernet MAC addresses, for the use of the few applications
          such as bootpd(8) that must work with them.

          Init must be called before using any other function in the
          module.

          Parse takes a textual representation of a MAC address in s
          and returns its internal representation as an array of bytes
          of length Eaddrlen, the form used in packets read and writ-
          ten via ether(3). S is a string of twelve hexadecimal dig-
          its, corresponding to the six bytes of a MAC address.  Each
          pair of digits can optionally be separated by a colon.  If s
          is invalid, parse returns nil.

          Text takes an array of bytes of length Eaddrlen and returns
          its textual representation (a string of twelve hexadecimal
          digits).  It returns `<invalid>' if the array is less than
          Eaddrlen, but it ignores any bytes beyond that.

          Addressof returns the MAC address of the given Ether device
          dev (eg, `/net/ether0'), which it reads from dev/addr.  It
          returns nil and sets the error string if that file does not
          exist or is invalid.

          Eqaddr returns true iff a and b are the same address.

     FILES
          net/etherN/addr   hardware address of Ether N

     SOURCE
          /appl/lib/ether.b

     SEE ALSO

     Page 1                       Plan 9            (printed 12/23/24)

     ETHER(2)                                                 ETHER(2)

          ip(2), ether(3)

     Page 2                       Plan 9            (printed 12/23/24)