ENUM OVS_CT_ATTR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– enum ovs_ct_attr(9) πŸ’–

okay so you found the enum ovs_ct_attr(9) page in the Kernel API Manual and honestly? iconic. this is literally the vibe check for all the attributes you can throw at the %OVS_ACTION_ATTR_CT action, and i'm gonna walk you through every single one, no cap. ✨


🌸 SYNOPSIS 🌸

like, here's the whole squad of constants, exactly as they appear, bestie:

enum ovs_ct_attr {
    OVS_CT_ATTR_COMMIT ,
    OVS_CT_ATTR_ZONE ,
    OVS_CT_ATTR_MARK ,
    OVS_CT_ATTR_LABELS ,
    OVS_CT_ATTR_HELPER ,
    OVS_CT_ATTR_NAT ,
    OVS_CT_ATTR_FORCE_COMMIT ,
    OVS_CT_ATTR_EVENTMASK ,
    OVS_CT_ATTR_TIMEOUT

};

πŸŽ€ Constants πŸŽ€

bestie, these constants are the whole personality of the page. let's get into it πŸ’…

  • OVS_CT_ATTR_COMMIT β€” if this one's present, it commits the connection to the conntrack table. and why do we care? because it lets future packets for the same connection be identified as 'established' or 'related' β€” slay. also important: the flow key for the current packet will retain the pre-commit connection state. periodt. πŸ‘‘
  • OVS_CT_ATTR_ZONE β€” a u16 connection tracking zone. that's it, that's the whole thing. lowkey simple but we respect it. 🌸
  • OVS_CT_ATTR_MARK β€” a u32 value followed by a u32 mask. for each bit set in the mask, the corresponding bit in the value gets copied to the connection tracking mark field in the connection. it's giving "selective copy energy" ngl. ✨
  • OVS_CT_ATTR_LABELS β€” OVS_CT_LABELS_LEN value followed by OVS_CT_LABELS_LEN mask. same deal as MARK: for each bit set in the mask, the corresponding bit in the value gets copied to the connection tracking label field in the connection. twin behavior fr fr. 🫢
  • OVS_CT_ATTR_HELPER β€” a variable length string defining conntrack ALG. short but mighty. πŸ’œ
  • OVS_CT_ATTR_NAT β€” nested OVS_NAT_ATTR_* for performing L3 network address translation (NAT) on the packet. it's giving "transformation era" and we love that for us. πŸ¦‹
  • OVS_CT_ATTR_FORCE_COMMIT β€” okay so this one is like OVS_CT_ATTR_COMMIT, but with a plot twist: instead of doing nothing if the connection is already committed, it will check that the current packet is in the conntrack entry's original direction. and if the directionality does not match? it will delete the existing conntrack entry and commit a new one. it's giving main character energy, honestly. πŸ”₯
  • OVS_CT_ATTR_EVENTMASK β€” a mask of bits indicating which conntrack event types (enum ip_conntrack_events IPCT_*) should be reported. for any bit set to zero, the corresponding event type is not generated. the default behavior depends on system configuration, but typically all event types are generated β€” hence listening on NFNLGRP_CONNTRACK_UPDATE events may get a lot of events. explicit passing of this attribute allows limiting the updates received to the events of interest. and here's the important part bestie: the bit 1 << IPCT_NEW, 1 << IPCT_RELATED, and 1 << IPCT_DESTROY must be set to ones for those events to be received on NFNLGRP_CONNTRACK_NEW and NFNLGRP_CONNTRACK_DESTROY groups, respectively. the remaining bits control the changes for which an event is delivered on the NFNLGRP_CONNTRACK_UPDATE group. that's a lot of words but it ate and left no crumbs. πŸ˜­πŸ’…
  • OVS_CT_ATTR_TIMEOUT β€” a variable length string defining conntrack timeout. cute, concise, done. πŸŽ€

🌈 SEE ALSO 🌈

bestie if you're obsessed with this page (and why wouldn't you be) you should literally go read these next, they're all in the Kernel file ./include/uapi/linux/openvswitch.h and they're all iconic in their own way:

  • 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)
  • 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_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 and you absolutely understood it, i'm so proud of you πŸ₯ΉπŸ’–

this little fairy godmother moment was brought to you by ./include/uapi/linux, dated October 2026 β€” catch you on the next manpage, bestie! πŸ§šβ€β™€οΈβ­πŸŒΈ
πŸ“¦ where this page comes from