summaryrefslogtreecommitdiffstats
path: root/sys/netinet/if_ether.c
Commit message (Collapse)AuthorAgeFilesLines
* Sync with the bridge/dummynet/ipfw code already tested in stable.luigi2001-02-101-9/+4
| | | | | In ip_fw.[ch] change a couple of variable and field names to avoid having types, variables and fields with the same name.
* Fix bad patch from a few days ago. It broke some bridging.julian2001-02-051-9/+10
|
* Mechanical change to use <sys/queue.h> macro API instead ofphk2001-02-041-3/+3
| | | | | | | fondling implementation details. Created with: sed(1) Reviewed by: md5(1)
* Make the code act the same in the case of BRIDGE being defined, but notjulian2001-02-031-16/+26
| | | | | | | turned on, and the case of it not being defined at all. i.e. Disabling bridging re-enables some of the checks it disables. Submitted by: "Rogier R. Mulhuijzen" <drwilco@drwilco.net>
* provide a sysctl 'net.link.ether.inet.log_arp_wrong_iface' to allow onealfred2001-01-061-0/+7
| | | | | | | | to supress logging when ARP replies arrive on the wrong interface: "/kernel: arp: 1.2.3.4 is on dc0 but got reply from 00:00:c5:79:d0:0c on dc1" the default is to log just to give notice about possibly incorrectly configured networks.
* Lock down the network interface queues. The queue mutex must be obtainedjlemon2000-11-251-1/+12
| | | | | | | | | | | | | | before adding/removing packets from the queue. Also, the if_obytes and if_omcasts fields should only be manipulated under protection of the mutex. IF_ENQUEUE, IF_PREPEND, and IF_DEQUEUE perform all necessary locking on the queue. An IF_LOCK macro is provided, as well as the old (mutex-less) versions of the macros in the form _IF_ENQUEUE, _IF_QFULL, for code which needs them, but their use is discouraged. Two new macros are introduced: IF_DRAIN() to drain a queue, and IF_HANDOFF, which takes care of locking/enqueue, and also statistics updating/start if necessary.
* Extra sanity check when arp proxyall is enabled. Don't send an arpdwmalone2000-07-131-0/+26
| | | | | | | | | | reply if the requesting machine isn't on the interface we believe it should be. Prevents arp wars when you plug cables in the wrong way around. PR: 9848 Submitted by: Ian Dowse <iedowse@maths.tcd.ie> Not objected to by: wollman
* Back out the previous change to the queue(3) interface.jake2000-05-261-2/+2
| | | | | | It was not discussed and should probably not happen. Requested by: msmith and others
* Change the way that the queue(3) structures are declared; don't assume thatjake2000-05-231-2/+2
| | | | | | | | the type argument to *_HEAD and *_ENTRY is a struct. Suggested by: phk Reviewed by: phk Approved by: mdodd
* PR: kern/17872wes2000-04-111-10/+3
| | | | Submitted by: csg@waterspout.com (C. Stephen Gunn)
* Peter Johnson found another log() call without a trailing newline.joerg2000-03-291-1/+1
| | | | | | | All three of them have been introduced in rev 1.64, so i guess i've got all of them now. :) Submitted by: Peter Johnson <locke@mcs.net>
* Added two missing newlines in calls to log(9).joerg2000-03-281-2/+2
| | | | | | | | Reported in Usenet by: locke@mcs.net (Peter Johnson) While i was at it, prepended a 0x to the %D output, to make it clear that the printed value is in hex (i assume %D has been chosen over %#x to obey network byte order).
* Fix parens in m_pullup() line in arp handling code. The code wasdillon2000-03-231-1/+1
| | | | | | | improperly doing the equivalent of (m = (function() == NULL)) instead of ((m = function()) == NULL). This fixes a NULL pointer dereference panic with runt arp packets.
* o Replace most magic numbers related to token ring with #defineslile2000-03-191-30/+31
| | | | | | | | | | from iso88025.h. o Add minimal llc support to iso88025_input. o Clean up most of the source routing code. * Submitted by: Nikolai Saoukh <nms@otdel-1.org>
* The function arpintr() incorrectly checks m->m_len to detect incompleterwatson2000-03-111-13/+36
| | | | | | | | | | | | | | ARP packets. This can incorrectly reject complete frames since the frame could be stored in more than one mbuf. The following patches fix the length comparisson, and add several diagnostic log messages to the interrupt handler for out-of-the-norm ARP packets. This should make ARP problems easier to detect, diagnose and fix. Submitted by: C. Stephen Gunn <csg@waterspout.com> Approved by: jkh Reviewed by: rwatson
* Clean up some loose ends in the network code, including the X.25 and ISOpeter2000-02-131-3/+1
| | | | | | | #ifdefs. Clean out unused netisr's and leftover netisr linker set gunk. Tested on x86 and alpha, including world. Approved by: jkh
* Append missing newline to log() message for permanent ARP modificationsheldonh1999-10-181-1/+1
| | | | | | | attempt warning, which was added in rev 1.48 . PR: 14371 Submitted by: sec@pi.musin.de (Stefan `Sec` Zehl)
* Re-arrange the arp code so that fddi arps work properly.lile1999-09-161-29/+46
|
* It is much easier to arp if you don't truncate your arp-reply's.lile1999-08-281-11/+12
| | | | [affects token-ring only]
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Add sufficient braces to keep egcs happy about potentially ambiguouspeter1999-05-061-2/+3
| | | | if/else nesting.
* Better handling for ARP/source routing on Token Ringeivind1999-04-151-8/+16
| | | | Submitted by: Larry Lile <lile@stdio.com>
* Submitted by: Larry Lilejulian1999-03-101-16/+79
| | | | | | | | 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.
* arprequest() allocates an mbuf with m_gethdr() but does not initializewpaul1999-03-041-1/+2
| | | | m->m_pkthdr.rcvif to NULL. Bad arprequest(). No biscuit.
* World, I'd like you to meet the first FreeBSD token Ring driver.julian1999-02-201-3/+8
| | | | | | | | This is for various Olicom cards. An IBM driver is following. This patch also adds support to tcpdump to decode packets on tokenring. Congratulations to the proud father.. (below) Submitted by: Larry Lile <lile@stdio.com>
* * Change sysctl from using linker_set to construct its tree using SLISTs.dfr1999-02-161-1/+3
| | | | | | | | | | This makes it possible to change the sysctl tree at runtime. * Change KLD to find and register any sysctl nodes contained in the loaded file and to unregister them when the file is unloaded. Reviewed by: Archie Cobbs <archie@whistle.com>, Peter Wemm <peter@netplex.com.au> (well they looked at it anyway)
* Fix bug in last commit (la was used uninitialized if no route was passed in).fenner1999-01-191-2/+2
|
* If arpresolve() gets passed a route with a null llinfo, callfenner1999-01-181-2/+2
| | | | | | | arplookup() to try again. This gets rid of at least one user's "arpresolve: can't allocate llinfo" errors, and arplookup() gives better error messages to help track down the problem if there really is a problem with the routing table.
* Remove check from where arp replies are coming from -- when doing bridging,luigi1999-01-101-1/+3
| | | | interfaces are used in clusters so the check does not apply.
* Last bits (i think) of dummynet for -current.luigi1998-12-141-1/+11
|
* Prevent modification of permanent ARP entries (PR kern/7649)fenner1998-09-171-4/+21
| | | | | Ignore ARP replies from the wrong interface (discussion on mailing list) Add interface name to a couple of error messages
* Go through the loopback code with a broom..julian1998-06-121-10/+10
| | | | | | | | | | | | | | | | Remove lots'o'hacks. looutput is now static. Other callers who want to use loopback to allow shortcutting should call the special entrypoint for this, if_simloop(), which is specifically designed for this purpose. Using looutput for this purpose was problematic, particularly with bpf and trying to keep track of whether one should be using the charateristics of the loopback interface or the interface (e.g. if_ethersubr.c) that was requesting the loopback. There was a whole class of errors due to this mis-use each of which had hacks to cover them up. Consists largly of hack removal :-)
* This commit fixes various 64bit portability problems required fordfr1998-06-071-3/+3
| | | | | | | | | | FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change. The prototype FreeBSD/alpha machdep will follow in a couple of days time.
* Get more details on the "arpresolve: can't allocate llinfo" bogon.phk1998-05-231-3/+4
| | | | | | PR: 2570 Reviewed by: phk Submitted by: fenner
* Eradicate the variable "time" from the kernel, using various measures.phk1998-03-301-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "time" wasn't a atomic variable, so splfoo() protection were needed around any access to it, unless you just wanted the seconds part. Most uses of time.tv_sec now uses the new variable time_second instead. gettime() changed to getmicrotime(0. Remove a couple of unneeded splfoo() protections, the new getmicrotime() is atomic, (until Bruce sets a breakpoint in it). A couple of places needed random data, so use read_random() instead of mucking about with time which isn't random. Add a new nfs_curusec() function. Mark a couple of bogosities involving the now disappeard time variable. Update ffs_update() to avoid the weird "== &time" checks, by fixing the one remaining call that passwd &time as args. Change profiling in ncr.c to use ticks instead of time. Resolution is the same. Add new function "tvtohz()" to avoid the bogus "splfoo(), add time, call hzto() which subtracts time" sequences. Reviewed by: bde
* Make INET a proper option.eivind1998-01-081-1/+12
| | | | | | | | | | | | This will not make any of object files that LINT create change; there might be differences with INET disabled, but hardly anything compiled before without INET anyway. Now the 'obvious' things will give a proper error if compiled without inet - ipx_ip, ipfw, tcp_debug. The only thing that _should_ work (but can't be made to compile reasonably easily) is sppp :-( This commit move struct arpcom from <netinet/if_ether.h> to <net/if_arp.h>.
* Fixed gratuitous ANSIisms.bde1997-12-201-2/+2
|
* Removed unused #includes.bde1997-10-281-2/+1
|
* Don't send arp request for the ip address 0.0.0.0.tegge1997-05-141-3/+4
|
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-221-1/+1
| | | | ready for it yet.
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | 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.
* Attempt to complete the fix in the previous revision. This versionbde1996-12-151-2/+2
| | | | fixes the problem reported by max.
* Missing TAILQ mod.dyson1996-12-141-2/+2
|
* Reword two messages:fenner1996-11-151-5/+6
| | | | | | | | | | | | | | | duplicate ip address 204.162.228.7! sent from ethernet address: 08:00:20:09:7b:1d changed to arp: 08:00:20:09:7b:1d is using my IP address 204.162.228.7! and arp info overwritten for 204.162.228.2 by 08:00:20:09:7b:1d changed to arp: 204.162.228.2 moved from 08:00:20:07:b6:a0 to 08:00:20:09:7b:1d I think the new wordings are more clear and could save some support questions.
* Removed nested include if <sys/socket.h> from <net/if.h> andbde1996-10-121-1/+2
| | | | | | | <net/if_arp.h> and fixed the things that depended on it. The nested include just allowed unportable programs to compile and made my simple #include checking program report that networking code doesn't need to include <sys/socket.h>.
* Set the rmx.rmx_expire to 0 when creating fake ethernet addresses for thepeter1996-06-211-1/+3
| | | | | | | broadcast and multicast routes, otherwise they will be expired by arptimeout after a few minutes, reverting to " (incomplete)". This makes the work done by rev 1.27 stay around until the route itself is deleted. This is mainly cosmetic for 'arp' and 'netstat -r'.
* Use the route that's guaranteed to exist when picking a source addressfenner1996-06-201-2/+2
| | | | | | | | | | for ARP requests. The NetBSD version of this patch (see NetBSD PR kern/2381) has this change already. This should close our PR kern/1140 . Although it's not quite what he submitted, I got the idea from him so Submitted by: Jin Guojun <jin@george.lbl.gov>
* Keep ether_type in network order for BPF to be consistent with otherdg1996-06-131-3/+3
| | | | | | | systems. Submitted by: Ted Lemon, Matt Thomas, and others. Retrofitted for -current by me.
* Changed some memcpy()'s back to bcopy()'s.bde1996-06-081-2/+2
| | | | | | | gcc only inlines memcpy()'s whose count is constant and didn't inline these. I want memcpy() in the kernel go away so that it's obvious that it doesn't need to be optimized. Now it is only used for one struct copy in si.c.
* Send ARP's for aliased subnets with the proper source address.fenner1996-03-231-15/+7
| | | | | | | Get rid of ac->ac_ipaddr and arpwhohas() since they assume that an interface has only one address. Obtained from: BSD/OS 2.1, via Rich Stevens <rstevens@noao.edu>
OpenPOWER on IntegriCloud