ovs_vport_fi...pcall_portid(9)
π ovs_vport_fi...pcall_portid β the kernel API manual, but make it make sense
okay so bestie, quick housekeeping: this whole glowing page lives in section 9 of the Kernel API Manual, and the vibe is ovs_vport_fi...pcall_portid(9) in case you were wondering what to type into man π
β¨ NAME β¨
ovs_vport_find_upcall_portid β literally just finds the upcall portid so it can send the upcall. that's it. that's the whole job. π
πΈ SYNOPSIS πΈ
u32 ovs_vport_find_upcall_portid (const struct vport *vport , struct
sk_buff *skb );
yes it returns a u32, yes it takes two args, no we are not scared of it π«Ά
π¦ ARGUMENTS π¦
vportβ the vport that the missed packet came in on. like, the one that received it. that's your starting point, bestie.skbβ the skb that the missed packet was received in. yes,skb. the packet itself. you already knew that π
π DESCRIPTION π
so what actually happens? it uses skb_get_hash to pick which upcall portid gets the upcall. that's the selection process, that's the whole algorithm, no cap β¨
then it returns the portid of the target socket. main character return value energy.
π¨ real talk though: this must be called with rcu_read_lock. not "should", not "ideally", must. lock it before you call it or you're gonna have a bad time π
π SEE ALSO π
the kernel file is ./net/openvswitch/vport.c and honestly the whole friend group shows up here β go say hi:
ovs_vport_init(9)ovs_vport_exit(9)ovs_vport_locate(9)ovs_vport_alloc(9)ovs_vport_free(9)ovs_vport_add(9)ovs_vport_del(9)ovs_vport_get_stats(9)ovs_vport_get_upcall_stats(9)ovs_vport_set_upcall_portids(9)ovs_vport_get_upcall_portids(9)ovs_vport_receive(9)
okay that's the page!! this cutie is filed under ./net/openvswitch, stamped October 2026, and answers to the name ovs_vport_fi...pcall_portid(9) β go forth, lock your rcu, and slay πππ¦βπ₯
π¦ 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