ENUM OVS_USERSPACE_ATTR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« enum ovs_userspace_attr β€” Kernel API Manual, bestie edition πŸ’«

Okay so real talk, this page is literally about enum ovs_userspace_attr(9) β€” the attribute squad for the %OVS_ACTION_ATTR_USERSPACE action. If you're in the Open vSwitch kernel code, this is your girl. Let's go 🫢


✨ NAME ✨

enum ovs_userspace_attr β€” the attributes for the %OVS_ACTION_ATTR_USERSPACE action. Periodt. That's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

enum ovs_userspace_attr {
    OVS_USERSPACE_ATTR_PID ,
    OVS_USERSPACE_ATTR_USERDATA ,
    OVS_USERSPACE_ATTR_EGRESS_TUN_PORT ,
    OVS_USERSPACE_ATTR_ACTIONS

};

Look at her. Four constants, no notes. Iconic πŸ’…


πŸŽ€ Constants πŸŽ€

  • OVS_USERSPACE_ATTR_PID β€” a u32 Netlink PID, and it's the one telling the kernel where to send the OVS_PACKET_CMD_ACTION message. This one is Required, bestie. Like, non-negotiable. You cannot skip it, it's not optional, do not pass go πŸ™ˆ
  • OVS_USERSPACE_ATTR_USERDATA β€” if present, its variable-length argument gets copied over to the OVS_PACKET_CMD_ACTION message as OVS_PACKET_ATTR_USERDATA. So basically it tags along for the ride and rides shotgun 🌸
  • OVS_USERSPACE_ATTR_EGRESS_TUN_PORT β€” if present, a u32 output port that you use to get tunnel info. That's it, that's the whole thing. It's giving "small but important" ⭐
  • OVS_USERSPACE_ATTR_ACTIONS β€” if present, send actions with the upcall. Short, sweet, sends actions. Slay πŸ”₯
Heads up: OVS_USERSPACE_ATTR_PID is the only Required one here β€” the other three are all "if present" girls, so they only show up when they feel like it πŸ’–

πŸ‘‘ SEE ALSO πŸ‘‘

Go read these next, iykyk:

  • Kernel file ./include/uapi/linux/openvswitch.h
  • struct ovs_header(9)
  • enum ovs_datapath_attr(9)
  • enum ovs_packet_attr(9)
  • enum ovs_vport_type(9)
  • enum ovs_vport_attr(9)
  • enum ovs_vport_upcall_attr(9)
  • enum ovs_frag_type(9)
  • enum ovs_flow_attr(9)
  • enum ovs_sample_attr(9)
  • struct ovs_action_push_mpls(9)
  • struct ovs_action_add_mpls(9)
  • struct ovs_action_push_vlan(9)
  • enum ovs_ct_attr(9)
  • enum ovs_nat_attr(9)
  • struct ovs_action_push_eth(9)
  • enum ovs_check_pkt_len_attr(9)
  • enum ovs_psample_attr(9)
  • enum ovs_action_attr(9)

Okay that's the whole page, mwah πŸ’‹ Coming at you straight from ./include/uapi/linux, stamped October 2026, and if you need the version it's right there in the Kernel API Manual β€” go off, you've got this, bestie πŸ§šπŸ’œ

πŸ“¦ where this page comes from