summaryrefslogtreecommitdiffstats
path: root/usr.sbin/arp/arp.c
Commit message (Collapse)AuthorAgeFilesLines
* rtsock requests for deleting interface address lles started to return EPERMmelifaro2015-09-271-1/+4
| | | | | | | | | 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
* arp(8): add support for printing and deleting entries of typemarkj2015-04-021-0/+4
| | | | | | | | | | 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
* Speed up the lookup of interfaces when there are a large numbergnn2014-04-051-8/+19
| | | | | | | of them, such in a system with a large number of VLANs. Submitted by: Nick Rogers MFC after: 2 weeks
* Fix coredump on 'arp -d'.glebius2013-09-231-1/+4
| | | | | Submitted by: az Approved by: re (kib)
* Retire struct sockaddr_inarp.glebius2013-01-311-42/+33
| | | | | | | | | | | | | | | 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@
* Historically arp(8) did a route lookup for the entry it isglebius2012-04-021-4/+0
| | | | | | | | | | | | | | | | | 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.
* Do not hardcode (20*60), but use current ARP timeout value configuredglebius2010-11-301-1/+7
| | | | in kernel.
* That should belong to r216075. Pointy hat on me.glebius2010-11-301-3/+3
|
* Use time_uptime instead of non-monotonic time_second to drive ARPglebius2010-11-301-4/+4
| | | | | | timeouts. Suggested by: bde
* Cache the last result from if_indextoname for printing. This speeds upmlaier2010-06-111-3/+9
| | | | | | | | | | | "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
* Show when an ARP entry expires.ru2010-02-151-1/+11
| | | | MFC after: 1 week
* The proxy arp entries could not be added into the system over theqingli2009-12-301-29/+35
| | | | | | | | | | | | | | | | | | 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
* Use reallocf() to simplify some logic.jhb2009-12-291-7/+3
| | | | MFC after: 2 weeks
* Remove bogus char cast.remko2009-08-141-1/+1
| | | | | | | PR: 118014 Submitted by: Gardner Bell <gbell72 at rogers dot com> Approved by: re (rwatson), imp (mentor, implicit) MFC after: immediate
* As of sam's r175206, arp builds cleanly at WARNS level 6, but the Makefiledes2009-06-111-3/+7
| | | | | was never updated. Also, clean up the macro that caused the warning in the first place (no functional changes, just wrapped and reindented).
* This checkin addresses a couple of issues:qingli2008-12-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Print a warning when blackhole and reject are used together.trhodes2008-12-251-2/+8
| | | | | | | | Update arp.8 manual page syntax. PR: 125896 Submitted by: Marc Olzheim <marcolz@stack.nl> Approved by: sam
* This main goals of this project are:qingli2008-12-151-16/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* add reject+blackhole keywords to install entries with RTF_BLACKHOLEsam2008-03-181-4/+7
| | | | | | | | and RTF_REJECT, respectively PR: bin/79228 Submitted by: Dan Lukes <dan@obluda.cz> MFC after: 2 weeks
* quiet compiler complaint about comparing &v against NULLsam2008-01-101-2/+2
|
* Use sizeof() for calculating the buffer size instead of hard-coded values.kevlo2007-03-061-1/+1
|
* - Before doing ioctl(SIOCGIFNETMASK) put the proper IP address into the ifreq,glebius2006-10-131-1/+1
| | | | | | | | 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>
* Sync utility's usage() with manpage's SYNOPSIS.ru2006-09-291-2/+2
|
* Refuse to install invalid ARP entries.glebius2006-02-091-2/+3
| | | | Submitted by: Vitaliy Ovsyannikov <V.Ovsyannikov kr.ru>
* Update usage to reflect the fact that the -d -a now accepts -i <interface>.brooks2006-01-101-1/+1
| | | | | Reminded by: ru Pointy hat: brooks
* Allow the -i <interface> option with -d -a to allow all arp entries forbrooks2006-01-101-1/+1
| | | | a given interface to be removed.
* List IFT_BRIDGE as a valid type so that arp entries can be properly deleted.thompsa2005-11-031-1/+6
| | | | Submitted by: Michal Mertl <mime^traveller.cz>
* Commit some cosmetic fixes I developed some time ago, mostly style butru2005-06-091-26/+31
| | | | one functional change (fixed exit status from the "get" operation).
* Fix exit status. In rev. 1.48 return logic of rtmsg() was confused. Thisglebius2005-06-091-1/+1
| | | | | | | made arp(8) command exit status reversed for -s and -S. Reported by: sem MFC after: 2 weeks
* o Reorganize the previous delta to make it more style(9) compliant.maxim2005-01-241-3/+5
| | | | | | Submitted by: ru o Reduce an amount of memory we ask in advance.
* o Try hard to guess a buffer size for a fast growing routing table.maxim2005-01-241-5/+15
| | | | | | | | An approach taken from killall/killall.c. PR: bin/76075 Submitted by: Dmitrij Tejblum MFC after: 3 weeks
* For VLAN interfaces, print MAC addresses properly.ru2004-12-241-1/+2
| | | | | | | | (Broken in rev. 1.52.) PR: 75471 Submitted by: Jon Simola MFC after: 3 days
* Per letter dated July 22, 1999, delete clause 3 from code directlyimp2004-08-071-4/+0
| | | | from Berkeley.
* Be smarter about printing non-ethernet link-level addresses.dfr2004-06-131-3/+13
|
* Avoid assignments to cast expressions.stefanf2004-06-081-1/+1
| | | | | Reviewed by: md5 Approved by: das (mentor)
* Massive cleanup of the code removing global variables toluigi2004-04-131-206/+199
| | | | | | | | 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.
* Replace ROUNDUP/ADVANCE with SA_SIZEluigi2004-04-131-7/+5
|
* Make functions and variables static.luigi2004-04-131-88/+96
| | | | | | | | 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.
* - Change several errx() calls that should have been err() calls.mux2004-04-091-12/+14
| | | | | | - Handle empty ARP tables properly. - Remove register keyword. - arp(8) is WARNS?=4 clean, so mark it as such to avoid regressions.
* Implement a new option: -i, which will allow to limityar2003-07-181-4/+25
| | | | | | | | | | | 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
* Use __FBSDID over rcsid[]. Protect copyright[] where needed.obrien2003-05-031-4/+4
|
* Further fix the syntax by ignoring empty and whitespace-only lines.ru2003-03-051-1/+1
| | | | Prompted by: Eugene Grosbein <eugen@kuzbass.ru>
* Don't hide global `s'.ru2003-01-171-6/+6
|
* POLA dictates that in the file designated with the -f optionru2002-12-271-2/+8
| | | | | | | | 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
* Change 'int pid' to 'pid_t pid'jmallett2002-07-251-1/+1
| | | | Submitted by: Bruce "Allah" Dang <bruce@research.teamxor.org>
* Unbreak this file after the last drive-by committing. We have towpaul2002-05-091-2/+2
| | | | | | | | | | | #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
* Update ARP to access token-ring source routing information at it's newkbyanc2002-05-081-5/+10
| | | | | | | location. Not tested by: me (sorry!) Sponsored by: NTT Multimedia Communications Labs
* GCC 3.1 cleanup - add a break after default: at the end of a switchmurray2002-04-071-0/+1
| | | | statement.
* Don't reinvent the wheel now that ether_ntoa(3) has been fixedru2002-04-061-25/+13
| | | | | | to print leading zeros in libc_net/ether_addr.c,v 1.13. MFC after: 3 days
* Include <string.h> for some prototypes, rather than depending onmike2002-04-011-0/+1
| | | | pollution from <strings.h>.
OpenPOWER on IntegriCloud