OpenBSD CVS

CVS log for src/sys/netinet/if_ether.h


[BACK] Up to [local] / src / sys / netinet

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.92 / (download) - annotate - [select for diffs], Wed Feb 14 22:41:48 2024 UTC (3 months, 3 weeks ago) by bluhm
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, HEAD
Changes since 1.91: +3 -2 lines
Diff to previous 1.91 (colored)

Check IP length in ether_extract_headers().

For LRO with ix(4) it is necessary to detect ethernet padding.
Extract ip_len and ip6_plen from the mbuf and provide it to the
drivers.
Add extended sanitity checks, like IP packet is shorter than TCP
header.  This prevents offloading to network hardware with bougus
packets.
Also iphlen of extracted headers contains header length for IPv4
and IPv6, to make code in drivers simpler.

OK mglocker@

Revision 1.91 / (download) - annotate - [select for diffs], Tue Feb 13 13:58:19 2024 UTC (3 months, 3 weeks ago) by bluhm
Branch: MAIN
Changes since 1.90: +4 -1 lines
Diff to previous 1.90 (colored)

Analyse header layout in ether_extract_headers().

Several drivers need IPv4 header length and TCP offset for checksum
offload, TSO and LRO.  Accessing these fields directly caused crashes
on sparc64 due to misaligned access.  It cannot be guaranteed that
IP and TCP header is 4 byte aligned in driver level.  Also gcc 4.2.1
assumes that bit fields can be accessed with 32 bit load instructions.

Use memcpy() in ether_extract_headers() to get the bits from IPv4
and TCP header and store the header length in struct ether_extracted.
From there network drivers can esily use it without caring about
alignment and bit shift.  Do some sanity checks with the length
values to prevent that invalid values from evil packets get stored
into hardware registers.  If check fails, clear the pointer to the
header to hide it from the driver.  Add debug prints that help to
figure out the reason for bad packets and provide information when
debugging drivers.

OK mglocker@

Revision 1.90 / (download) - annotate - [select for diffs], Thu Jul 27 20:21:25 2023 UTC (10 months, 2 weeks ago) by jan
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE, OPENBSD_7_4
Changes since 1.89: +7 -6 lines
Diff to previous 1.89 (colored)

Fix inline vlan-tag handling of forwarded LRO packets from ix(4)

Implement vlan-tag parsing ether_extract_header() to use this information
to adjust the MSS calculation of LRO packets.

pointed out by mbuhl and bluhm

with tweaks from bluhm

ok bluhm@

Revision 1.89 / (download) - annotate - [select for diffs], Thu Jul 6 19:46:53 2023 UTC (11 months ago) by kn
Branch: MAIN
Changes since 1.88: +5 -2 lines
Diff to previous 1.88 (colored)

use refcnt API for multicast addresses, add tracepoint:refcnt:ethmulti probe

Replace hand-rolled reference counting with refcnt_init(9) and hook it up
with a new dt(4) probe.

OK mvs
Feedback OK bluhm

Revision 1.88 / (download) - annotate - [select for diffs], Tue Feb 7 16:14:55 2023 UTC (16 months ago) by bluhm
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE, OPENBSD_7_3
Changes since 1.87: +1 -3 lines
Diff to previous 1.87 (colored)

Remove needless #ifdef INET6 from struct ether_extracted field in
public header file.  Makes debugging with special kernels easier.

Revision 1.87 / (download) - annotate - [select for diffs], Mon Feb 6 20:27:45 2023 UTC (16 months ago) by jan
Branch: MAIN
Changes since 1.86: +13 -1 lines
Diff to previous 1.86 (colored)

consolidate mbuf header parsing on device driver layer

with tweaks from mvs@, mpi@, dlg@, naddy@ and bluhm@

"go for it" deraadt@

ok naddy@, mvs@

Revision 1.86 / (download) - annotate - [select for diffs], Thu Jan 26 07:32:40 2023 UTC (16 months, 2 weeks ago) by deraadt
Branch: MAIN
Changes since 1.85: +0 -10 lines
Diff to previous 1.85 (colored)

backing "consolidate mbuf header parsing on device driver layer"
easily repeatable ASSERT happens seconds after starting compiles over nfs.

Revision 1.85 / (download) - annotate - [select for diffs], Tue Jan 24 22:35:47 2023 UTC (16 months, 2 weeks ago) by jan
Branch: MAIN
Changes since 1.84: +11 -1 lines
Diff to previous 1.84 (colored)

consolidate mbuf header parsing on device driver layer

with tweaks from mvs@, mpi@ and dlg@

ok mvs@, dlg@

Revision 1.84 / (download) - annotate - [select for diffs], Tue Dec 27 20:13:03 2022 UTC (17 months, 2 weeks ago) by patrick
Branch: MAIN
Changes since 1.83: +2 -2 lines
Diff to previous 1.83 (colored)

Fix array bounds mismatch with clang 15

New warning -Warray-parameter is a bit overzealous.
ok millert@ tb@

Revision 1.83 / (download) - annotate - [select for diffs], Wed Jul 7 20:19:01 2021 UTC (2 years, 11 months ago) by sashan
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0
Changes since 1.82: +3 -1 lines
Diff to previous 1.82 (colored)

tell ether_input() to call pf_test() outside of smr_read sections,
because smr_read sections don't play well with sleeping locks in pf(4).

OK bluhm@

Revision 1.82 / (download) - annotate - [select for diffs], Fri Apr 23 21:55:36 2021 UTC (3 years, 1 month ago) by bluhm
Branch: MAIN
Changes since 1.81: +2 -1 lines
Diff to previous 1.81 (colored)

Setting variable arpinit_done is not MP save if we want to execute
arp_rtrequest() in parallel.  Move initialization to arpinit()
function.
OK kettenis@ mvs@

Revision 1.81 / (download) - annotate - [select for diffs], Wed Mar 10 10:21:48 2021 UTC (3 years, 3 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.80: +2 -2 lines
Diff to previous 1.80 (colored)

spelling

ok gnezdo@ semarie@ mpi@

Revision 1.80 / (download) - annotate - [select for diffs], Fri Mar 5 06:44:09 2021 UTC (3 years, 3 months ago) by dlg
Branch: MAIN
Changes since 1.79: +3 -2 lines
Diff to previous 1.79 (colored)

pass the uint64_t dst ethernet address from ether_input to bridges.

tested on amd64 and sparc64.

Revision 1.79 / (download) - annotate - [select for diffs], Fri Feb 26 01:12:37 2021 UTC (3 years, 3 months ago) by dlg
Branch: MAIN
Changes since 1.78: +22 -1 lines
Diff to previous 1.78 (colored)

add some helpers for working with ethernet addresses as uint64_t

the main bits are ether_addr_to_e64 and ether_e64_to addr for loading
an ethernet address into a uin64_t and visa versa. there's also
some macros for testing if an address in a uint64_t is multicast,
broadcast, anyaddr, or if it's an 802.1q reserved multicast group
address.

the reason for this functionality is once you have an ethernet
address as a uint64_t, operations like compares, bit tests, and
so on are fast and easy.

tested on amd64 and sparc64

Revision 1.78 / (download) - annotate - [select for diffs], Wed Jul 22 02:16:02 2020 UTC (3 years, 10 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.77: +2 -2 lines
Diff to previous 1.77 (colored)

deprecate interface input handler lists, just use one input function.

the interface input handler lists were originally set up to help
us during the intial mpsafe network stack work. at the time not all
the virtual ethernet interfaces (vlan, svlan, bridge, trunk, etc)
were mpsafe, so we wanted a way to avoid them by default, and only
take the kernel lock hit when they were specifically enabled on the
interface. since then, they have been fixed up to be mpsafe.

i could leave the list in place, but it has some semantic problems.
because virtual interfaces filter packets based on the order they
were attached to the parent interface, you can get packets taken
away in surprising ways, especially when you reboot and netstart
does something different to what you did by hand. by hardcoding the
order that things like vlan and bridge get to look at packets, we
can document the behaviour and get consistency.

it also means we can get rid of a use of SRPs which were difficult
to replace with SMRs. the interface input handler list is an SRPL,
which we would like to deprecate. it turns out that you can sleep
during stack processing, which you're not supposed to do with SRPs
or SMRs, but SRPs are a lot more forgiving and it worked.

lastly, it turns out that this code is faster than the input list
handling, so lots of winning all around.

special thanks to hrvoje popovski and aaron bieber for testing.
this has been in snaps as part of a larger diff for over a week.

Revision 1.77 / (download) - annotate - [select for diffs], Wed Jul 22 00:29:00 2020 UTC (3 years, 10 months ago) by dlg
Branch: MAIN
Changes since 1.76: +14 -1 lines
Diff to previous 1.76 (colored)

add code to coordinate how bridges attach to ethernet interfaces.

this is the first step in refactoring how ethernet frames are demuxed
by virtual interfaces, and also in deprecating interface input list
handling.

we now have drivers for three types of virtual bridges, bridge(4),
switch(4), and tpmr(4), and it doesn't make sense for any of them
to be enabled on the same "port" interfaces at the same time.
currently you can add a port interface to multiple types of bridge,
but which one gets to steal the packets depends on the order in
which they were attached.

this creates an ether_brport structure that holds an input function
for the bridge, and optionally some per port state that the bridge
can use. arpcom has a single pointer to one of these structs that
will be used during normal ether_input processing to see if a packet
should be passed to a bridge, and will be used instead of an if
input handler. because it is a single pointer, it will make sure
only one bridge of any type is attached to a port at any one time.

this has been in snaps as part of a larger diff for over a week.

Revision 1.76 / (download) - annotate - [select for diffs], Wed Jul 17 16:46:18 2019 UTC (4 years, 10 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.75: +8 -1 lines
Diff to previous 1.75 (colored)

Introduce ETHER_IS_BROADCAST/ANYADDR/EQ() and use them where appropriate.

ok dlg@, sthen@, millert@

Revision 1.75 / (download) - annotate - [select for diffs], Fri Jul 5 01:23:22 2019 UTC (4 years, 11 months ago) by dlg
Branch: MAIN
Changes since 1.74: +2 -1 lines
Diff to previous 1.74 (colored)

add ac_trunkport to arpcom so trunks can coordinate owning an interface

Ethernet interfaces can be used by trunk(4), and i'm about to commit
a new aggr(4) driver which should not be able to use an interface
while trunk owns it and visa versa.

Revision 1.74 / (download) - annotate - [select for diffs], Tue Dec 11 01:27:08 2018 UTC (5 years, 6 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.73: +8 -3 lines
Diff to previous 1.73 (colored)

split ether_output into resolution, encapsulation, and output functions

if if_output can be overridden on ethernet interfaces, it will allow
things like vlan to do it's packet encapsulation during output
before putting the packet directly on the underlying interface for
output.

this has two benefits. first, it can avoid having ether_output on
pseudo interfaces recurse, which makes profiling of the network
stack a lot clearer. secondly, and more importantly, it allows
pseudo ethernet interface packet encapsulation to by run concurrently
by the stack, rather than having packets unnecessarily serialied
by an ifq.

this diff just splits ether_output up, it doesnt have any interface
take advantage of it yet.

tweaks and ok claudio@

Revision 1.73 / (download) - annotate - [select for diffs], Tue Nov 29 10:09:57 2016 UTC (7 years, 6 months ago) by reyk
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.72: +6 -1 lines
Diff to previous 1.72 (colored)

For virtual Ethernet drivers that don't have a technical limit of the
hardmtu, pick a value of 65435 that leaves space for some
encapsulation and almost a complete max-IP packet.  After some
discussion we picked this arbitrary value.

OK dlg@

Revision 1.72 / (download) - annotate - [select for diffs], Tue Jun 28 17:18:24 2016 UTC (7 years, 11 months ago) by chris
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.71: +4 -1 lines
Diff to previous 1.71 (colored)

Add sysctl for arp timers: net.inet.ip.arptimeout (expire timer for resolved
entries) and net.inet.ip.arpdown (expire timer for unresolved entries)

ok mpi@

Revision 1.71 / (download) - annotate - [select for diffs], Wed May 18 20:15:14 2016 UTC (8 years ago) by mpi
Branch: MAIN
Changes since 1.70: +3 -3 lines
Diff to previous 1.70 (colored)

Remove some superflous if_get(9)/if_put(9) dances now that ARP input
routines are call directly by ether_input().

ok visa@, dlg@

Revision 1.70 / (download) - annotate - [select for diffs], Wed Mar 30 10:13:14 2016 UTC (8 years, 2 months ago) by mpi
Branch: MAIN
Changes since 1.69: +1 -2 lines
Diff to previous 1.69 (colored)

Implement proxy ARP for ART based on mpath support.

Since mpath is not enabled in RAMDISK, proxy ARP won't work there either.

ok bluhm@

Revision 1.69 / (download) - annotate - [select for diffs], Wed Mar 16 11:48:27 2016 UTC (8 years, 2 months ago) by dlg
Branch: MAIN
Changes since 1.68: +6 -2 lines
Diff to previous 1.68 (colored)

macros for the null, min, and max vlan ids.

ok mpi@ and tweaks from sthen@

Revision 1.68 / (download) - annotate - [select for diffs], Mon Mar 14 03:48:47 2016 UTC (8 years, 3 months ago) by dlg
Branch: MAIN
Changes since 1.67: +22 -1 lines
Diff to previous 1.67 (colored)

move the vlan protocol definitions to the same places as the ethernet ones

ok mpi@

Revision 1.67 / (download) - annotate - [select for diffs], Tue Mar 1 01:48:14 2016 UTC (8 years, 3 months ago) by dlg
Branch: MAIN
Changes since 1.66: +1 -2 lines
Diff to previous 1.66 (colored)

enm_ac in ether_multi is set but never used. so we dont need it.

Revision 1.66 / (download) - annotate - [select for diffs], Fri Jan 8 13:53:24 2016 UTC (8 years, 5 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.65: +13 -15 lines
Diff to previous 1.65 (colored)

Get rid of the arp and revarp input queues.

Packets of types ARP and REVARP are now processed in the softnet task,
directly from ether_input() and without holding the KERNEL_LOCK.

Tested by many, ok dlg@

Revision 1.65 / (download) - annotate - [select for diffs], Wed Dec 9 15:05:51 2015 UTC (8 years, 6 months ago) by mpi
Branch: MAIN
Changes since 1.64: +10 -1 lines
Diff to previous 1.64 (colored)

Keep all ether prototypes in one place.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Nov 24 15:27:46 2015 UTC (8 years, 6 months ago) by mpi
Branch: MAIN
Changes since 1.63: +43 -49 lines
Diff to previous 1.63 (colored)

Merge three #ifdef _KERNEL blocks into one.

Revision 1.63 / (download) - annotate - [select for diffs], Fri Nov 13 10:18:04 2015 UTC (8 years, 7 months ago) by mpi
Branch: MAIN
Changes since 1.62: +2 -2 lines
Diff to previous 1.62 (colored)

Sore the index of the interface used for revarp instead of a pointer to
its descriptor.  Get rid of a if_ref().

ok dlg@

Revision 1.62 / (download) - annotate - [select for diffs], Tue Oct 27 15:22:58 2015 UTC (8 years, 7 months ago) by mpi
Branch: MAIN
Changes since 1.61: +1 -2 lines
Diff to previous 1.61 (colored)

RIP arp_ifinit().

Revision 1.61 / (download) - annotate - [select for diffs], Sun Oct 25 11:58:11 2015 UTC (8 years, 7 months ago) by mpi
Branch: MAIN
Changes since 1.60: +2 -2 lines
Diff to previous 1.60 (colored)

Introduce if_rtrequest() the successor of ifa_rtrequest().

L2 resolution depends on the protocol (encoded in the route entry) and
an ``ifp''.  Not having to care about an ``ifa'' makes our life easier
in our MP effort.  Fewer dependencies between data structures implies
fewer headaches.

Discussed with bluhm@, ok claudio@

Revision 1.60 / (download) - annotate - [select for diffs], Sun Sep 27 16:50:40 2015 UTC (8 years, 8 months ago) by stsp
Branch: MAIN
Changes since 1.59: +2 -1 lines
Diff to previous 1.59 (colored)

Welcome etheranyaddr, cousin of etherbroadcastaddr.
Can be used to check if a MAC address is all zeros.
Will be used by iwm(4) soon.
ok kettenis@

Revision 1.59 / (download) - annotate - [select for diffs], Sun Sep 13 10:42:32 2015 UTC (8 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.58: +2 -3 lines
Diff to previous 1.58 (colored)

queue revarps to softnet so we can defer processing to a context with
the kernel lock.

"do it" claudio@ mpi@

Revision 1.58 / (download) - annotate - [select for diffs], Thu Sep 10 07:43:18 2015 UTC (8 years, 9 months ago) by mpi
Branch: MAIN
Changes since 1.57: +2 -2 lines
Diff to previous 1.57 (colored)

Missing prototype change in previous.

Revision 1.57 / (download) - annotate - [select for diffs], Tue Jun 23 13:20:17 2015 UTC (8 years, 11 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.56: +2 -2 lines
Diff to previous 1.56 (colored)

Pass a "struct ifnet *" instead of a "struct arpcom *" to arpresolve().

Most of the ARP layer already take an ifp pointer and this makes clear
wich chunks of code are messing with ac_enaddr.

Note that our Ethernet code assume that these pointer are interchangeable
since the first element of the "struct arpcom" is a "struct ifnet".

Revision 1.56 / (download) - annotate - [select for diffs], Fri Apr 10 13:58:20 2015 UTC (9 years, 2 months ago) by dlg
Branch: MAIN
Changes since 1.55: +2 -2 lines
Diff to previous 1.55 (colored)

replace the use of ifqueues for most input queues serviced by netisr
with niqueues.

this change is so big because there's a lot of code that takes
pointers to different input queues (eg, ether_input picks between
ipv4, ipv6, pppoe, arp, and mpls input queues) and falls through
to code to enqueue packets against the pointer. if i changed only
one of the input queues id have to add sepearate code paths, one
for ifqueues and one for niqueues in each of these places

by flipping all these input queues at once i can keep the currently
common code common.

testing by mpi@ sthen@ and rafael zalamena
ok mpi@ sthen@ claudio@ henning@

Revision 1.55 / (download) - annotate - [select for diffs], Tue Mar 24 12:58:43 2015 UTC (9 years, 2 months ago) by mpi
Branch: MAIN
Changes since 1.54: +1 -12 lines
Diff to previous 1.54 (colored)

Convert hand-rolled mbuf list used to store packets until ARP
resolution is completed to ml_init(9) API.

Tested by kspillner@, inputs & ok dlg@

Revision 1.54 / (download) - annotate - [select for diffs], Fri Dec 5 15:50:04 2014 UTC (9 years, 6 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.53: +4 -1 lines
Diff to previous 1.53 (colored)

Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.

ok mikeb@, krw@, bluhm@, tedu@

Revision 1.53 / (download) - annotate - [select for diffs], Thu Jan 9 06:29:05 2014 UTC (10 years, 5 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.52: +4 -4 lines
Diff to previous 1.52 (colored)

bzero/bcmp -> memset/memcmp. ok matthew

Revision 1.52 / (download) - annotate - [select for diffs], Thu Nov 21 16:34:33 2013 UTC (10 years, 6 months ago) by mikeb
Branch: MAIN
Changes since 1.51: +3 -4 lines
Diff to previous 1.51 (colored)

hide a bunch of structures (namely arpcom, llinfo_arp, ethernet
multicast macros and in_ifaddr) that reference ifnet in some way;
looked over by deraadt, ok mpi

Revision 1.51 / (download) - annotate - [select for diffs], Wed Aug 28 06:58:57 2013 UTC (10 years, 9 months ago) by mpi
Branch: MAIN
Changes since 1.50: +2 -2 lines
Diff to previous 1.50 (colored)

Remove unused argument from *rtrequest()

ok krw@, mikeb@

Revision 1.50 / (download) - annotate - [select for diffs], Thu Jul 4 08:22:19 2013 UTC (10 years, 11 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.49: +2 -1 lines
Diff to previous 1.49 (colored)

Rewrite the function used to determine if we do proxy ARP for one of
our addresses to reuse arplookup() and do only one list iteration.

Looks ok to claudio@, ok mikeb@

Revision 1.49 / (download) - annotate - [select for diffs], Fri Mar 22 01:41:12 2013 UTC (11 years, 2 months ago) by tedu
Branch: MAIN
Changes since 1.48: +2 -2 lines
Diff to previous 1.48 (colored)

simple replacement of LIST_END with NULL. ok mpi

Revision 1.48 / (download) - annotate - [select for diffs], Thu Oct 18 00:36:22 2012 UTC (11 years, 7 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.47: +4 -2 lines
Diff to previous 1.47 (colored)

Move revarp code into #ifdef NFSCLIENT; saving space on some media.
Resurrect the rather silly "unplug my network device while I am
doing nfs diskless revarp" safety code which was disabled due to
a missing "ether.h" include, found by jsg
ok jsg

Revision 1.47 / (download) - annotate - [select for diffs], Mon Feb 8 13:32:50 2010 UTC (14 years, 4 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.46: +1 -2 lines
Diff to previous 1.46 (colored)

arpioctl() is not used sore remove it. Found by Gleydson Soares.

Revision 1.46 / (download) - annotate - [select for diffs], Tue Jan 12 03:41:29 2010 UTC (14 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.45: +3 -1 lines
Diff to previous 1.45 (colored)

Unify the various fake ethernet generators as ether_fakeaddr() which
is safe for both hardware devices and virtual devices
ok mpf, kettenis, moaning and groaning and slow acceptance from mcbride
XXX should loop checking for uniqueness after new henning diff goes in

Revision 1.45 / (download) - annotate - [select for diffs], Sun Oct 25 21:42:02 2009 UTC (14 years, 7 months ago) by mk
Branch: MAIN
Changes since 1.44: +1 -2 lines
Diff to previous 1.44 (colored)

Get rid of unused macro `la_timer'.

`if it is unused nuke it' claudio

Revision 1.44 / (download) - annotate - [select for diffs], Sat Nov 8 12:54:58 2008 UTC (15 years, 7 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.43: +23 -23 lines
Diff to previous 1.43 (colored)

fix macros up so they use the do { } while (/* CONSTCOND */ 0) idiom

ok deraadt@ otto@

Revision 1.43 / (download) - annotate - [select for diffs], Fri Oct 31 21:08:33 2008 UTC (15 years, 7 months ago) by claudio
Branch: MAIN
Changes since 1.42: +2 -2 lines
Diff to previous 1.42 (colored)

Be way more strict in the number of packets allowed to be queued in the
arp layer. With a lot of input from deraadt@.
OK dlg@, looks good gollo@ + deraadt@

Revision 1.42 / (download) - annotate - [select for diffs], Thu Oct 30 09:39:05 2008 UTC (15 years, 7 months ago) by gollo
Branch: MAIN
Changes since 1.41: +6 -2 lines
Diff to previous 1.41 (colored)

Arpresolve could loose few packets during resolving an ethernet
address. This cvs commit introduces a queue that buffers a small
burst of packets and resending the packets in correct order when
the ethernet address is resolved. Code written by Armin Wolfermann
<aw@osn.de>.

OK: claudio@ henning@

Revision 1.41 / (download) - annotate - [select for diffs], Thu Oct 16 18:23:53 2008 UTC (15 years, 7 months ago) by claudio
Branch: MAIN
Changes since 1.40: +1 -6 lines
Diff to previous 1.40 (colored)

Kill M_HASFCS, it is not used in OpenBSD. If a ethernet chip returns the
checksum in the packet it should be trimmed away by the driver and not by
driver independent code. OK brad@

Revision 1.40 / (download) - annotate - [select for diffs], Fri Apr 18 09:16:14 2008 UTC (16 years, 1 month ago) by djm
Branch: MAIN
CVS Tags: OPENBSD_4_4_BASE, OPENBSD_4_4
Changes since 1.39: +3 -1 lines
Diff to previous 1.39 (colored)

extend the if_ethersubr.c crc functions to support updating a running
crc in addition to the existing "oneshot" mode and use them to replace
ieee80211_crc_update() with the new ether_crc32_le_update(). Saves 1k
kernel bss + some code.

Mark the new ether_crc32_[lb]e_update functions as __pure for a
~25x speedup (on my i386 at least).

feedback and ok damien@

Revision 1.39 / (download) - annotate - [select for diffs], Wed May 16 09:24:07 2007 UTC (17 years, 1 month ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.38: +5 -3 lines
Diff to previous 1.38 (colored)

count the number of multicast ranges that are kept in the list of multicast
addresses in struct arpcom. this lets a nic driver easily see if it wants
allmulti behaviour, which in turn means we can clean some code up.

ok jason@ claudio@ norby@

Revision 1.38 / (download) - annotate - [select for diffs], Wed Jun 28 12:13:24 2006 UTC (17 years, 11 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0
Changes since 1.37: +1 -6 lines
Diff to previous 1.37 (colored)

No need to add function prototypes twice to a header file.

Revision 1.37 / (download) - annotate - [select for diffs], Sun May 28 00:20:21 2006 UTC (18 years ago) by brad
Branch: MAIN
Changes since 1.36: +1 -3 lines
Diff to previous 1.36 (colored)

- remove ETHER_MAX_LEN_JUMBO and ETHERMTU_JUMBO.
- use if_hardmtu for MTU ioctl handlers.

ok reyk@

Revision 1.36 / (download) - annotate - [select for diffs], Sun Mar 5 21:48:56 2006 UTC (18 years, 3 months ago) by miod
Branch: MAIN
Changes since 1.35: +6 -6 lines
Diff to previous 1.35 (colored)

Use more queue macros rather than doing it by hand; ok otto@ krw@

Revision 1.35 / (download) - annotate - [select for diffs], Mon Mar 28 06:19:58 2005 UTC (19 years, 2 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_3_9_BASE, OPENBSD_3_9, OPENBSD_3_8_BASE, OPENBSD_3_8
Changes since 1.34: +4 -4 lines
Diff to previous 1.34 (colored)

add some const to ether_*.  remove bonus prototypes this brought out.
ok deraadt@

Revision 1.34 / (download) - annotate - [select for diffs], Thu Sep 23 18:21:41 2004 UTC (19 years, 8 months ago) by brad
Branch: MAIN
CVS Tags: OPENBSD_3_7_BASE, OPENBSD_3_7
Changes since 1.33: +2 -1 lines
Diff to previous 1.33 (colored)

add ETHER_MAX_DIX_LEN

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jul 31 16:34:57 2004 UTC (19 years, 10 months ago) by brad
Branch: MAIN
CVS Tags: OPENBSD_3_6_BASE, OPENBSD_3_6
Changes since 1.32: +8 -5 lines
Diff to previous 1.32 (colored)

- formatting
- add comment

Revision 1.32 / (download) - annotate - [select for diffs], Tue Jun 22 22:46:30 2004 UTC (19 years, 11 months ago) by millert
Branch: MAIN
Changes since 1.31: +6 -1 lines
Diff to previous 1.31 (colored)

Add M_LINK0 for net80211; OK markus@ and mcbride@

Revision 1.31 / (download) - annotate - [select for diffs], Wed Jun 16 21:35:37 2004 UTC (19 years, 11 months ago) by naddy
Branch: MAIN
Changes since 1.30: +3 -1 lines
Diff to previous 1.30 (colored)

make safe for inclusion in C++ code; ok millert@, deraadt@

Revision 1.11.2.9 / (download) - annotate - [select for diffs], Sat Jun 5 23:11:25 2004 UTC (20 years ago) by niklas
Branch: SMP
Changes since 1.11.2.8: +13 -2 lines
Diff to previous 1.11.2.8 (colored) to branchpoint 1.11 (colored) next main 1.12 (colored)

Merge with the trunk

Revision 1.30 / (download) - annotate - [select for diffs], Tue May 18 21:10:14 2004 UTC (20 years ago) by brad
Branch: MAIN
CVS Tags: SMP_SYNC_B, SMP_SYNC_A
Changes since 1.29: +13 -2 lines
Diff to previous 1.29 (colored)

if_ether.h
add ETHER_MAX_LEN_JUMBO, ETHER_VLAN_ENCAP_LEN, ETHER_ALIGN, and
ETHERMTU_JUMBO constants.

if.h
add a few more interface capabilities flags.

Some from NetBSD, some from FreeBSD.

ok markus@

Revision 1.11.2.8 / (download) - annotate - [select for diffs], Sat Jun 7 11:06:08 2003 UTC (21 years ago) by ho
Branch: SMP
Changes since 1.11.2.7: +2 -6 lines
Diff to previous 1.11.2.7 (colored) to branchpoint 1.11 (colored)

Sync SMP branch to -current

Revision 1.29 / (download) - annotate - [select for diffs], Mon Jun 2 23:28:13 2003 UTC (21 years ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_5_BASE, OPENBSD_3_5, OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.28: +2 -6 lines
Diff to previous 1.28 (colored)

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999.  Proofed by myself and Theo.

Revision 1.17.4.3 / (download) - annotate - [select for diffs], Mon May 19 22:40:40 2003 UTC (21 years ago) by tedu
Branch: UBC
Changes since 1.17.4.2: +2 -18 lines
Diff to previous 1.17.4.2 (colored) to branchpoint 1.17 (colored) next main 1.18 (colored)

sync

Revision 1.11.2.7 / (download) - annotate - [select for diffs], Fri May 16 00:29:44 2003 UTC (21 years, 1 month ago) by niklas
Branch: SMP
Changes since 1.11.2.6: +1 -17 lines
Diff to previous 1.11.2.6 (colored) to branchpoint 1.11 (colored)

merge the trunk so we will get the genfs and locking fixes

Revision 1.28 / (download) - annotate - [select for diffs], Wed May 14 02:02:55 2003 UTC (21 years, 1 month ago) by itojun
Branch: MAIN
CVS Tags: UBC_SYNC_A
Changes since 1.27: +2 -18 lines
Diff to previous 1.27 (colored)

move ETHERTYPE_xx declarations to <net/ethertypes.h>.  meets netbsd practice.
deraadt ok

Revision 1.27 / (download) - annotate - [select for diffs], Tue May 13 08:25:44 2003 UTC (21 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.26: +17 -1 lines
Diff to previous 1.26 (colored)

back out.  these changes were not tested.  it might come as a surprise
to some developers, but include files are not just used by the kernel.
there are applications that pull them in as well.  this change broke
tcpdump, and who knows what else.  i've been talking for 24 hours now
about tree breakage and let this be official: I am prepared to lock the
tree entirely if need be.  YOU WILL GET OK PERMISSION FROM EVERYONE, NOT
JUST FROM ONE PERSON

Revision 1.26 / (download) - annotate - [select for diffs], Tue May 13 04:51:05 2003 UTC (21 years, 1 month ago) by itojun
Branch: MAIN
Changes since 1.25: +2 -18 lines
Diff to previous 1.25 (colored)

move ethernet protocol type defs into sys/net/, as it is not just for ethernet
(FDDI, ieee1394, ...).  follows netbsd practice.
2 jasons, dhartmei, thierry ok

Revision 1.11.2.6 / (download) - annotate - [select for diffs], Fri Mar 28 00:06:54 2003 UTC (21 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.11.2.5: +23 -14 lines
Diff to previous 1.11.2.5 (colored) to branchpoint 1.11 (colored)

Sync the SMP branch with 3.3

Revision 1.17.4.2 / (download) - annotate - [select for diffs], Tue Oct 29 00:36:46 2002 UTC (21 years, 7 months ago) by art
Branch: UBC
Changes since 1.17.4.1: +8 -7 lines
Diff to previous 1.17.4.1 (colored) to branchpoint 1.17 (colored)

sync to -current

Revision 1.25 / (download) - annotate - [select for diffs], Wed Jul 3 21:19:08 2002 UTC (21 years, 11 months ago) by miod
Branch: MAIN
CVS Tags: UBC_SYNC_B, OPENBSD_3_3_BASE, OPENBSD_3_3, OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.24: +5 -5 lines
Diff to previous 1.24 (colored)

Change all variables definitions (int foo) in sys/sys/*.h to variable
declarations (extern int foo), and compensate in the appropriate locations.

Revision 1.24 / (download) - annotate - [select for diffs], Fri Jun 14 21:35:00 2002 UTC (22 years ago) by todd
Branch: MAIN
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

spelling; from Brian Poole <raj@cerias.purdue.edu>

Revision 1.17.4.1 / (download) - annotate - [select for diffs], Tue Jun 11 03:31:36 2002 UTC (22 years ago) by art
Branch: UBC
Changes since 1.17: +43 -38 lines
Diff to previous 1.17 (colored)

Sync UBC branch to -current

Revision 1.23 / (download) - annotate - [select for diffs], Mon Jun 10 22:48:09 2002 UTC (22 years ago) by chris
Branch: MAIN
Changes since 1.22: +2 -1 lines
Diff to previous 1.22 (colored)

Split common code which converts a multicast address to an ethernet
address from ether_addmulti() and ether_delmulti() into ether_multiaddr(),
a'la netbsd.

Also clean up some magic numbers.

itojun likes it

Revision 1.22 / (download) - annotate - [select for diffs], Sun Jun 9 16:26:10 2002 UTC (22 years ago) by itojun
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

whitespace

Revision 1.21 / (download) - annotate - [select for diffs], Sat Jun 8 07:59:20 2002 UTC (22 years ago) by chris
Branch: MAIN
Changes since 1.20: +8 -9 lines
Diff to previous 1.20 (colored)

correctness

Revision 1.20 / (download) - annotate - [select for diffs], Tue May 7 19:28:59 2002 UTC (22 years, 1 month ago) by nate
Branch: MAIN
Changes since 1.19: +10 -1 lines
Diff to previous 1.19 (colored)

move ether_crc32_le to if_ethersubr.c.  Add ether_crc32_be

Revision 1.11.2.5 / (download) - annotate - [select for diffs], Thu Mar 28 14:56:45 2002 UTC (22 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.11.2.4: +26 -26 lines
Diff to previous 1.11.2.4 (colored) to branchpoint 1.11 (colored)

Merge in -current from roughly a week ago

Revision 1.19 / (download) - annotate - [select for diffs], Thu Mar 14 01:27:11 2002 UTC (22 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.18: +27 -27 lines
Diff to previous 1.18 (colored)

First round of __P removal in sys

Revision 1.11.2.4 / (download) - annotate - [select for diffs], Wed Mar 6 02:15:07 2002 UTC (22 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.11.2.3: +1 -4 lines
Diff to previous 1.11.2.3 (colored) to branchpoint 1.11 (colored)

Merge in trunk

Revision 1.18 / (download) - annotate - [select for diffs], Fri Mar 1 05:06:24 2002 UTC (22 years, 3 months ago) by kjc
Branch: MAIN
Changes since 1.17: +1 -4 lines
Diff to previous 1.17 (colored)

sync with KAME
move the function prototype of altq_etherclassify() from
netinet/if_ether.h to altq/if_altq.h.

Revision 1.11.2.3 / (download) - annotate - [select for diffs], Wed Jul 4 10:54:29 2001 UTC (22 years, 11 months ago) by niklas
Branch: SMP
Changes since 1.11.2.2: +18 -17 lines
Diff to previous 1.11.2.2 (colored) to branchpoint 1.11 (colored)

Merge in -current from two days ago in the SMP branch.
As usual with merges, they do not indicate progress, so do not hold
your breath for working SMP, and do not mail me and ask about the
state of it.  It has not changed.  There is work ongoing, but very, very
slowly.  The commit is done in parts as to not lock up the tree in too
big chunks at a time.

Revision 1.17 / (download) - annotate - [select for diffs], Wed Jun 27 06:07:47 2001 UTC (22 years, 11 months ago) by kjc
Branch: MAIN
CVS Tags: UBC_BASE, OPENBSD_3_0_BASE, OPENBSD_3_0
Branch point for: UBC
Changes since 1.16: +4 -1 lines
Diff to previous 1.16 (colored)

introduce the ALTQ queue macros into sys/net files.
the new model removes direct references to the fields in ifp->if_snd,
and defines the following macros to manipulate ifp->if_snd.
  IFQ_ENQUEUE(ifq, m, pktattr, err)
  IFQ_DEQUEUE(ifq, m)
  IFQ_POLL(ifq, m)
  IFQ_PURGE(ifq)
  IFQ_IS_EMPTY(ifq)

the new model also enforces some rules regarding how to use these macros.
details are descrined in
http://www.csl.sony.co.jp/~kjc/software/altq-new-design.txt

Revision 1.16 / (download) - annotate - [select for diffs], Sat Jun 23 21:32:26 2001 UTC (22 years, 11 months ago) by fgsch
Branch: MAIN
Changes since 1.15: +10 -16 lines
Diff to previous 1.15 (colored)

Put some constants together and calculate max/min mtu based on those;
jason@ ok.
This should be moved to net, tho, it's not inet specific.

Revision 1.15 / (download) - annotate - [select for diffs], Sat Jun 9 06:14:32 2001 UTC (23 years ago) by angelos
Branch: MAIN
Changes since 1.14: +6 -2 lines
Diff to previous 1.14 (colored)

Protect from multiple inclusion.

Revision 1.11.2.2 / (download) - annotate - [select for diffs], Mon May 14 22:40:07 2001 UTC (23 years, 1 month ago) by niklas
Branch: SMP
Changes since 1.11.2.1: +4 -3 lines
Diff to previous 1.11.2.1 (colored) to branchpoint 1.11 (colored)

merge in approximately 2.9 into SMP branch

Revision 1.14 / (download) - annotate - [select for diffs], Fri Jan 19 06:37:38 2001 UTC (23 years, 4 months ago) by itojun
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE, OPENBSD_2_9
Changes since 1.13: +3 -3 lines
Diff to previous 1.13 (colored)

pull post-4.4BSD change to sys/net/route.c from BSD/OS 4.2 (UCB copyrighted).

have sys/net/route.c:rtrequest1(), which takes rt_addrinfo * as the argument.
pass rt_addrinfo all the way down to rtrequest, and ifa->ifa_rtrequest.
3rd arg of ifa->ifa_rtrequest is now rt_addrinfo * instead of sockaddr *
(almost noone is using it anyways).

benefit: the follwoing command now works.  previously we need two route(8)
invocations, "add" then "change".
# route add -inet6 default ::1 -ifp gif0

remove unsafe typecast in rtrequest(), from rtentry * to sockaddr *.  it was
introduced by 4.3BSD-reno and never corrected.

XXX is eon_rtrequest() change correct regarding to 3rd arg?
eon_rtrequest() and rtrequest() were incorrect since 4.3BSD-reno,
so i do not have correct answer in the source code.
someone with more clue about netiso-over-ip, please help.

Revision 1.13 / (download) - annotate - [select for diffs], Thu Dec 28 23:56:47 2000 UTC (23 years, 5 months ago) by mickey
Branch: MAIN
Changes since 1.12: +2 -1 lines
Diff to previous 1.12 (colored)

export arprequest() and make it use ifnet* as the 1st arg; tested; angelos@ ok

Revision 1.11.2.1 / (download) - annotate - [select for diffs], Fri Mar 24 09:09:35 2000 UTC (24 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.11: +18 -1 lines
Diff to previous 1.11 (colored)

Sync with -current

Revision 1.12 / (download) - annotate - [select for diffs], Tue Mar 7 18:15:47 2000 UTC (24 years, 3 months ago) by chris
Branch: MAIN
CVS Tags: OPENBSD_2_8_BASE, OPENBSD_2_8, OPENBSD_2_7_BASE, OPENBSD_2_7
Changes since 1.11: +18 -1 lines
Diff to previous 1.11 (colored)

add ETHERTYPE_8021Q

Revision 1.11 / (download) - annotate - [select for diffs], Thu Feb 10 05:49:28 2000 UTC (24 years, 4 months ago) by jason
Branch: MAIN
CVS Tags: SMP_BASE
Branch point for: SMP
Changes since 1.10: +3 -1 lines
Diff to previous 1.10 (colored)

add PPPoE Discovery- and Session-Stage ETHERTYPEs

Revision 1.10 / (download) - annotate - [select for diffs], Wed Dec 8 06:50:19 1999 UTC (24 years, 6 months ago) by itojun
Branch: MAIN
CVS Tags: kame_19991208
Changes since 1.9: +18 -1 lines
Diff to previous 1.9 (colored)

bring in KAME IPv6 code, dated 19991208.
replaces NRL IPv6 layer.  reuses NRL pcb layer.  no IPsec-on-v6 support.
see sys/netinet6/{TODO,IMPLEMENTATION} for more details.

GENERIC configuration should work fine as before.  GENERIC.v6 works fine
as well, but you'll need KAME userland tools to play with IPv6 (will be
bringed into soon).

Revision 1.9 / (download) - annotate - [select for diffs], Sun Aug 8 00:43:00 1999 UTC (24 years, 10 months ago) by niklas
Branch: MAIN
CVS Tags: OPENBSD_2_6_BASE, OPENBSD_2_6
Changes since 1.8: +3 -1 lines
Diff to previous 1.8 (colored)

Support detaching of network interfaces.  Still work to do in ipf, and
other families than inet.

Revision 1.8 / (download) - annotate - [select for diffs], Mon Aug 2 22:51:16 1999 UTC (24 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7 (colored)

Ethernet, not 10 Mb/s Ethernet

Revision 1.7 / (download) - annotate - [select for diffs], Sun May 16 00:34:40 1999 UTC (25 years, 1 month ago) by ho
Branch: MAIN
Changes since 1.6: +4 -3 lines
Diff to previous 1.6 (colored)

Add support for static ARP entries that cannot be overwritten.
Ordinary static ARPs that are overwritten will no longer still be static.

Revision 1.6 / (download) - annotate - [select for diffs], Thu Jan 7 09:11:52 1999 UTC (25 years, 5 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_5_BASE, OPENBSD_2_5
Changes since 1.5: +2 -1 lines
Diff to previous 1.5 (colored)

ipv6 ethertype

Revision 1.5 / (download) - annotate - [select for diffs], Sat Jul 27 11:06:42 1996 UTC (27 years, 10 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_4_BASE, OPENBSD_2_4, OPENBSD_2_3_BASE, OPENBSD_2_3, OPENBSD_2_2_BASE, OPENBSD_2_2, OPENBSD_2_1_BASE, OPENBSD_2_1, OPENBSD_2_0_BASE, OPENBSD_2_0
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

pad for machines that do not pad structs out

Revision 1.4 / (download) - annotate - [select for diffs], Wed Jul 3 08:09:45 1996 UTC (27 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.3: +9 -1 lines
Diff to previous 1.3 (colored)

prototype ethers(3) functions (inside !_KERNEL), pointed out in
netbsd pr#2471, jhawk@mit.edu

Revision 1.3 / (download) - annotate - [select for diffs], Wed May 22 11:48:45 1996 UTC (28 years ago) by deraadt
Branch: MAIN
Changes since 1.2: +1 -3 lines
Diff to previous 1.2 (colored)

When sending an ARP request, use the interface address for the route, rather
than the first address assigned.  This gives slightly different behaviour in
the presence of aliases.  From Bill Fenner, via Pete Bentley.

Revision 1.2 / (download) - annotate - [select for diffs], Sun Mar 3 22:30:25 1996 UTC (28 years, 3 months ago) by niklas
Branch: MAIN
Changes since 1.1: +20 -1 lines
Diff to previous 1.1 (colored)

From NetBSD: 960217 merge

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Wed Oct 18 08:53:10 1995 UTC (28 years, 8 months ago) by deraadt
CVS Tags: netbsd_1_1
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

initial import of NetBSD tree

Revision 1.1 / (download) - annotate - [select for diffs], Wed Oct 18 08:53:10 1995 UTC (28 years, 8 months ago) by deraadt
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.