GENEVE supports all of the capabilities of VXLAN, NVGRE, and STT and was designed to overcome their perceived limitations. Many believe GENEVE could eventually replace these earlier formats entirely.

GENEVE is designed to support network virtualization use cases, where tunnels are typically established to act as a backplane between the virtual switches residing in hypervisors, physical switches, or middleboxes or other appliances. An arbitrary IP network can be used as an underlay although Clos networks - A technique for composing network fabrics larger than a single switch while maintaining non-blocking bandwidth across connection points. ECMP is used to divide traffic across the multiple links and switches that constitute the fabric. Sometimes termed “leaf and spine” or “fat tree” topologies.

Geneve Header:

|Ver|  Opt Len  |O|C|    Rsvd.  |          Protocol Type        |
|        Virtual Network Identifier (VNI)       |    Reserved   |
|                    Variable Length Options                    |


set interfaces geneve gnv0 address <address>

Configure interface <interface> with one or more interface addresses.

address can be specified multiple times as IPv4 and/or IPv6 address, e.g. and/or 2001:db8::1/64


set interfaces geneve gnv0 address
set interfaces geneve gnv0 address
set interfaces geneve gnv0 address 2001:db8::ffff/64
set interfaces geneve gnv0 address 2001:db8:100::ffff/64
set interfaces geneve gnv0 remote <address>
Configure GENEVE tunnel far end/remote tunnel endpoint.
set interfaces geneve gnv0 vni <vni>
VNI is an identifier for a unique element of a virtual network. In many situations this may represent an L2 segment, however, the control plane defines the forwarding semantics of decapsulated packets. The VNI MAY be used as part of ECMP forwarding decisions or MAY be used as a mechanism to distinguish between overlapping address spaces contained in the encapsulated packet when load balancing across CPUs.
set interfaces geneve gnv0 mtu <mtu>
Set interface MTU size.