Logo

The Linux Kernel

7.2.0

Quick search

Contents

  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs
  • Core API
  • Driver APIs
  • Subsystems
    • Core subsystems
    • Human interfaces
    • Networking interfaces
      • Networking
      • NetLabel
      • InfiniBand
      • MHI
    • Storage interfaces
    • Other subsystems
  • Locking
  • Licensing rules
  • Writing documentation
  • Development tools
  • Testing guide
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust
  • Administration
  • Build system
  • Reporting issues
  • Userspace tools
  • Userspace API
  • Firmware
  • Firmware and Devicetree
  • CPU architectures
  • Unsorted documentation
  • Translations

This Page

  • Show Source

Family ovs_packet netlink specification¶

Contents

  • Family ovs_packet netlink specification

    • Summary

    • Operations

      • miss

      • action

      • execute

    • Definitions

      • ovs-header

    • Attribute sets

      • packet

Summary¶

OVS packet execution over generic netlink.

Only OVS_PACKET_CMD_EXECUTE is exposed as a genl operation. OVS_PACKET_CMD_MISS and OVS_PACKET_CMD_ACTION are kernel-to-userspace upcalls sent via genlmsg_unicast() to the vport’s upcall_pid and have no associated genl_ops or multicast group.

Several attributes in the attribute set (userdata, egress-tun-key, len) exist for the upcall path and are not used by the EXECUTE operation. For EXECUTE, packet, key, and actions are mandatory (kernel returns -EINVAL without them).

Operations¶

miss¶

Notify userspace of a flow table miss for a received packet.

value

1

attribute-set

packet

event
attributes

[packet, key, userdata, actions, egress-tun-key, mru, len, hash]

action¶

Notify userspace as requested by an OVS_ACTION_ATTR_USERSPACE action.

value

2

attribute-set

packet

event
attributes

[packet, key, userdata, actions, egress-tun-key, mru, len, hash]

execute¶

Apply actions to a packet.

value

3

attribute-set

packet

do
request
attributes

[packet, key, actions, probe, mru, hash, upcall-pid]

Definitions¶

ovs-header¶

type

struct

members
dp-ifindex (u32)

Attribute sets¶

packet¶

packet (binary)¶

doc

Packet data, from the start of the Ethernet header.

key (binary)¶

doc

Nested OVS_KEY_ATTR_* attributes, extracted flow key. Defined as binary because the key attribute-set belongs to the ovs_flow family spec; cross-spec references are not supported.

actions (binary)¶

doc

Nested OVS_ACTION_ATTR_* attributes. Defined as binary for the same reason as key.

userdata (binary)¶

doc

Opaque userspace cookie from OVS_USERSPACE_ATTR_USERDATA.

egress-tun-key (binary)¶

doc

Nested OVS_TUNNEL_KEY_ATTR_* for output tunnel metadata.

unused1 (unused)¶

unused2 (unused)¶

probe (flag)¶

doc

Packet operation is a feature probe, error logging suppressed.

mru (u16)¶

doc

Maximum received IP fragment size.

len (u32)¶

doc

Packet size before truncation.

hash (u64)¶

doc

Packet hash, low 32 bits are skb hash, upper bits are flags.

upcall-pid (u32)¶

doc

Netlink PID to use for upcalls during EXECUTE processing.

©The kernel development community. | Powered by Sphinx 3.4.3 & Alabaster 0.7.12 | Page source