# Geneve

Geneve packet parser/serializer

class os_ken.lib.packet.geneve.Option(option_class=None, type_=None, length=0)

  Tunnel Options

class os_ken.lib.packet.geneve.OptionDataUnknown(buf, option_class=None, type_=None, length=0)

  Unknown Option Class and Type specific Option

class os_ken.lib.packet.geneve.geneve(version=0, opt_len=0, flags=0, protocol=25944, vni=None, options=None)

  Geneve (RFC draft-ietf-nvo3-geneve-03) header encoder/decoder class.

  An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.

  Attribute | Description
  --- | ---
  version | Version.
  opt_len | The length of the options fields.
  flags | Flag field for OAM packet and Critical options present.
  protocol | Protocol Type field. The Protocol Type is defined as "ETHER TYPES".
  vni | Identifier for unique element of virtual network.
  options | List of `Option*` instance.

  classmethod parser(buf)

    Decode a protocol header.

    This method is used only when decoding a packet.

    Decode a protocol header at offset 0 in bytearray buf. Returns the following three objects.

    - An object to describe the decoded header.

    - A packet_base.PacketBase subclass appropriate for the rest of the packet. None when the rest of the packet should be considered as raw payload.

    - The rest of packet.

  serialize(payload=None, prev=None)

    Encode a protocol header.

    This method is used only when encoding a packet.

    Encode a protocol header. Returns a bytearray which contains the header.

    payload is the rest of the packet which will immediately follow this header.

    prev is a packet_base.PacketBase subclass for the outer protocol header. prev is None if the current header is the outer-most. For example, prev is ipv4 or ipv6 for tcp.serialize.

this page last updated: 2026-04-10 03:11:34

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug