diff options
author | Michael Zeller <mike@mikezeller.net> | 2020-03-11 16:55:43 -0400 |
---|---|---|
committer | Patrick Mooney <pmooney@pfmooney.com> | 2020-05-22 23:32:53 +0000 |
commit | 84659b24a533984de271059abf9a1092835d15a9 (patch) | |
tree | a5b46d9b98d0d88ee35aeef492b48c1e84d82035 /usr/src/compat | |
parent | cf3ec608f736765ec9852eed5e611848a25de9a4 (diff) | |
download | illumos-joyent-84659b24a533984de271059abf9a1092835d15a9.tar.gz |
12735 bhyve upstream sync 2019 Sept
Reviewed by: Dan McDonald <danmcd@kebe.com>
Reviewed by: John Levon <john.levon@joyent.com>
Reviewed by: Patrick Mooney <pmooney@oxide.computer>
Approved by: Robert Mustacchi <rm@fingolfin.org>
Diffstat (limited to 'usr/src/compat')
-rw-r--r-- | usr/src/compat/freebsd/net/ieee_oui.h | 85 | ||||
-rw-r--r-- | usr/src/compat/freebsd/sys/param.h | 2 | ||||
-rw-r--r-- | usr/src/compat/freebsd/sys/pcpu.h | 4 |
3 files changed, 89 insertions, 2 deletions
diff --git a/usr/src/compat/freebsd/net/ieee_oui.h b/usr/src/compat/freebsd/net/ieee_oui.h new file mode 100644 index 0000000000..068328d833 --- /dev/null +++ b/usr/src/compat/freebsd/net/ieee_oui.h @@ -0,0 +1,85 @@ +/* - + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2013 The FreeBSD Foundation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + * + * Author: George V. Neville-Neil + * + */ + +/* Organizationally Unique Identifier assigned by IEEE 14 Nov 2013 */ +#define OUI_FREEBSD_BASE 0x589cfc000000 +#define OUI_FREEBSD(nic) (OUI_FREEBSD_BASE | (nic)) + +/* + * OUIs are most often used to uniquely identify network interfaces + * and occupy the first 3 bytes of both destination and source MAC + * addresses. The following allocations exist so that various + * software systems associated with FreeBSD can have unique IDs in the + * absence of hardware. The use of OUIs for this purpose is not fully + * fleshed out but is now in common use in virtualization technology. + * + * Allocations from this range are expected to be made using COMMON + * SENSE by developers. Do NOT take a large range just because + * they're currently wide open. Take the smallest useful range for + * your system. We have (2^24 - 2) available addresses (see Reserved + * Values below) but that is far from infinite. + * + * In the event of a conflict arbitration of allocation in this file + * is subject to core@ approval. + * + * Applications are differentiated based on the high order bit(s) of + * the remaining three bytes. Our first allocation has all 0s, the + * next allocation has the highest bit set. Allocating in this way + * gives us 254 allocations of 64K addresses. Address blocks can be + * concatenated if necessary. + * + * Reserved Values: 0x000000 and 0xffffff are reserved and MUST NOT BE + * allocated for any reason. + */ + +/* Allocate 20 bits to bhyve */ +#define OUI_FREEBSD_BHYVE_LOW OUI_FREEBSD(0x000001) +#define OUI_FREEBSD_BHYVE_HIGH OUI_FREEBSD(0x0fffff) + +/* + * Allocate 16 bits for a pool to give to various interfaces that need a + * generated address, but don't quite need to slice off a whole section of + * the OUI (e.g. cloned interfaces, one-off NICs of various vendors). + * + * ether_gen_addr should be used to generate an address from this pool. + */ +#define OUI_FREEBSD_GENERATED_MASK 0x10ffff +#define OUI_FREEBSD_GENERATED_LOW OUI_FREEBSD(0x100000) +#define OUI_FREEBSD_GENERATED_HIGH OUI_FREEBSD(OUI_FREEBSD_GENERATED_MASK) + +/* Allocate 16 bits for emulated NVMe devices */ +#define OUI_FREEBSD_NVME_MASK 0x20ffff +#define OUI_FREEBSD_NVME_LOW OUI_FREEBSD(0x200000) +#define OUI_FREEBSD_NVME_HIGH OUI_FREEBSD(OUI_FREEBSD_NVME_MASK) diff --git a/usr/src/compat/freebsd/sys/param.h b/usr/src/compat/freebsd/sys/param.h index b125f9014f..5ba21a2809 100644 --- a/usr/src/compat/freebsd/sys/param.h +++ b/usr/src/compat/freebsd/sys/param.h @@ -23,7 +23,7 @@ #define MAXPHYS (56 * 1024) #endif #define MAXHOSTNAMELEN 256 -#define SPECNAMELEN 63 +#define SPECNAMELEN 255 #ifdef _KERNEL #include <sys/time.h> diff --git a/usr/src/compat/freebsd/sys/pcpu.h b/usr/src/compat/freebsd/sys/pcpu.h index f29c9c5018..1bad53c159 100644 --- a/usr/src/compat/freebsd/sys/pcpu.h +++ b/usr/src/compat/freebsd/sys/pcpu.h @@ -16,6 +16,8 @@ #ifndef _COMPAT_FREEBSD_SYS_PCPU_H_ #define _COMPAT_FREEBSD_SYS_PCPU_H_ -#define curcpu (CPU->cpu_id) +#define curcpu (CPU->cpu_id) + +#define get_pcpu() CPU #endif /* _COMPAT_FREEBSD_SYS_PCPU_H_ */ |