VXLAN(4P) Protocols VXLAN(4P)

NAME


VXLAN, vxlan - Virtual eXtensible Local Area Network

SYNOPSIS


#include <sys/vxlan.h>

DESCRIPTION


VXLAN (RFC 7348) is a network encapsulation protocol that is used by
overlay(7) devices. A payload, commonly an Ethernet frame, is placed
inside of a UDP packet and prepended with an 8-byte VXLAN header.

The VXLAN header contains two 32-bit words. The first word is an 8-bit
flags field followed by 24 reserved bits. The second word is a 24-bit
virtual network identifier followed by 8 reserved bits. The virtual
network identifier identifies a unique VXLAN and is similar in concept
to an IEEE 802.1Q VLAN identifier.

The system provides access to VXLAN through dladm overlays. See
dladm(8) and overlay(7) for more information.

The <sys/vxlan.h> header provides information for working with the
VXLAN protocol. The contents of this header are uncommitted. The
header defines a structure that may be used to encode and decode a
VXLAN header. It defines a packed structure type vxlan_hdr_t which
represents the VXLAN frame header and has the following members:

uint32_t vxlan_flags; /* flags in upper 8 bits */
uint32_t vxlan_id; /* VXLAN ID in upper 24 bits */

EXAMPLES


Example 1 Decoding a VXLAN header

The following example shows how to validate a header. For more
information on this process, see RFC 7348.

#include <sys/types.h>
#include <netinet/in.h>
#include <inttypes.h>
#include <sys/vxlan.h>

...

/*
* Validate the following bytes as a VXLAN header. If valid, return
* 0 and store the VXLAN identifier in *vidp. Otherwise, return an
* error.
*/
int
validate_vxlan(void *buf, int len, uint32_t *vidp)
{
vxlan_hdr_t *hdr;

if (len < sizeof (vxlan_hdr_t))
return (EINAVL);

hdr = buf;
if ((ntohl(hdr->vxlan_flags) & VXLAN_MAGIC) == 0)
return (EINAVL);

*vidp = ntohl(vxlan->vxlan_id) >> VXLAN_ID_SHIFT;

return (0);
}

STABILITY


The contents of <sys/vxlan.h> are Uncommitted.

SEE ALSO


overlay(7), dladm(8)

Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger L., Sridhar,
T., Bursell, M., and C. Wright, RFC 7348, Virtual eXtensible Local Area
Network (VXLAN): A Framework, for Overlaying Virtualized Layer 2
Networks over Layer 3 Networks, August 2014.

illumos April 10, 2015 illumos

tribblix@gmail.com :: GitHub :: Privacy