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)