History log of /freebsd-current/usr.sbin/arp/arp.c
Revision Date Author Comments
# ec8a394d 11-Apr-2024 Elyes Haouas <ehaouas@noos.fr>

usr.sbin: Remove repeated words

Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/887


# 0b8224d1 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

Remove copyright strings ifdef'd out

We've ifdef'd out the copyright strings for some time now. Go ahead and
remove the ifdefs. Plus whatever other detritis was left over from other
recent removals. These copyright strings are present in the comments and
are largely from CSRG's attempt at adding their copyright to every
binary file (which modern interpretations of the license doesn't
require).

Sponsored by: Netflix


# 8a7b6120 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

usr.sbin: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# 79278872 14-Sep-2023 R. Christian McDonald <rcm@rcm.sh>

arp(8): fix by-interface and by-host filtering when using netlink

arp(8) has traditionally supported filtering by interface via -i and
by hostname. However, this functionality was omitted from the initial
netlink-ification of arp. This patch re-introduces this filtering
functionality.

This patch also improves by-interface filtering by storing and using the
ifindex of the requested interface for filtering instead of comparing
interface name strings

Reviewed by: melifaro
Sponsored by: Rubicon Communications, LLC ("Netgate")


# 1d386b48 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 72e1ea2f 07-Jul-2023 Alfonso Gregory <gfunni234@gmail.com>

Mark usage function as __dead2 in programs where it does not return

In most cases, usage does not return, so mark them as __dead2. For the
cases where they do return, they have not been marked __dead2.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/735


# 6ad73dbf 25-Apr-2023 Alexander V. Chernikov <melifaro@FreeBSD.org>

arp: convert arp(8) to netlink.

The change is intended to be fully transparent to the users.
Similarly to route(8) and netstat(8), arp can be build without
netlink by defining WITHOUT_NETLINK in make.conf.

Differential Revision: https://reviews.freebsd.org/D39720


# d80d7349 04-Jul-2022 KUROSAWA Takahiro <takahiro.kurosawa@gmail.com>

arp(8): use getifaddrs(3) instead of ioctl(SIOCGIFCONF)

The original code had used a fixed-size buffer for ioctl(SIOCGIFCONF),
that might cause the target ifreq spilled from the buffer. Use the handy
getifaddrs(3) to fix the problem.

Reviewed by: glebius
Differential revision: https://reviews.freebsd.org/D35536


# a0d6d0d0 12-Apr-2021 Tai-hwa Liang <avatar@FreeBSD.org>

arp(8): fixing the deletion failure of IEEE1394 associated addresses

Without this, 'arp -d ${IEEE1394_ADDRESS}' gives the following error:

arp: delete: cannot locate 10.0.0.71

Reviewed by: glebius
MFC after: 2 weeks


# f9e1cd6c 19-Feb-2021 Alexander V. Chernikov <melifaro@FreeBSD.org>

Fix arp/ndp deletion broken by 2fe5a79425c7.

Changes in the 2fe5a79425c7 moved dst sockaddr masking from the
routing control plane to the rtsock code.

It broke arp/ndp deletion.
It turns out, arp/ndp perform RTM_GET request first to get an
interface index necessary for the deletion.
Then they simply stamp the reply with RTF_LLDATA and set the
command to RTM_DELETE.
As a result, kernel receives request with non-empty RTA_NETMASK
and clears RTA_DST host bits before passing the message to the
lla code.

De facto, the only needed bits are RTA_DST, RTA_GATEWAY and the
subset of rtm_flags.

With that in mind, fix the interace by clearing RTA_NETMASK
for every messages with RTF_LLDATA.

While here, cleanup arp/ndp code a bit.

MFC after: 1 day
Reviewed by: gnn
Differential Revision: https://reviews.freebsd.org/D28804


# 693d3816 09-Jan-2020 Eugene Grosbein <eugen@FreeBSD.org>

arp(8): avoid segfaulting due to out-of-bounds memory access

Fix obvious mistake that sometimes results in reading memory
past end of an array.

PR: 240825
MFC after: 1 week


# 69f0fecb 28-Mar-2018 Brooks Davis <brooks@FreeBSD.org>

Remove infrastructure for token-ring networks.

Reviewed by: cem, imp, jhb, jmallett
Relnotes: yes
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14875


# 8a16b7a1 20-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

General further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.


# 2f8c6c0a 16-Apr-2017 Patrick Kelsey <pkelsey@FreeBSD.org>

Fix userland tools that don't check the format of routing socket
messages before accessing message fields that may not be present,
removing dead/duplicate/misleading code along the way.

Document the message format for each routing socket message in
route.h.

Fix a bug in usr.bin/netstat introduced in r287351 that resulted in
pointer computation with essentially random 16-bit offsets and
dereferencing of the results.

Reviewed by: ae
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D10330


# a2ac74c1 06-Apr-2017 Renato Botelho <garga@FreeBSD.org>

Introduce libxo support to arp(8)

Reviewed by: wblock, gnn, allanjude, phil
Approved by: allanjude
MFC after: 1 week
Sponsored by: Rubicon Communications (Netgate)
Differential Revision: https://reviews.freebsd.org/D9563


# fbbd9655 28-Feb-2017 Warner Losh <imp@FreeBSD.org>

Renumber copyright clause 4

Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by: Jan Schaumann <jschauma@stevens.edu>
Pull Request: https://github.com/freebsd/freebsd/pull/96


# 7814b3b8 09-Feb-2017 Renato Botelho <garga@FreeBSD.org>

Cleanup on usr.sbin/arp/arp.c

* 'blackhole' and 'reject' are mutually exclusive, replace printf() by errx()
when both are selected.
* 'trail' option is no longer supported since first import of arp from 4.4BSD.
XXX message was added 13 years ago in r128192. I believe it's time to remove
it.
* Use warnx() to print some informative messages instead of printf()
* Replace strncmp() by strcmp() when validating parameters and exit when invalid
parameter is found

Reviewed by: allanjude, vangyzen, cem
Approved by: allanjude
MFC after: 1 week
Sponsored by: Rubicon Communications (Netgate)
Differential Revision: https://reviews.freebsd.org/D9504


# 04ae8c64 08-Feb-2017 Renato Botelho <garga@FreeBSD.org>

Fix style(9)

Reviewed by: vangyzen, allanjude, cem
Approved by: allanjude
MFC after: 1 week
Sponsored by: Rubicon Communications (Netgate)
Differential Revision: https://reviews.freebsd.org/D9494


# 4a336ef4 26-Sep-2015 Alexander V. Chernikov <melifaro@FreeBSD.org>

rtsock requests for deleting interface address lles started to return EPERM
instead of old "ignore-and-return 0" in r287789. This broke arp -da /
ndp -cn behavior (they exit on rtsock command failure). Fix this by
translating LLE_IFADDR to RTM_PINNED flag, passing it to userland and
making arp/ndp ignore these entries in batched delete.

MFC after: 2 weeks


# 595f03fe 02-Apr-2015 Mark Johnston <markj@FreeBSD.org>

arp(8): add support for printing and deleting entries of type
IFT_INFINIBAND, used in IPoIB.

PR: 151594
Submitted by: Anthony Cornehl <accornehl@gmail.com>
Reviewed by: hselasky
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# c1ed96c2 05-Apr-2014 George V. Neville-Neil <gnn@FreeBSD.org>

Speed up the lookup of interfaces when there are a large number
of them, such in a system with a large number of VLANs.

Submitted by: Nick Rogers
MFC after: 2 weeks


# 876fc15d 23-Sep-2013 Gleb Smirnoff <glebius@FreeBSD.org>

Fix coredump on 'arp -d'.

Submitted by: az
Approved by: re (kib)


# 9711a168 31-Jan-2013 Gleb Smirnoff <glebius@FreeBSD.org>

Retire struct sockaddr_inarp.

Since ARP and routing are separated, "proxy only" entries
don't have any meaning, thus we don't need additional field
in sockaddr to pass SIN_PROXY flag.

New kernel is binary compatible with old tools, since sizes
of sockaddr_inarp and sockaddr_in match, and sa_family are
filled with same value.

The structure declaration is left for compatibility with
third party software, but in tree code no longer use it.

Reviewed by: ru, andre, net@


# 120a742b 02-Apr-2012 Gleb Smirnoff <glebius@FreeBSD.org>

Historically arp(8) did a route lookup for the entry it is
about to add, and failed if it exist and had invalid data
link type.

Later on, in r201282, this check morphed to other code, but
message "proxy entry exists for non 802 device" still left,
and now it is printed in a case if route prefix found is
equal to current address being added. In other words, when
we are trying to add ARP entry for a network address. The
message is absolutely unrelated and disappointing in this
case.

I don't see anything bad with setting ARP entries for
network addresses. While useless in usual network,
in a /31 RFC3021 it may be necessary. This, remove this code.


# 84d8f5b8 30-Nov-2010 Gleb Smirnoff <glebius@FreeBSD.org>

Do not hardcode (20*60), but use current ARP timeout value configured
in kernel.


# 5d067f6c 30-Nov-2010 Gleb Smirnoff <glebius@FreeBSD.org>

That should belong to r216075. Pointy hat on me.


# a98c06f1 30-Nov-2010 Gleb Smirnoff <glebius@FreeBSD.org>

Use time_uptime instead of non-monotonic time_second to drive ARP
timeouts.

Suggested by: bde


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# e78c7a0a 11-Jun-2010 Max Laier <mlaier@FreeBSD.org>

Cache the last result from if_indextoname for printing. This speeds up
"arp -an" when using a lot of aliases (on a single interface).

A better fix would include a better interface for if_indextoname than
getting the whole address list from the kernel just to find the one
index->name mapping.

Reported & analyzed by: Nick Rogers
MFC after: 3 days


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 9cdec2ba 22-Feb-2010 Ruslan Ermilov <ru@FreeBSD.org>

MFC: r203919: Show when an ARP entry expires (now that this info
cannot be obtained with netstat(1)).


# 92968305 15-Feb-2010 Ruslan Ermilov <ru@FreeBSD.org>

Show when an ARP entry expires.

MFC after: 1 week


# bd048c87 12-Jan-2010 John Baldwin <jhb@FreeBSD.org>

MFC 201202:
Use reallocf() to simplify some logic.


# 32c53401 05-Jan-2010 Qing Li <qingli@FreeBSD.org>

MFC r201282, r201543

r201282
-------
The proxy arp entries could not be added into the system over the
IFF_POINTOPOINT link types. The reason was due to the routing
entry returned from the kernel covering the remote end is of an
interface type that does not support ARP. This patch fixes this
problem by providing a hint to the kernel routing code, which
indicates the prefix route instead of the PPP host route should
be returned to the caller. Since a host route to the local end
point is also added into the routing table, and there could be
multiple such instantiations due to multiple PPP links can be
created with the same local end IP address, this patch also fixes
the loopback route installation failure problem observed prior to
this patch. The reference count of loopback route to local end would
be either incremented or decremented. The first instantiation would
create the entry and the last removal would delete the route entry.

r201543
-------
The IFA_RTSELF address flag marks a loopback route has been installed
for the interface address. This marker is necessary to properly support
PPP types of links where multiple links can have the same local end
IP address. The IFA_RTSELF flag bit maps to the RTF_HOST value, which
was combined into the route flag bits during prefix installation in
IPv6. This inclusion causing the prefix route to be unusable. This
patch fixes this bug by excluding the IFA_RTSELF flag during route
installation.

PR: ports/141342, kern/141134


# c7ab6602 30-Dec-2009 Qing Li <qingli@FreeBSD.org>

The proxy arp entries could not be added into the system over the
IFF_POINTOPOINT link types. The reason was due to the routing
entry returned from the kernel covering the remote end is of an
interface type that does not support ARP. This patch fixes this
problem by providing a hint to the kernel routing code, which
indicates the prefix route instead of the PPP host route should
be returned to the caller. Since a host route to the local end
point is also added into the routing table, and there could be
multiple such instantiations due to multiple PPP links can be
created with the same local end IP address, this patch also fixes
the loopback route installation failure problem observed prior to
this patch. The reference count of loopback route to local end would
be either incremented or decremented. The first instantiation would
create the entry and the last removal would delete the route entry.

MFC after: 5 days


# c34169d4 29-Dec-2009 John Baldwin <jhb@FreeBSD.org>

Use reallocf() to simplify some logic.

MFC after: 2 weeks


# c5047621 14-Aug-2009 Remko Lodder <remko@FreeBSD.org>

Remove bogus char cast.

PR: 118014
Submitted by: Gardner Bell <gbell72 at rogers dot com>
Approved by: re (rwatson), imp (mentor, implicit)
MFC after: immediate

Approved by: re (rwatson), imp (mentor, implicit)


# eac295c9 14-Aug-2009 Remko Lodder <remko@FreeBSD.org>

Remove bogus char cast.

PR: 118014
Submitted by: Gardner Bell <gbell72 at rogers dot com>
Approved by: re (rwatson), imp (mentor, implicit)
MFC after: immediate


# be5d11dc 11-Jun-2009 Dag-Erling Smørgrav <des@FreeBSD.org>

As of sam's r175206, arp builds cleanly at WARNS level 6, but the Makefile
was never updated. Also, clean up the macro that caused the warning in the
first place (no functional changes, just wrapped and reindented).


# 8eca593c 26-Dec-2008 Qing Li <qingli@FreeBSD.org>

This checkin addresses a couple of issues:
1. The "route" command allows route insertion through the interface-direct
option "-iface". During if_attach(), an sockaddr_dl{} entry is created
for the interface and is part of the interface address list. This
sockaddr_dl{} entry describes the interface in detail. The "route"
command selects this entry as the "gateway" object when the "-iface"
option is present. The "arp" and "ndp" commands also interact with the
kernel through the routing socket when adding and removing static L2
entries. The static L2 information is also provided through the
"gateway" object with an AF_LINK family type, similar to what is
provided by the "route" command. In order to differentiate between
these two types of operations, a RTF_LLDATA flag is introduced. This
flag is set by the "arp" and "ndp" commands when issuing the add and
delete commands. This flag is also set in each L2 entry returned by the
kernel. The "arp" and "ndp" command follows a convention where a RTM_GET
is issued first followed by a RTM_ADD/DELETE. This RTM_GET request fills
in the fields for a "rtm" object, which is reinjected into the kernel by
a subsequent RTM_ADD/DELETE command. The entry returend from RTM_GET
is a prefix route, so the RTF_LLDATA flag must be specified when issuing
the RTM_ADD/DELETE messages.

2. Enforce the convention that NET_RT_FLAGS with a 0 w_arg is the
specification for retrieving L2 information. Also optimized the
code logic.

Reviewed by: julian


# 2293dac2 24-Dec-2008 Tom Rhodes <trhodes@FreeBSD.org>

Print a warning when blackhole and reject are used together.
Update arp.8 manual page syntax.

PR: 125896
Submitted by: Marc Olzheim <marcolz@stack.nl>
Approved by: sam


# 6e6b3f7c 14-Dec-2008 Qing Li <qingli@FreeBSD.org>

This main goals of this project are:
1. separating L2 tables (ARP, NDP) from the L3 routing tables
2. removing as much locking dependencies among these layers as
possible to allow for some parallelism in the search operations
3. simplify the logic in the routing code,

The most notable end result is the obsolescent of the route
cloning (RTF_CLONING) concept, which translated into code reduction
in both IPv4 ARP and IPv6 NDP related modules, and size reduction in
struct rtentry{}. The change in design obsoletes the semantics of
RTF_CLONING, RTF_WASCLONE and RTF_LLINFO routing flags. The userland
applications such as "arp" and "ndp" have been modified to reflect
those changes. The output from "netstat -r" shows only the routing
entries.

Quite a few developers have contributed to this project in the
past: Glebius Smirnoff, Luigi Rizzo, Alessandro Cerri, and
Andre Oppermann. And most recently:

- Kip Macy revised the locking code completely, thus completing
the last piece of the puzzle, Kip has also been conducting
active functional testing
- Sam Leffler has helped me improving/refactoring the code, and
provided valuable reviews
- Julian Elischer setup the perforce tree for me and has helped
me maintaining that branch before the svn conversion


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# e653f1f0 18-Mar-2008 Sam Leffler <sam@FreeBSD.org>

add reject+blackhole keywords to install entries with RTF_BLACKHOLE
and RTF_REJECT, respectively

PR: bin/79228
Submitted by: Dan Lukes <dan@obluda.cz>
MFC after: 2 weeks


# 0c80179c 09-Jan-2008 Sam Leffler <sam@FreeBSD.org>

quiet compiler complaint about comparing &v against NULL


# d0691403 06-Mar-2007 Kevin Lo <kevlo@FreeBSD.org>

Use sizeof() for calculating the buffer size instead of hard-coded values.


# 06274cee 12-Oct-2006 Gleb Smirnoff <glebius@FreeBSD.org>

- Before doing ioctl(SIOCGIFNETMASK) put the proper IP address into the ifreq,
to obtain correct netmask in case of interface with multiple aliases.
- While here, remove a comment with a bad idea.

PR: bin/42120
Submitted by: Dmitry Frolov <frolov riss-telecom.ru>


# f6385e48 29-Sep-2006 Ruslan Ermilov <ru@FreeBSD.org>

Sync utility's usage() with manpage's SYNOPSIS.


# a47c388c 08-Feb-2006 Gleb Smirnoff <glebius@FreeBSD.org>

Refuse to install invalid ARP entries.

Submitted by: Vitaliy Ovsyannikov <V.Ovsyannikov kr.ru>


# 582fa422 10-Jan-2006 Brooks Davis <brooks@FreeBSD.org>

Update usage to reflect the fact that the -d -a now accepts -i <interface>.

Reminded by: ru
Pointy hat: brooks


# 08369852 09-Jan-2006 Brooks Davis <brooks@FreeBSD.org>

Allow the -i <interface> option with -d -a to allow all arp entries for
a given interface to be removed.


# 9af9b983 02-Nov-2005 Andrew Thompson <thompsa@FreeBSD.org>

List IFT_BRIDGE as a valid type so that arp entries can be properly deleted.

Submitted by: Michal Mertl <mime^traveller.cz>


# f3f8b226 09-Jun-2005 Ruslan Ermilov <ru@FreeBSD.org>

Commit some cosmetic fixes I developed some time ago, mostly style but
one functional change (fixed exit status from the "get" operation).


# cf779589 09-Jun-2005 Gleb Smirnoff <glebius@FreeBSD.org>

Fix exit status. In rev. 1.48 return logic of rtmsg() was confused. This
made arp(8) command exit status reversed for -s and -S.

Reported by: sem
MFC after: 2 weeks


# 19beed5e 24-Jan-2005 Maxim Konovalov <maxim@FreeBSD.org>

o Reorganize the previous delta to make it more style(9) compliant.

Submitted by: ru

o Reduce an amount of memory we ask in advance.


# 66658902 24-Jan-2005 Maxim Konovalov <maxim@FreeBSD.org>

o Try hard to guess a buffer size for a fast growing routing table.
An approach taken from killall/killall.c.

PR: bin/76075
Submitted by: Dmitrij Tejblum
MFC after: 3 weeks


# 596e374d 24-Dec-2004 Ruslan Ermilov <ru@FreeBSD.org>

For VLAN interfaces, print MAC addresses properly.
(Broken in rev. 1.52.)

PR: 75471
Submitted by: Jon Simola
MFC after: 3 days


# 23717fc4 06-Aug-2004 Warner Losh <imp@FreeBSD.org>

Per letter dated July 22, 1999, delete clause 3 from code directly
from Berkeley.


# 21816de3 13-Jun-2004 Doug Rabson <dfr@FreeBSD.org>

Be smarter about printing non-ethernet link-level addresses.


# 1a5ff928 08-Jun-2004 Stefan Farfeleder <stefanf@FreeBSD.org>

Avoid assignments to cast expressions.

Reviewed by: md5
Approved by: das (mentor)


# 68839124 13-Apr-2004 Luigi Rizzo <luigi@FreeBSD.org>

Massive cleanup of the code removing global variables to
pass function arguments and results.

Hopefully no functional changes except fixing a couple of
bugs which could cause endless loops if an ioctl() on an
interface would fail.


# 0b46c085 13-Apr-2004 Luigi Rizzo <luigi@FreeBSD.org>

Replace ROUNDUP/ADVANCE with SA_SIZE


# bdf932ae 13-Apr-2004 Luigi Rizzo <luigi@FreeBSD.org>

Make functions and variables static.
Remove global variables in favour of local ones.
Fix indentation of a couple of switch statements.

Overall, this program badly need cleaning up, as it relies
on information passed around through global variables.


# e2416749 09-Apr-2004 Maxime Henrion <mux@FreeBSD.org>

- Change several errx() calls that should have been err() calls.
- Handle empty ARP tables properly.
- Remove register keyword.
- arp(8) is WARNS?=4 clean, so mark it as such to avoid regressions.


# b9de94e9 18-Jul-2003 Yaroslav Tykhiy <ytykhiy@gmail.com>

Implement a new option: -i, which will allow to limit
the scope of operation to the ARP entries on a particular
interface. It should be useful on machines with numerous
network interfaces, e.g., on inter-VLAN routers.

PR: bin/54151
Submitted by: Dmitry Morozovsky <marck at rinet.ru>
Discussed on: -net
MFC after: 2 weeks


# b728350e 03-May-2003 David E. O'Brien <obrien@FreeBSD.org>

Use __FBSDID over rcsid[]. Protect copyright[] where needed.


# 4bfc3624 05-Mar-2003 Ruslan Ermilov <ru@FreeBSD.org>

Further fix the syntax by ignoring empty and whitespace-only lines.

Prompted by: Eugene Grosbein <eugen@kuzbass.ru>


# 3adcd042 17-Jan-2003 Ruslan Ermilov <ru@FreeBSD.org>

Don't hide global `s'.


# 44acbc1a 27-Dec-2002 Ruslan Ermilov <ru@FreeBSD.org>

POLA dictates that in the file designated with the -f option
argument, leading whitespace and empty lines be ignored, and
the `#' character marks the rest of the line as a comment.

PR: bin/45958
MFC after: 3 days


# 42f3352b 24-Jul-2002 Juli Mallett <jmallett@FreeBSD.org>

Change 'int pid' to 'pid_t pid'

Submitted by: Bruce "Allah" Dang <bruce@research.teamxor.org>


# 2ab778e1 08-May-2002 Bill Paul <wpaul@FreeBSD.org>

Unbreak this file after the last drive-by committing. We have to
#include route.h before iso88025.h, and we have to dereference
the trld_route array correctly. (NOTE: I'm not altogether sure
that this is really the correct way to traverse this array. This
just eliminates the build warning/error. It may not work right at
runtime, and I have no way to test it since I lack the necessary
hardware.)

Broken by: kbyanc, who gets to wear the pointy hat


# 97fe20b4 07-May-2002 Kelly Yancey <kbyanc@FreeBSD.org>

Update ARP to access token-ring source routing information at it's new
location.

Not tested by: me (sorry!)
Sponsored by: NTT Multimedia Communications Labs


# 123b2d4a 06-Apr-2002 Murray Stokely <murray@FreeBSD.org>

GCC 3.1 cleanup - add a break after default: at the end of a switch
statement.


# a03b1b7c 06-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Don't reinvent the wheel now that ether_ntoa(3) has been fixed
to print leading zeros in libc_net/ether_addr.c,v 1.13.

MFC after: 3 days


# 467a0b06 01-Apr-2002 Mike Barcroft <mike@FreeBSD.org>

Include <string.h> for some prototypes, rather than depending on
pollution from <strings.h>.


# 9cc7cb58 19-Mar-2002 Mike Heffner <mikeh@FreeBSD.org>

Fix bugs from previous commit: initialize the correct field and use
the correct local variable.

Caught by: Joachim Isaksson <Joachim.Isaksson@algitech.com>
Pointy hat to: mikeh


# 9d34414b 09-Dec-2001 Mike Heffner <mikeh@FreeBSD.org>

WARNS=2 cleanup.

Submitted by: Maxime Henrion <mux@qualys.com>
MFC after: 2 weeks


# 04427472 18-Oct-2001 Matthew N. Dodd <mdodd@FreeBSD.org>

Print [fddi] or [atm] tags for ARP addresses on interfaces of that type.


# e87a372b 08-Oct-2001 Ruslan Ermilov <ru@FreeBSD.org>

Print interface name for each ARP entry.

Prodded by: Igor Podlesny <poige@morning.ru>
MFC after: 1 week


# 3f844a22 06-Jun-2001 Ruslan Ermilov <ru@FreeBSD.org>

- Renamed the ``proxy'' modifier of the -d flag to ``pub'',
to be consistent with the -s flag. Updated documentation
on what this modifier does.

- Added the ``only'' keyword to the -s and -S flags, that
could be used to created "proxy-only" published entries.
Previously, arp(8) created an entry of this type only
in the absence of the route to a destination.

PR: bin/12357
MFC after: 1 week


# ae14be20 02-May-2001 Yaroslav Tykhiy <ytykhiy@gmail.com>

Add a missing free(3).

PR: bin/27001
Submitted by: alex <ml-freebsd-net@phobgate.de>,
Matthew Emmerton <matt@gsicomp.on.ca>


# 88d5b613 04-Apr-2001 Yaroslav Tykhiy <ytykhiy@gmail.com>

Add the VLAN interface type to the list of ARP-capable interface types.


# 5651a036 07-Mar-2001 Bill Fumerola <billf@FreeBSD.org>

zeropad mac address ouput

PR: bin/25584
Submitted by: David Xu <davidx@viasoft.com.cn>
Reviewed by: wollman, billf


# 59aadf93 28-Feb-2001 Warner Losh <imp@FreeBSD.org>

h_errno is declared in netdb.h.


# eec827b0 27-Feb-2001 Ruslan Ermilov <ru@FreeBSD.org>

Print a diagnostic message if no interface could be determined
when attempting to create a published ARP entry. For example:

# arp -s 1.1.1.1 auto pub

PR: bin/7753
Submitted by: Jonathan Hanna <pangolin@home.com>


# 9ea1ba64 05-Feb-2001 Ruslan Ermilov <ru@FreeBSD.org>

Make the ``arp -d hostname proxy'' really do something useful.

Specifically, ``proxy'' modifier tells the code to delete only
Proxy ARP entry for the ``hostname''; the usual ARP entry will
be unaffected by this operation.


# e03bb411 01-Feb-2001 Archie Cobbs <archie@FreeBSD.org>

Revert previous checkin ("proxy" is required in some instances).
Add a note to that effect to the man page.


# bceb4f5a 30-Jan-2001 Archie Cobbs <archie@FreeBSD.org>

Fix documentation: "proxy" is not a keyword for the arp(8) command line.


# 1fece1a6 03-Mar-2000 Yoshinobu Inoue <shin@FreeBSD.org>

Change type of vars which hold in_addr.s_addr from u_long to u_int32_t,
for more safety on alpha.

Approved by: jkh


# 135adb1e 16-Jan-2000 Jordan K. Hubbard <jkh@FreeBSD.org>

Fix syntax error in previous commit.


# 0cecd500 16-Jan-2000 Kris Kennaway <kris@FreeBSD.org>

Don't overflow buffers.

Reviewed by: audit@freebsd.org


# 08e13cdf 20-Sep-1999 Ruslan Ermilov <ru@FreeBSD.org>

Yet another align.
It will be required if sizeof(struct sockaddr_in) changes in the future.

Not objected to by: wollman


# 3a6a5ebe 13-Sep-1999 Ruslan Ermilov <ru@FreeBSD.org>

Align sockaddrs passed to/from the routing socket as supposed by kernel.

PR: 12847
Spotted by: Key Teck Sin <ktsin@acm.org>
Reviewed by: wollman


# 97d92980 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 3816c56c 04-Jun-1999 Archie Cobbs <archie@FreeBSD.org>

When incrementing through a SIOCGIFCONF list, enforce a lower limit of
sizeof(ifr->ifr_addr) for the variable length field ifr->ifr_addr.sa_len.
Otherwise the increment will be wrong in certain cases.

Obtained from: Whistle source tree
For the record: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> suggests
SIOCGIFCONF should be dropped in favor of a sysctl mechanism.


# fda82fc2 10-Mar-1999 Julian Elischer <julian@FreeBSD.org>

Submitted by: Larry Lile
Move the Olicom token ring driver to the officially sanctionned location of
/sys/contrib. Also fix some brokenness in the generic token ring support.

Be warned that if_dl.h has been changed and SOME programs might
like recompilation.


# cc03533c 16-Jan-1998 Bruce Evans <bde@FreeBSD.org>

Removed most unused includes of <net/if_var.h> outside the kernel.


# 8dc4b495 12-Nov-1997 Julian Elischer <julian@FreeBSD.org>

Submitted by: Archie@Whistle.com (Archie Cobbs)

allow teh -a option to work with the -d option
thus:
arp -d -a now flushes your arp cache.
also fix the -n option so that -an now works correctly.


# c72049e4 03-Sep-1997 Philippe Charnier <charnier@FreeBSD.org>

Use err(3). Document -n flag from OpenBSD.
Obtained from: OpenBSD.


# 59fe2c14 02-Aug-1997 Bruce Evans <bde@FreeBSD.org>

Import Lite2's src/usr.sbin, except for timed. All changed files
except one unimportant one have already left the vendor branch.


# f4c1975c 23-Apr-1997 Bruce Evans <bde@FreeBSD.org>

Removed inconsistent declaration of malloc(). `make world' with DESTDIR
set to something other than "/" now actually works.


# 6c3f552a 30-Mar-1997 Warner Losh <imp@FreeBSD.org>

compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.


# 476602a9 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 702a1d01 03-Jan-1997 Garrett Wollman <wollman@FreeBSD.org>

Update to match changes in <net/if.h>.


# 63c64400 19-Dec-1996 Nate Williams <nate@FreeBSD.org>

Renamed private copy of ether_aton to my_ether_aton so as to not
conflict with the version in <net/ethernet.h>


# 628d2ac1 10-Dec-1996 Garrett Wollman <wollman@FreeBSD.org>

Fix up programs which expect <net/if.h> to include <sys/time.h> to instead
do it themselves. (Some of these programs actually depended on this
beyond compiling the definition of struct ifinfo!) Also fix up some
other #include messes while we're at it.


# a42a667d 08-Feb-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Clean up warnings.
fix return/exit codes in some cases.
Add -S which will delete any old entry first.
Add "auto" in proxy case, so it finds the right interface automatically.


# 95319e17 02-Aug-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Make arp command actually behave as documented with the addition of a -f
flag. The getopt handling in here is actually pretty bogus (not Phil's
fault - it's original sin) but the general approach is working so I'm not
going to break it. Some small tweaks of my own to add error checking to what
was originally submitted. Strange how nobody noticed that the flag was
documented but completely missing from the code before! [jkh].
Submitted by: Phil Taylor <phil@zipmail.co.uk>


# 709e8f9a 29-May-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Remove trailing whitespace.


# dea673e9 25-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite usr.sbin Sources