Re: svn commit: r358262 - head/sys/conf

2020-02-23 Thread Kristof Provost

Thanks!

On 23 Feb 2020, at 20:04, Warner Losh wrote:

Author: imp
Date: Sun Feb 23 19:04:15 2020
New Revision: 358262
URL: https://svnweb.freebsd.org/changeset/base/358262

Log:
  Use MACHINE_ARCH instead of TARGET_ARCH

  TARGET_ARCH is only for use in Makefile.inc1 contexts. MACHINE_ARCH 
is the
  preferred thing to set.  Makefile.inc1 sets MACHINE_ARCH in the 
cross build
  case, and make sets it in the native build case. This will fix 
anybody doing a
  native build. Add a comment for why we have to do this dance so 
when/if the
  problem with CFLAGS is fixed for the kernel this workaround can be 
removed.


Modified:
  head/sys/conf/Makefile.riscv

Modified: head/sys/conf/Makefile.riscv
==
--- head/sys/conf/Makefile.riscvSun Feb 23 17:59:51 2020
(r358261)
+++ head/sys/conf/Makefile.riscvSun Feb 23 19:04:15 2020
(r358262)
@@ -46,7 +46,9 @@ SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T 
$

 CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
 .endif

-CFLAGS += -DMACHINE_ARCH=\"${TARGET_ARCH}\"
+# Currently, the compile flags don't let the kernel know if this is a 
hard-float
+# ABI build or a soft-float ABI build. We need to pass in this 
information.

+CFLAGS += -DMACHINE_ARCH=\"${MACHINE_ARCH}\"

 # hack because genassym.c includes sys/bus.h which includes these.
 genassym.o: bus_if.h device_if.h

___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358268 - head/sys/vm

2020-02-23 Thread Doug Moore
Author: dougm
Date: Mon Feb 24 04:01:09 2020
New Revision: 358268
URL: https://svnweb.freebsd.org/changeset/base/358268

Log:
  The last argument to swp_pager_getswapspace is always 1. Remove that argument.
  
  Reviewed by:  markj
  Differential Revision:https://reviews.freebsd.org/D23810

Modified:
  head/sys/vm/swap_pager.c

Modified: head/sys/vm/swap_pager.c
==
--- head/sys/vm/swap_pager.cMon Feb 24 02:11:54 2020(r358267)
+++ head/sys/vm/swap_pager.cMon Feb 24 04:01:09 2020(r358268)
@@ -427,7 +427,7 @@ static int  swapoff_one(struct swdevt *sp, struct ucred
  * Swap bitmap functions
  */
 static voidswp_pager_freeswapspace(daddr_t blk, daddr_t npages);
-static daddr_t swp_pager_getswapspace(int *npages, int limit);
+static daddr_t swp_pager_getswapspace(int *npages);
 
 /*
  * Metadata functions
@@ -741,10 +741,9 @@ swap_pager_dealloc(vm_object_t object)
 /*
  * SWP_PAGER_GETSWAPSPACE() -  allocate raw swap space
  *
- * Allocate swap for up to the requested number of pages, and at
- * least a minimum number of pages.  The starting swap block number
- * (a page index) is returned or SWAPBLK_NONE if the allocation
- * failed.
+ * Allocate swap for up to the requested number of pages.  The
+ * starting swap block number (a page index) is returned or
+ * SWAPBLK_NONE if the allocation failed.
  *
  * Also has the side effect of advising that somebody made a mistake
  * when they configured swap and didn't configure enough.
@@ -754,12 +753,14 @@ swap_pager_dealloc(vm_object_t object)
  * We allocate in round-robin fashion from the configured devices.
  */
 static daddr_t
-swp_pager_getswapspace(int *io_npages, int limit)
+swp_pager_getswapspace(int *io_npages)
 {
daddr_t blk;
struct swdevt *sp;
int mpages, npages;
 
+   KASSERT(*io_npages >= 1,
+   ("%s: npages not positive", __func__));
blk = SWAPBLK_NONE;
mpages = *io_npages;
npages = imin(BLIST_MAX_ALLOC, mpages);
@@ -774,7 +775,7 @@ swp_pager_getswapspace(int *io_npages, int limit)
break;
sp = TAILQ_NEXT(sp, sw_list);
if (swdevhd == sp) {
-   if (npages <= limit)
+   if (npages == 1)
break;
mpages = npages - 1;
npages >>= 1;
@@ -937,7 +938,7 @@ swap_pager_reserve(vm_object_t object, vm_pindex_t sta
VM_OBJECT_WLOCK(object);
for (i = 0; i < size; i += n) {
n = size - i;
-   blk = swp_pager_getswapspace(, 1);
+   blk = swp_pager_getswapspace();
if (blk == SWAPBLK_NONE) {
swp_pager_meta_free(object, start, i);
VM_OBJECT_WUNLOCK(object);
@@ -1464,7 +1465,7 @@ swap_pager_putpages(vm_object_t object, vm_page_t *ma,
 
/* Get a block of swap of size up to size n. */
VM_OBJECT_WLOCK(object);
-   blk = swp_pager_getswapspace(, 1);
+   blk = swp_pager_getswapspace();
if (blk == SWAPBLK_NONE) {
VM_OBJECT_WUNLOCK(object);
mtx_lock(_mtx);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358267 - in stable/12: contrib/elftoolchain/elfdump contrib/elftoolchain/readelf sys/sys

2020-02-23 Thread Christian S.J. Peron
Author: csjp
Date: Mon Feb 24 02:11:54 2020
New Revision: 358267
URL: https://svnweb.freebsd.org/changeset/base/358267

Log:
  MFC r348776
  
  Teach readelf about some OpenBSD ELF program headers
  
  Discussed with: emaste
  Reviewed by:imp
  Differential Revision:  https://reviews.freebsd.org/D20548

Modified:
  stable/12/contrib/elftoolchain/elfdump/elfdump.c
  stable/12/contrib/elftoolchain/readelf/readelf.c
  stable/12/sys/sys/elf_common.h

Modified: stable/12/contrib/elftoolchain/elfdump/elfdump.c
==
--- stable/12/contrib/elftoolchain/elfdump/elfdump.cSun Feb 23 23:39:55 
2020(r358266)
+++ stable/12/contrib/elftoolchain/elfdump/elfdump.cMon Feb 24 02:11:54 
2020(r358267)
@@ -343,17 +343,20 @@ elf_phdr_type_str(unsigned int type)
static char s_type[32];
 
switch (type) {
-   case PT_NULL:   return "PT_NULL";
-   case PT_LOAD:   return "PT_LOAD";
-   case PT_DYNAMIC:return "PT_DYNAMIC";
-   case PT_INTERP: return "PT_INTERP";
-   case PT_NOTE:   return "PT_NOTE";
-   case PT_SHLIB:  return "PT_SHLIB";
-   case PT_PHDR:   return "PT_PHDR";
-   case PT_TLS:return "PT_TLS";
-   case PT_GNU_EH_FRAME:   return "PT_GNU_EH_FRAME";
-   case PT_GNU_STACK:  return "PT_GNU_STACK";
-   case PT_GNU_RELRO:  return "PT_GNU_RELRO";
+   case PT_NULL:   return "PT_NULL";
+   case PT_LOAD:   return "PT_LOAD";
+   case PT_DYNAMIC:return "PT_DYNAMIC";
+   case PT_INTERP: return "PT_INTERP";
+   case PT_NOTE:   return "PT_NOTE";
+   case PT_SHLIB:  return "PT_SHLIB";
+   case PT_PHDR:   return "PT_PHDR";
+   case PT_TLS:return "PT_TLS";
+   case PT_GNU_EH_FRAME:   return "PT_GNU_EH_FRAME";
+   case PT_GNU_STACK:  return "PT_GNU_STACK";
+   case PT_GNU_RELRO:  return "PT_GNU_RELRO";
+   case PT_OPENBSD_RANDOMIZE:  return "PT_OPENBSD_RANDOMIZE";
+   case PT_OPENBSD_WXNEEDED:   return "PT_OPENBSD_WXNEEDED";
+   case PT_OPENBSD_BOOTDATA:   return "PT_OPENBSD_BOOTDATA";
}
snprintf(s_type, sizeof(s_type), "", type);
return (s_type);

Modified: stable/12/contrib/elftoolchain/readelf/readelf.c
==
--- stable/12/contrib/elftoolchain/readelf/readelf.cSun Feb 23 23:39:55 
2020(r358266)
+++ stable/12/contrib/elftoolchain/readelf/readelf.cMon Feb 24 02:11:54 
2020(r358267)
@@ -670,6 +670,9 @@ phdr_type(unsigned int mach, unsigned int ptype)
case PT_GNU_EH_FRAME: return "GNU_EH_FRAME";
case PT_GNU_STACK: return "GNU_STACK";
case PT_GNU_RELRO: return "GNU_RELRO";
+   case PT_OPENBSD_RANDOMIZE: return "OPENBSD_RANDOMIZE";
+   case PT_OPENBSD_WXNEEDED: return "OPENBSD_WXNEEDED";
+   case PT_OPENBSD_BOOTDATA: return "OPENBSD_BOOTDATA";
default:
if (ptype >= PT_LOOS && ptype <= PT_HIOS)
snprintf(s_ptype, sizeof(s_ptype), "LOOS+%#x",

Modified: stable/12/sys/sys/elf_common.h
==
--- stable/12/sys/sys/elf_common.h  Sun Feb 23 23:39:55 2020
(r358266)
+++ stable/12/sys/sys/elf_common.h  Mon Feb 24 02:11:54 2020
(r358267)
@@ -544,6 +544,10 @@ typedef struct {
 #definePT_ARM_EXIDX0x7001  /* ARM exception unwind tables. 
*/
 #definePT_HIPROC   0x7fff  /* Last processor-specific 
type. */
 
+#definePT_OPENBSD_RANDOMIZE0x65A3DBE6  /* OpenBSD random data 
segment */
+#definePT_OPENBSD_WXNEEDED 0x65A3DBE7  /* OpenBSD EXEC/WRITE 
pages needed */
+#definePT_OPENBSD_BOOTDATA 0x65A41BE6  /* OpenBSD section for 
boot args */
+
 /* Values for p_flags. */
 #definePF_X0x1 /* Executable. */
 #definePF_W0x2 /* Writable. */
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358266 - head/usr.sbin/config

2020-02-23 Thread Warner Losh
Author: imp
Date: Sun Feb 23 23:39:55 2020
New Revision: 358266
URL: https://svnweb.freebsd.org/changeset/base/358266

Log:
  Bump CONFIGVERS to 600017.
  
  This change reflects the ability to change machine_arch in a config file. This
  is useful for including one config in another and changing the machine_arch
  in the second one.

Modified:
  head/usr.sbin/config/configvers.h

Modified: head/usr.sbin/config/configvers.h
==
--- head/usr.sbin/config/configvers.h   Sun Feb 23 23:36:56 2020
(r358265)
+++ head/usr.sbin/config/configvers.h   Sun Feb 23 23:39:55 2020
(r358266)
@@ -49,7 +49,7 @@
  *
  * $FreeBSD$
  */
-#defineCONFIGVERS  600016
+#defineCONFIGVERS  600017
 #defineMAJOR_VERS(x)   ((x) / 10)
 
 /* Last config(8) version to require envmode/hintmode */
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358265 - head/usr.sbin/config

2020-02-23 Thread Warner Losh
Author: imp
Date: Sun Feb 23 23:36:56 2020
New Revision: 358265
URL: https://svnweb.freebsd.org/changeset/base/358265

Log:
  Relax machine directives a little.
  
  Currently, you can have multiple machine directives if they are otherwise
  identical. Relax this so that only the machinename part is the same. This 
allows
  one to change the machine arch in a different config file you've included 
easily.

Modified:
  head/usr.sbin/config/config.5
  head/usr.sbin/config/config.y

Modified: head/usr.sbin/config/config.5
==
--- head/usr.sbin/config/config.5   Sun Feb 23 23:29:53 2020
(r358264)
+++ head/usr.sbin/config/config.5   Sun Feb 23 23:36:56 2020
(r358265)
@@ -283,7 +283,8 @@ corresponds to MACHINE_ARCH.
 .Pp
 A kernel configuration file may have only one
 .Ic machine
-directive.
+directive, unless the second one matches the
+machine argument in the first one exactly.
 .\"  MAKEOPTION 
 .Pp
 .It Ic makeoption Ar options

Modified: head/usr.sbin/config/config.y
==
--- head/usr.sbin/config/config.y   Sun Feb 23 23:29:53 2020
(r358264)
+++ head/usr.sbin/config/config.y   Sun Feb 23 23:36:56 2020
(r358265)
@@ -155,8 +155,11 @@ Config_spec:
machinearch = $2;
  } |
ARCH Save_id Save_id {
-   if (machinename != NULL &&
-   !(eq($2, machinename) && eq($3, machinearch)))
+   /*
+* Allow the machinearch to change with a second machine 
directive,
+* but still enforce no changes to the machinename.
+*/
+   if (machinename != NULL && !eq($2, machinename))
errx(1, "%s:%d: only one machine directive is allowed",
yyfile, yyline);
machinename = $2;
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358264 - head/share/misc

2020-02-23 Thread Sevan Janiyan
Author: sevan (doc committer)
Date: Sun Feb 23 23:29:53 2020
New Revision: 358264
URL: https://svnweb.freebsd.org/changeset/base/358264

Log:
  Website announcement of the 9.0 release wasn't a Valentine's day accident.

Modified:
  head/share/misc/bsd-family-tree

Modified: head/share/misc/bsd-family-tree
==
--- head/share/misc/bsd-family-tree Sun Feb 23 21:48:48 2020
(r358263)
+++ head/share/misc/bsd-family-tree Sun Feb 23 23:29:53 2020
(r358264)
@@ -799,7 +799,7 @@ OpenBSD 6.6 2019-10-17 [OBD]
 macOS 10.152019-10-07 [APL]
 macOS 10.15.1  2019-10-29 [APL] (security/critical release)
 FreeBSD 12.1   2019-11-04 [FBD]
-NetBSD 9.0 2020-02-15 [NBD]
+NetBSD 9.0 2020-02-14 [NBD]
 
 Bibliography
 
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r358262 - head/sys/conf

2020-02-23 Thread Warner Losh
On Sun, Feb 23, 2020, 12:37 PM Ian Lepore  wrote:

> On Sun, 2020-02-23 at 19:04 +, Warner Losh wrote:
> > Author: imp
> > Date: Sun Feb 23 19:04:15 2020
> > New Revision: 358262
> > URL: https://svnweb.freebsd.org/changeset/base/358262
> >
> > Log:
> >   Use MACHINE_ARCH instead of TARGET_ARCH
> >
> >   TARGET_ARCH is only for use in Makefile.inc1 contexts. MACHINE_ARCH is
> the
> >   preferred thing to set.  Makefile.inc1 sets MACHINE_ARCH in the cross
> build
> >   case, and make sets it in the native build case. This will fix anybody
> doing a
> >   native build. Add a comment for why we have to do this dance so
> when/if the
> >   problem with CFLAGS is fixed for the kernel this workaround can be
> removed.
> >
>
> I suddenly wonder: why does the kernel build need to know about the
> float ABI if we don't use floating point in the kernel?  If it's about
> whether to include support for the floating point hardware
> (save/restore context at the userland boundary, etc), then shouldn't
> that be controlled with a kernel config option or device statement like
> it is on other arches?
>

This is so the sysctl that make uses returns the right thing.

If the kernel actually is being compiled with different -march= to
> generate hardfloat instructions/register usage/etc, then shouldn't
> there be some compiler-defined macro to indicate that?  (A quick search
> says that __riscv_float_abi_soft may be that macro.)
>

The code review for the prior change explored that. This change just
documented the prior change and used the right make variable.

I honestly think this is a short term hack until other issues are settled.
I justed wanted the hack to be right.

Warner

-- Ian
>
>
>
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r358262 - head/sys/conf

2020-02-23 Thread Ian Lepore
On Sun, 2020-02-23 at 19:04 +, Warner Losh wrote:
> Author: imp
> Date: Sun Feb 23 19:04:15 2020
> New Revision: 358262
> URL: https://svnweb.freebsd.org/changeset/base/358262
> 
> Log:
>   Use MACHINE_ARCH instead of TARGET_ARCH
>   
>   TARGET_ARCH is only for use in Makefile.inc1 contexts. MACHINE_ARCH is the
>   preferred thing to set.  Makefile.inc1 sets MACHINE_ARCH in the cross build
>   case, and make sets it in the native build case. This will fix anybody 
> doing a
>   native build. Add a comment for why we have to do this dance so when/if the
>   problem with CFLAGS is fixed for the kernel this workaround can be removed.
> 

I suddenly wonder: why does the kernel build need to know about the
float ABI if we don't use floating point in the kernel?  If it's about
whether to include support for the floating point hardware
(save/restore context at the userland boundary, etc), then shouldn't
that be controlled with a kernel config option or device statement like
it is on other arches?

If the kernel actually is being compiled with different -march= to
generate hardfloat instructions/register usage/etc, then shouldn't
there be some compiler-defined macro to indicate that?  (A quick search
says that __riscv_float_abi_soft may be that macro.)

-- Ian


___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358262 - head/sys/conf

2020-02-23 Thread Warner Losh
Author: imp
Date: Sun Feb 23 19:04:15 2020
New Revision: 358262
URL: https://svnweb.freebsd.org/changeset/base/358262

Log:
  Use MACHINE_ARCH instead of TARGET_ARCH
  
  TARGET_ARCH is only for use in Makefile.inc1 contexts. MACHINE_ARCH is the
  preferred thing to set.  Makefile.inc1 sets MACHINE_ARCH in the cross build
  case, and make sets it in the native build case. This will fix anybody doing a
  native build. Add a comment for why we have to do this dance so when/if the
  problem with CFLAGS is fixed for the kernel this workaround can be removed.

Modified:
  head/sys/conf/Makefile.riscv

Modified: head/sys/conf/Makefile.riscv
==
--- head/sys/conf/Makefile.riscvSun Feb 23 17:59:51 2020
(r358261)
+++ head/sys/conf/Makefile.riscvSun Feb 23 19:04:15 2020
(r358262)
@@ -46,7 +46,9 @@ SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T $
 CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
 .endif
 
-CFLAGS += -DMACHINE_ARCH=\"${TARGET_ARCH}\"
+# Currently, the compile flags don't let the kernel know if this is a 
hard-float
+# ABI build or a soft-float ABI build. We need to pass in this information.
+CFLAGS += -DMACHINE_ARCH=\"${MACHINE_ARCH}\"
 
 # hack because genassym.c includes sys/bus.h which includes these.
 genassym.o: bus_if.h device_if.h
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358261 - head/sys/vm

2020-02-23 Thread Mark Johnston
Author: markj
Date: Sun Feb 23 17:59:51 2020
New Revision: 358261
URL: https://svnweb.freebsd.org/changeset/base/358261

Log:
  Allow swap_pager_putpages() to allocate one block at a time.
  
  The minimum allocation size of 4 blocks is an old policy that came with
  the "new" swap pager in r42957.  Since then the blist allocator has
  gotten better at reducing fragmentation; for example, with r349777 it
  can return a range that spans multiple leaves.  When swap space is close
  to being exhaused, the minimum of 4 blocks most likely exacerbates
  memory pressure, so reduce it to 1.
  
  Reported by:  alc
  Tested by:pho
  Reviewed by:  alc, dougm, kib
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D23763

Modified:
  head/sys/vm/swap_pager.c

Modified: head/sys/vm/swap_pager.c
==
--- head/sys/vm/swap_pager.cSun Feb 23 15:21:15 2020(r358260)
+++ head/sys/vm/swap_pager.cSun Feb 23 17:59:51 2020(r358261)
@@ -1464,7 +1464,7 @@ swap_pager_putpages(vm_object_t object, vm_page_t *ma,
 
/* Get a block of swap of size up to size n. */
VM_OBJECT_WLOCK(object);
-   blk = swp_pager_getswapspace(, 4);
+   blk = swp_pager_getswapspace(, 1);
if (blk == SWAPBLK_NONE) {
VM_OBJECT_WUNLOCK(object);
mtx_lock(_mtx);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358260 - head/stand/common

2020-02-23 Thread Toomas Soome
Author: tsoome
Date: Sun Feb 23 15:21:15 2020
New Revision: 358260
URL: https://svnweb.freebsd.org/changeset/base/358260

Log:
  loader: alloc_pread() should set errno if malloc fails
  
  We may want to find out why alloc_pread() failed.

Modified:
  head/stand/common/misc.c

Modified: head/stand/common/misc.c
==
--- head/stand/common/misc.cSun Feb 23 15:18:28 2020(r358259)
+++ head/stand/common/misc.cSun Feb 23 15:21:15 2020(r358260)
@@ -149,6 +149,7 @@ alloc_pread(int fd, off_t off, size_t len)
 #ifdef DEBUG
printf("\nmalloc(%d) failed\n", (int)len);
 #endif
+   errno = ENOMEM;
return (NULL);
}
if (lseek(fd, off, SEEK_SET) == -1) {
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r358259 - stable/11/sys/net

2020-02-23 Thread Pedro F. Giffuni
Author: pfg
Date: Sun Feb 23 15:18:28 2020
New Revision: 358259
URL: https://svnweb.freebsd.org/changeset/base/358259

Log:
  MFC r357414, r357415, r357417, r357423, r357424, r357587, r357655:
  ethernet: add some more Ethertypes.
  
  Add some types based on other BSDs and also add EtherCat, PROFINET, Powerlink
  and Sercos III which are IEC standards.
  
  There is a public list (CSV format) at:
https://standards.ieee.org/products-services/regauth/
  
  Spacing cleanups.
  No functional change.

Modified:
  stable/11/sys/net/ethernet.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/net/ethernet.h
==
--- stable/11/sys/net/ethernet.hSun Feb 23 03:32:16 2020
(r358258)
+++ stable/11/sys/net/ethernet.hSun Feb 23 15:18:28 2020
(r358259)
@@ -6,7 +6,7 @@
  */
 
 #ifndef _NET_ETHERNET_H_
-#define _NET_ETHERNET_H_
+#define_NET_ETHERNET_H_
 
 /*
  * Some basic Ethernet constants.
@@ -95,6 +95,11 @@ struct ether_vlan_header {
((pri) & 7) << 1) | ((cfi) & 1)) << 12) | ((vlid) & EVL_VLID_MASK))
 
 /*
+ * Ethernet protocol types.
+ *
+ * A public list is available from the IEEE Registration Authority:
+ * https://standards.ieee.org/products-services/regauth/
+ *
  *  NOTE: 0x-0x05DC (0..1500) are generally IEEE 802.3 length fields.
  *  However, there are some conflicts.
  */
@@ -263,7 +268,7 @@ struct ether_vlan_header {
 #defineETHERTYPE_AARP  0x80F3  /* AppleTalk AARP */
/* 0x80F4 - 0x80F5 Kinetics */
 #defineETHERTYPE_APOLLO0x80F7  /* Apollo Computer */
-#define ETHERTYPE_VLAN 0x8100  /* IEEE 802.1Q VLAN tagging (XXX 
conflicts) */
+#defineETHERTYPE_VLAN  0x8100  /* IEEE 802.1Q VLAN tagging 
(XXX conflicts) */
/* 0x80FF - 0x8101 Wellfleet Communications (XXX 
conflicts) */
 #defineETHERTYPE_BOFL  0x8102  /* Wellfleet; BOFL (Breath OF 
Life) pkts [every 5-10 secs.] */
 #defineETHERTYPE_WELLFLEET 0x8103  /* Wellfleet Communications */
@@ -336,15 +341,24 @@ struct ether_vlan_header {
 #defineETHERTYPE_SLOW  0x8809  /* 802.3ad link aggregation 
(LACP) */
 #defineETHERTYPE_PPP   0x880B  /* PPP (obsolete by PPPoE) */
 #defineETHERTYPE_HITACHI   0x8820  /* Hitachi Cable 
(Optoelectronic Systems Laboratory) */
-#define ETHERTYPE_TEST 0x8822  /* Network Conformance Testing */
+#defineETHERTYPE_TEST  0x8822  /* Network Conformance Testing 
*/
 #defineETHERTYPE_MPLS  0x8847  /* MPLS Unicast */
 #defineETHERTYPE_MPLS_MCAST0x8848  /* MPLS Multicast */
 #defineETHERTYPE_AXIS  0x8856  /* Axis Communications AB 
proprietary bootstrap/config */
 #defineETHERTYPE_PPPOEDISC 0x8863  /* PPP Over Ethernet Discovery 
Stage */
 #defineETHERTYPE_PPPOE 0x8864  /* PPP Over Ethernet Session 
Stage */
 #defineETHERTYPE_LANPROBE  0x  /* HP LanProbe test? */
-#defineETHERTYPE_PAE   0x888e  /* EAPOL PAE/802.1x */
+#defineETHERTYPE_PAE   0x888E  /* EAPOL PAE/802.1x */
+#defineETHERTYPE_PROFINET  0x8892  /* PROFINET RT Protocol */
+#defineETHERTYPE_AOE   0x88A2  /* ATA Protocol */
+#defineETHERTYPE_ETHERCAT  0x88A4  /* EtherCat Protocol */
 #defineETHERTYPE_QINQ  0x88A8  /* 802.1ad VLAN stacking */
+#defineETHERTYPE_POWERLINK 0x88AB  /* Ethernet Powerlink (EPL) */
+#defineETHERTYPE_LLDP  0x88CC  /* Link Layer Discovery 
Protocol */
+#defineETHERTYPE_SERCOS0x88CD  /* SERCOS III Protocol */
+#defineETHERTYPE_MACSEC0x88E5  /* 802.1AE MAC Security */
+#defineETHERTYPE_PBB   0x88E7  /* 802.1Q Provider Backbone 
Bridges */
+#defineETHERTYPE_FCOE  0x8906  /* Fibre Channel over Ethernet 
*/
 #defineETHERTYPE_LOOPBACK  0x9000  /* Loopback: used to test 
interfaces */
 #defineETHERTYPE_LBACK ETHERTYPE_LOOPBACK  /* DEC MOP 
loopback */
 #defineETHERTYPE_XNSSM 0x9001  /* 3Com (Formerly Bridge 
Communications), XNS Systems Management */
@@ -375,7 +389,7 @@ struct ether_vlan_header {
  * ether_vlan_mtap.  This function will re-insert VLAN tags for the duration
  * of the tap, so they show up properly for network analyzers.
  */
-#define ETHER_BPF_MTAP(_ifp, _m) do {  \
+#defineETHER_BPF_MTAP(_ifp, _m) do {   
\
if (bpf_peers_present((_ifp)->if_bpf)) {\
M_ASSERTVALID(_m);  \
if (((_m)->m_flags & M_VLANTAG) != 0)   \
___
svn-src-all@freebsd.org mailing list