162f1e1b2SGeorge V. Neville-Neil /* 262f1e1b2SGeorge V. Neville-Neil * Copyright (c) 2013 The FreeBSD Foundation 362f1e1b2SGeorge V. Neville-Neil * All rights reserved. 462f1e1b2SGeorge V. Neville-Neil * 562f1e1b2SGeorge V. Neville-Neil * Redistribution and use in source and binary forms, with or without 662f1e1b2SGeorge V. Neville-Neil * modification, are permitted provided that the following conditions 762f1e1b2SGeorge V. Neville-Neil * are met: 862f1e1b2SGeorge V. Neville-Neil * 1. Redistributions of source code must retain the above copyright 962f1e1b2SGeorge V. Neville-Neil * notice, this list of conditions and the following disclaimer. 1062f1e1b2SGeorge V. Neville-Neil * 2. Redistributions in binary form must reproduce the above 1162f1e1b2SGeorge V. Neville-Neil * copyright notice, this list of conditions and the following 1262f1e1b2SGeorge V. Neville-Neil * disclaimer in the documentation and/or other materials provided 1362f1e1b2SGeorge V. Neville-Neil * with the distribution. 1462f1e1b2SGeorge V. Neville-Neil * 1562f1e1b2SGeorge V. Neville-Neil * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' 1662f1e1b2SGeorge V. Neville-Neil * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 1762f1e1b2SGeorge V. Neville-Neil * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 1862f1e1b2SGeorge V. Neville-Neil * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR 1962f1e1b2SGeorge V. Neville-Neil * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2062f1e1b2SGeorge V. Neville-Neil * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2162f1e1b2SGeorge V. Neville-Neil * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 2262f1e1b2SGeorge V. Neville-Neil * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 2362f1e1b2SGeorge V. Neville-Neil * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 2462f1e1b2SGeorge V. Neville-Neil * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 2562f1e1b2SGeorge V. Neville-Neil * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2662f1e1b2SGeorge V. Neville-Neil * SUCH DAMAGE. 2762f1e1b2SGeorge V. Neville-Neil * 2862f1e1b2SGeorge V. Neville-Neil * $FreeBSD$ 2962f1e1b2SGeorge V. Neville-Neil * 3062f1e1b2SGeorge V. Neville-Neil * Author: George V. Neville-Neil 3162f1e1b2SGeorge V. Neville-Neil * 3262f1e1b2SGeorge V. Neville-Neil */ 3362f1e1b2SGeorge V. Neville-Neil 3462f1e1b2SGeorge V. Neville-Neil /* Organizationally Unique Identifier assigned by IEEE 14 Nov 2013 */ 35*1350c361SGeorge V. Neville-Neil #define OUI_FREEBSD_BASE 0x589cfc000000 36*1350c361SGeorge V. Neville-Neil #define OUI_FREEBSD(nic) (OUI_FREEBSD_BASE | (nic)) 3762f1e1b2SGeorge V. Neville-Neil 3862f1e1b2SGeorge V. Neville-Neil /* 3962f1e1b2SGeorge V. Neville-Neil * OUIs are most often used to uniquely identify network interfaces 4062f1e1b2SGeorge V. Neville-Neil * and occupy the first 3 bytes of both destination and source MAC 4162f1e1b2SGeorge V. Neville-Neil * addresses. The following allocations exist so that various 4262f1e1b2SGeorge V. Neville-Neil * software systems associated with FreeBSD can have unique IDs in the 4362f1e1b2SGeorge V. Neville-Neil * absence of hardware. The use of OUIs for this purpose is not fully 4462f1e1b2SGeorge V. Neville-Neil * fleshed out but is now in common use in virtualization technology. 4562f1e1b2SGeorge V. Neville-Neil * 4662f1e1b2SGeorge V. Neville-Neil * Allocations from this range are expected to be made using COMMON 4762f1e1b2SGeorge V. Neville-Neil * SENSE by developers. Do NOT take a large range just because 4862f1e1b2SGeorge V. Neville-Neil * they're currently wide open. Take the smallest useful range for 4962f1e1b2SGeorge V. Neville-Neil * your system. We have (2^24 - 2) available addresses (see Reserved 5062f1e1b2SGeorge V. Neville-Neil * Values below) but that is far from infinite. 5162f1e1b2SGeorge V. Neville-Neil * 5262f1e1b2SGeorge V. Neville-Neil * In the event of a conflict arbitration of allocation in this file 53d4aff8d1SGeorge V. Neville-Neil * is subject to core@ approval. 5462f1e1b2SGeorge V. Neville-Neil * 5562f1e1b2SGeorge V. Neville-Neil * Applications are differentiated based on the high order bit(s) of 5662f1e1b2SGeorge V. Neville-Neil * the remaining three bytes. Our first allocation has all 0s, the 5762f1e1b2SGeorge V. Neville-Neil * next allocation has the highest bit set. Allocating in this way 5862f1e1b2SGeorge V. Neville-Neil * gives us 254 allocations of 64K addresses. Address blocks can be 5962f1e1b2SGeorge V. Neville-Neil * concatenated if necessary. 6062f1e1b2SGeorge V. Neville-Neil * 6162f1e1b2SGeorge V. Neville-Neil * Reserved Values: 0x000000 and 0xffffff are reserved and MUST NOT BE 6262f1e1b2SGeorge V. Neville-Neil * allocated for any reason. 6362f1e1b2SGeorge V. Neville-Neil */ 6462f1e1b2SGeorge V. Neville-Neil 6562f1e1b2SGeorge V. Neville-Neil /* Allocate 64K to bhyve */ 66*1350c361SGeorge V. Neville-Neil #define OUI_FREEBSD_BHYVE_LOW OUI_FREEBSD(0x000001) 67*1350c361SGeorge V. Neville-Neil #define OUI_FREEBSD_BHYVE_HIGH OUI_FREEBSD(0x00ffff) 68