STRUCT MR_TABLE(9)
πΈ NAME πΈ
struct mr_table β a multicast routing table, bestie π (and yes, it's a 9 β kernel API manual, section 9, we're in the big leagues now)
β¨ SYNOPSIS β¨
struct mr_table {
struct rcu_work work;
struct list_head list;
possible_net_t net;
struct mr_table_ops ops;
u32 id;
struct sock *mroute_sk;
struct timer_list ipmr_expire_timer;
struct list_head mfc_unres_queue;
struct vif_device vif_table[MAXVIFS];
struct rhltable mfc_hash;
struct list_head mfc_cache_list;
int maxvif;
u32 cache_resolve_queue_len;
bool mroute_do_assert;
bool mroute_do_pim;
bool mroute_do_wrvifwhole;
int mroute_reg_vif_num;
};
(that last brace is indented in the source and honestly? it's got main character energy, we don't touch it π€)
π Members π
okay so here's the whole roster, one by one, no skips, we don't do that here π«Ά
workβ used for table destruction π (yes it literally does the goodbye shift)listβ entry within a list of multicast routing tables β it's on the list, literallynetβ the net where this table belongs πopsβ protocol specific operationsidβ identifier of the tablemroute_skβ socket associated with the tableipmr_expire_timerβ timer for handling unresolved routes β°mfc_unres_queueβ list of unresolved MFC entriesvif_tableβ array containing all possible vifs (yes, all of them,MAXVIFSof them π)mfc_hashβ Hash table of all resolved routes for easy lookup πmfc_cache_listβ list of resolved routes for possible traversal (the source page spells it "resovled" and honestly same, spelling is hard, the routes are resolved though fr fr)maxvifβ Identifier of highest value vif currently in usecache_resolve_queue_lenβ current size of unresolved queuemroute_do_assertβ Whether to inform userspace on wrong ingress πmroute_do_pimβ Whether to receive IGMP PIMv1mroute_reg_vif_numβ PIM-device vif index
heads up bestie: the struct up there also declares mroute_do_wrvifwhole, and the Members list just... doesn't explain it. it's in the struct, it's iconically undocumented, that's the vibe check. π
π¦ SEE ALSO π¦
go read these next, i'm obsessed with them for you:
- Kernel file
./include/linux/mroute_base.h struct vif_device(9)struct mr_mfc(9)struct mr_table_ops(9)
and that's the whole page, no cap β¨ this one comes straight out of ./include/linux and it's dated October 2026 β so like, future-dated, time-traveling kernel lore, 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