ENUM OVS_CT_ATTR(9)
π 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β au16connection tracking zone. that's it, that's the whole thing. lowkey simple but we respect it. πΈOVS_CT_ATTR_MARKβ au32value followed by au32mask. 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_LENvalue followed byOVS_CT_LABELS_LENmask. 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β nestedOVS_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 likeOVS_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 onNFNLGRP_CONNTRACK_UPDATEevents 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 bit1 << IPCT_NEW,1 << IPCT_RELATED, and1 << IPCT_DESTROYmust be set to ones for those events to be received onNFNLGRP_CONNTRACK_NEWandNFNLGRP_CONNTRACK_DESTROYgroups, respectively. the remaining bits control the changes for which an event is delivered on theNFNLGRP_CONNTRACK_UPDATEgroup. 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms