ENUM OVS_VPORT_TYPE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ enum ovs_vport_type(9) ✨

okay bestie come closer β€” this is a page from the Kernel API Manual and it's literally just a little enum that tells you what kind of vport you're dealing with, for %OVS_VPORT_ATTR_TYPE. that's it. that's the whole vibe. πŸ¦‹


🌸 NAME 🌸

enum ovs_vport_type β€” OVS vport types for %OVS_VPORT_ATTR_TYPE. yeah. that's the assignment and she ate. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

enum ovs_vport_type {
    OVS_VPORT_TYPE_NETDEV ,
    OVS_VPORT_TYPE_INTERNAL ,
    OVS_VPORT_TYPE_GRE ,
    OVS_VPORT_TYPE_VXLAN ,
    OVS_VPORT_TYPE_GENEVE

};

⭐ Constants ⭐

bestie there are five and i'm gonna walk you through each one, no skipping, we don't do that here 🫢

  • OVS_VPORT_TYPE_NETDEV β€” a network device that already exists and got attached as a vport. it's giving "i was here first" main character energy. πŸ‘‘
  • OVS_VPORT_TYPE_INTERNAL β€” a network device that's implemented by the OVS datapath itself. homemade. artisanal. ✨
  • OVS_VPORT_TYPE_GRE β€” legacy GRE tunnel. not supported, and yes we're getting into that below. πŸ’€
  • OVS_VPORT_TYPE_VXLAN β€” legacy VXLAN tunnel. also not supported. see below. πŸ’€
  • OVS_VPORT_TYPE_GENEVE β€” legacy Geneve tunnel. also not supported. yes, see below again. πŸ’€

πŸ’– Description πŸ’–

so here's the tea and it's kind of a big deal: the tunnel vport types are not supported. periodt. 🚫

instead, you create the tunnel device using RTM_NEWLINK with the appropriate IFLA_INFO_KIND (e.g. gre, gretap, vxlan, geneve, or other tunnel types) and then you add it as OVS_VPORT_TYPE_NETDEV. that's the whole move. lowkey elegant ngl. 🌈

and if you want to match and set tunnel parameters on a per-flow basis, the tunnel device should collect metadata. to do that, some tunnel types require an explicit flag β€” like IFLA_VXLAN_COLLECT_METADATA for vxlan β€” while others such as bareudp collect metadata unconditionally.

ngl the original page has a stray `` hanging around after bareudp there and i'm choosing to believe it's a little sparkle, not a typo. we move. πŸ’«

πŸ”₯ SEE ALSO πŸ”₯

go read these next bestie, they're all in the kernel file ./include/uapi/linux/openvswitch.h and they're iconic in their own right:

  • struct ovs_header(9)
  • enum ovs_datapath_attr(9)
  • enum ovs_packet_attr(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)
  • enum ovs_userspace_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 πŸ’œ this little blessing lives in ./include/uapi/linux and it's dated October 2026 β€” a whole vibe from the future, we love her, bye bestie 🧚🌸

πŸ“¦ where this page comes from