diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man9/ethersubr.9 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man9/ethersubr.9')
| -rw-r--r-- | static/netbsd/man9/ethersubr.9 | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/static/netbsd/man9/ethersubr.9 b/static/netbsd/man9/ethersubr.9 new file mode 100644 index 00000000..7442859a --- /dev/null +++ b/static/netbsd/man9/ethersubr.9 @@ -0,0 +1,174 @@ +.\" $NetBSD: ethersubr.9,v 1.28 2020/01/20 18:38:18 thorpej Exp $ +.\" +.\" Copyright (c) 1997 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Ignatios Souvatzis. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd January 19, 2020 +.Dt ETHERSUBR 9 +.Os +.Sh NAME +.Nm ethersubr , +.Nm ether_ifattach , +.Nm ether_addmulti , +.Nm ether_delmulti , +.Nm ETHER_FIRST_MULTI , +.Nm ETHER_NEXT_MULTI , +.Nm ETHER_IS_MULTICAST +.Nd Ethernet driver support functions and macros +.Sh SYNOPSIS +.In net/if_ether.h +.Ft void +.Fn ether_ifattach "struct ifnet *ifp" "uint8_t *lla" +.Ft int +.Fn ether_addmulti "const struct sockaddr *sa" "struct ethercom *ec" +.Ft int +.Fn ether_delmulti "const struct sockaddr *sa" "struct ethercom *ec" +.Ft void +.Fn ETHER_FIRST_MULTI "struct ether_multistep step" "struct ethercom *ec" "struct ether_multi *enm" +.Ft void +.Fn ETHER_NEXT_MULTI "struct ether_multistep step" "struct ether_multi *enm" +.Ft int +.Fn ETHER_IS_MULTICAST "uint8_t *addr" +.Sh DESCRIPTION +The +.Nm +functions provide the interface between the +.Nm +module and the network drivers which need Ethernet support. +Such drivers must request the +.Ar ether +attribute in their +.Ar files +declaration and call the appropriate functions as specified below. +.Pp +Note that you also need the +.Xr arp 9 +stuff to support IPv4 on your hardware. +.Bl -tag -width compact +.It Fn ether_ifattach "ifp" "lla" +Perform the device-independent, but Ethernet-specific initialization of +the interface pointed to by +.Fa ifp . +.Pp +Among other duties, this function creates a record for the link level +address in the interface's address list and records the link level address +pointed to by +.Fa lla +there. +Drivers can initialize the link level address by themselves by calling +the function with +.Fa lla +as +.Dv NULL +and calling +.Fn if_set_sadl . +.Pp +This function must be called from the driver's attach function. +.It Fn ether_addmulti "sa" "ec" +.It Fn ether_delmulti "sa" "ec" +Add +.Pq Fn ether_addmulti +or delete +.Pq Fn ether_delmulti +the address described by the +.Fa sa +pointer to the Ethernet multicast list belonging to +.Fa ec . +.Pp +These functions must be called from the driver's ioctl function to +handle +.Dv SIOCADDMULTI +and +.Dv SIOCDELMULTI +requests. +If these return +.Er ENETRESET , +the hardware multicast filter must be reinitialized. +.Pp +These functions accept +.Dv AF_UNSPEC +addresses, which are interpreted as Ethernet addresses, or +.Dv AF_INET +addresses. +In the latter case, +.Dv INADDR_ANY +is mapped to a range describing all the Ethernet address +space reserved for IPv4 multicast addresses. +.Pp +The +.Fn ether_addmulti +returns +.Er EAFNOSUPPORT +if an unsupported address family is specified, +.Er EINVAL +if a non-multicast address is specified, or +.Er ENETRESET +if +the multicast list really changed and the driver should synchronize +its hardware filter with it. +.Pp +The +.Fn ether_delmulti +returns, in addition to the above errors, +.Er ENXIO +if the specified address +can't be found in the list of multicast addresses. +.It Fn ETHER_NEXT_MULTI "step" "enm" +A macro to step through all of the +.Em ether_multi +records, one at a time. +The current position is remembered in +.Fa step , +which the caller must provide. +.It Fn ETHER_FIRST_MULTI "step" "ec" "enm" +A macro that must be called to initialize +.Fa step +and get the first record. +Both macros return a +.Dv NULL +.Fa enm +when there are no remaining records. +.It Fn ETHER_IS_MULTICAST "addr" +A macro that returns 1, if +.Fa addr +points to an Ethernet/FDDI multicast (or broadcast) address. +.El +.Sh CODE REFERENCES +Ethernet support functions are declared in +.In net/if_ether.h +and defined (if not implemented as macro) in +.Pa sys/net/if_ethersubr.c . +.Sh SEE ALSO +.Xr arp 9 +.Sh HISTORY +Rewritten to attach to the new ARP system in +.Nx 1.3 . +.Sh AUTHORS +UCB CSRG (original implementation) +.Pp +.An Ignatios Souvatzis +(support for new ARP system) |
