Home | History | Annotate | Download | only in net
History log of /src/sys/net/if_arp.h
RevisionDateAuthorComments
 1.43  19-Feb-2021  christos - Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more
correct because it works with non-primitive types and provides the ABI
alignment for the type the compiler will use.
- Remove all the *_HDR_ALIGNMENT macros and asserts
- Replace POINTER_ALIGNED_P with ACCESSIBLE_POINTER which is identical to
ALIGNED_POINTER, but returns that the pointer is always aligned if the
CPU supports unaligned accesses.
[ as proposed in tech-kern ]
 1.42  17-Feb-2021  christos - pass the alignment instead of the mask (as Roy asked and to match the
other macro)
- use alignof to determine that alignment and CTASSERT what we expect
- remove unused macros
 1.41  16-Feb-2021  martin ARP headers only need 2 byte alignment - pointed out by roy.
 1.40  14-Feb-2021  christos - centralize header align and pullup into a single inline function
- use a single macro to align pointers and expose the alignment, instead
of hard-coding 3 in 1/2 the macros.
- fix an issue in the ipv6 lt2p where it was aligning for ipv4 and pulling
for ipv6.
 1.39  14-Feb-2021  roy if_arp: Just KASSERT that arphrd is aligned

While here improve readability of checking ARP IEEE1394 matches interface.
 1.38  13-Feb-2021  roy if_arp: Ensure that arphdr is aligned
 1.37  03-Feb-2021  roy CTASSERT -> __CTASSERT to unbreak userland build.

While here move __packed in tcp_debug.h back to where it was and
note removal warrants more investigation.
 1.36  03-Feb-2021  roy Sprinkle CTASSERT to enforce on-wire layout without __packed
 1.35  03-Feb-2021  roy Whitespace
 1.34  03-Feb-2021  roy Remove __packed from various network structures

They are already network aligned and adding the __packed attribute
just causes needless compiler warnings about accssing members of packed
objects.
 1.33  30-Jun-2018  christos branches: 1.33.12;
Provide an inline to return the data part of the arp packet instead of
open-coding it in multiple places.
 1.32  19-Apr-2018  christos branches: 1.32.2;
s/static inline/static __inline/g for consistency.
 1.31  13-Feb-2018  maxv branches: 1.31.2;
Define ar_* as inlined functions, not as macros. Makes it easier to
understand why ARPHRD_IEEE1394 needs to be handled with care - it doesn't
have ar_tha.
 1.30  31-Aug-2015  ozaki-r Replace ARP cache (llinfo) with lltable/llentry

Highlights of the change are:
- Use llentry instead of llinfo to manage ARP caches
- ARP specific data are stored in the hashed list
of an interface instead of the global list (llinfo_arp)
- Fine-grain locking on llentry
- arptimer (callout) per ARP cache
- the global timer callout with the big locks can be
removed (though softnet_lock is still required for now)
- net.inet.arp.prune is now obsoleted
- it was the interval of the global timer callout
- net.inet.arp.refresh is now obsoleted
- it was a parameter that prevents expiration of active caches
- Removed to simplify the timer logic, but we may be able to
restore the feature if really needed

Proposed on tech-kern and tech-net.
 1.29  15-Apr-2008  thorpej branches: 1.29.48; 1.29.68;
Make ARP stats per-cpu.
 1.28  20-Feb-2008  matt branches: 1.28.6;
s/u_\(int[0-9]*_t\)/u\1/g
(change u_int*_t to uint*_t)
 1.27  25-Dec-2007  perry Convert many of the uses of __attribute__ to equivalent
__packed, __unused and __dead macros from cdefs.h
 1.26  04-Mar-2007  christos branches: 1.26.16; 1.26.22; 1.26.24; 1.26.28;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.25  10-Dec-2005  elad branches: 1.25.26;
Multiple inclusion protection, as suggested by christos@ on tech-kern@
few days ago.
 1.24  07-Aug-2003  agc branches: 1.24.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.23  24-Jun-2002  itojun branches: 1.23.6;
integrate IEEE1394 ARP into generic ARP logic.
XXX there's no check at all in ar_hrd, and we don't set ar_hrd on outgoing.
it seems like a bad thing.
 1.22  12-Jun-2001  wiz branches: 1.22.2; 1.22.14;
receive, not recieve
 1.21  15-Aug-2000  jhawk branches: 1.21.2;
Add kernel counters for arp events, displayable with netstat -s -f arp
 1.20  27-Aug-1999  thorpej branches: 1.20.2;
packed -> __packed__
 1.19  08-May-1999  matt Add ARP hardware type for IEEE 1394 (FireWire)
 1.18  22-Mar-1999  bad branches: 1.18.4;
Add ARPHRD_IEEE802.
 1.17  23-Feb-1999  is Remove zero length array
 1.16  23-Feb-1999  kleink Addendum to rev. 1.15: use of __extension__ here is supported in GCC 2.8.0 and
above only; since this is the only occurence, fix it locally rather than in
<sys/cdefs.h> as to not remove all the functionality on pre-2.8 systems.
XXX Shouldn't use zero-length arrays at all.
 1.15  21-Feb-1999  kleink Zero-sized arrays are a GNU C extension; from Dave Sainty in PR kern/6271.
 1.14  10-Dec-1998  christos linted comment
 1.13  09-Feb-1998  perry add multiple inclusion protection (and cleanup).
 1.12  08-Sep-1997  mikel eliminate non-comment text after #endifs; from Dave Sainty in PR kern/4091
 1.11  25-Mar-1997  jonathan branches: 1.11.4;
Add ARP hardware type for Richochet "starmode" radio addresses.
 1.10  23-Mar-1997  is Fix several bugs related to the new ARP code, and ARCnet ARP support.
Among other, add ARPHRD_ARCNET definition, make sure the hardware type is
set on outgoing ARP packets, make sure we dont send out replies as broadcasts.
 1.9  15-Mar-1997  is New ARP system, supports IPv4 over any hardware link.

Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
 1.8  08-Mar-1995  cgd branches: 1.8.8;
fixed sized types, where appropriate. when casting pointers to
integers to do math on them, cast to long. ioctl commands are
u_longs.
 1.7  29-Jun-1994  cgd New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
 1.6  13-May-1994  mycroft Update to 4.4-Lite networking code, with a few local changes.
 1.5  05-Sep-1993  cassidy Add definitions for RARP request and reply.
 1.4  03-Aug-1993  glass more "warning: `/*' within comment" fixes
 1.3  20-May-1993  cgd add rcs ids to everything, and clean up headers
 1.2  19-Apr-1993  mycroft Add consistent multiple-inclusion protection.
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2  01-Mar-1998  fvdl Import 4.4BSD-Lite for reference
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.8.8.2  12-Mar-1997  is Merge in changes from The Trunk
 1.8.8.1  11-Feb-1997  is - Add macros, to if_arp.h:struct arphdr, to access an ARP messages' variable
fields based on the ar_hln and ar_pln fields.
- Add AR_ARP case to ether_output, using the ar_tha() macro defined above.
 1.11.4.1  16-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.18.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.20.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.21.2.2  01-Aug-2002  nathanw Catch up to -current.
 1.21.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.22.14.1  15-Jul-2002  gehenna catch up with -current.
 1.22.2.1  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.23.6.4  11-Dec-2005  christos Sync with head.
 1.23.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.23.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.23.6.1  03-Aug-2004  skrll Sync with HEAD
 1.24.16.4  27-Feb-2008  yamt sync with head.
 1.24.16.3  21-Jan-2008  yamt sync with head
 1.24.16.2  03-Sep-2007  yamt sync with head.
 1.24.16.1  21-Jun-2006  yamt sync with head.
 1.25.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.26.28.1  02-Jan-2008  bouyer Sync with HEAD
 1.26.24.1  26-Dec-2007  ad Sync with head.
 1.26.22.1  18-Feb-2008  mjf Sync with HEAD.
 1.26.16.2  23-Mar-2008  matt sync with HEAD
 1.26.16.1  09-Jan-2008  matt sync with HEAD
 1.28.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.29.68.1  22-Sep-2015  skrll Sync with HEAD
 1.29.48.1  03-Dec-2017  jdolecek update from HEAD
 1.31.2.2  28-Jul-2018  pgoyette Sync with HEAD
 1.31.2.1  22-Apr-2018  pgoyette Sync with HEAD
 1.32.2.1  10-Jun-2019  christos Sync with HEAD
 1.33.12.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed