iptfs_drop_timer(9)
β¨ iptfs_drop_timer β a kernel API manual, but make it make sense β¨
okay so bestie, this one's from the Kernel API Manual, section 9 (that's the kernel-functions girlies π ). Sit down, hydrate, and let's get into it π«Ά
π NAME π
iptfs_drop_timer β literally just handles drop timer expiry. That's the whole job. She's the one who shows up when the timer goes off β°
πΈ SYNOPSIS πΈ
enum hrtimer_restart iptfs_drop_timer (struct hrtimer *me );
yes it returns an enum hrtimer_restart, and yes the parameter is just called me. main character energy fr fr π
π ARGUMENTS π
meβ the timer. that's it. that's the argument. she's just out here being a timer π°οΈ
π¦ DESCRIPTION π¦
So this is similar to our input function, iykyk β same vibe, different circumstances β¨
The drop timer gets set in two situations, and you need to know both:
- when we start an in progress reassembly, and
- when we save a future packet in the window saved array
NOTE π packets in the save window are always newer WRT drop times as they get further in the future. Like, for real, check it:
if slots (S0, S1, ... Sn) and Dn is the drop time for slot Sn, then D(n-1) <= D(n).
So the drop times only ever go up as you walk the slots β no weird time-travel nonsense, ever π§
Which means... regardless of why the timer is firing, we can always discard any inprogress fragment. Always. And here's the reasoning, because she's not just being chaotic:
- either it's the reassembly timer, or
- slot 0 is going to be dropped, because
S0must have the most recent drop time, and slot 0 holds the continuation fragment of the in progress packet
Basically slot 0 is the one holding the bag, so she's packing up either way π
Returns HRTIMER_NORESTART. No restart, bestie. She does her thing and she's out π
π SEE ALSO π
okay this list is LONG, so buckle up. Kernel file ./net/xfrm/xfrm_iptfs.c, plus the whole friend group:
IPTFS_DEFAULT_DROP_TIME_USECS(9)IPTFS_DEFAULT_REORDER_WINDOW(9)IPTFS_DEFAULT_INIT_DELAY_USECS(9)IPTFS_DEFAULT_MAX_QUEUE_SIZE(9)struct xfrm_iptfs_config(9)struct xfrm_iptfs_data(9)iptfs_alloc_skb(9)iptfs_skb_head_to_frag(9)struct iptfs_skb_frag_walk(9)iptfs_skb_prepare_frag_walk(9)iptfs_skb_can_add_frags(9)iptfs_skb_add_frags(9)iptfs_pskb_add_frags(9)iptfs_pskb_extract_seq(9)iptfs_input_save_runt(9)__iptfs_iphlen(9)__iptfs_iplen(9)iptfs_complete_inner_skb(9)iptfs_reassem_abort(9)iptfs_reassem_done(9)iptfs_reassem_cont(9)iptfs_input_ordered(9)iptfs_input(9)iptfs_enqueue(9)iptfs_copy_create_frag(9)iptfs_copy_create_frags(9)iptfs_first_skb(9)iptfs_encap_add_ipv4(9)iptfs_encap_add_ipv6(9)iptfs_prepare_output(9)__iptfs_get_inner_mtu(9)iptfs_get_inner_mtu(9)iptfs_user_init(9)
and that's the page, babes π this one lives in ./net/xfrm and is dated October 2026 β yes, the future, we're ahead of schedule π mwah, go read your man pages π
π¦ 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