vti6_siocdevprivate(9)
π vti6_siocdevprivate(9) β the kernel API manual, but make it make sense π
okay so bestie, welcome to vti6_siocdevprivate(9) from the Kernel API Manual β¨ this is the little function that lets userspace boss around your vti6 tunnels, and honestly? she's giving gatekeeper energy π
πΈ NAME πΈ
vti6_siocdevprivate β configure vti6 tunnels from userspace π
β¨ SYNOPSIS β¨
int vti6_siocdevprivate (struct net_device *dev , struct ifreq *ifr ,
void __user *data , int cmd );
π«Ά ARGUMENTS π«Ά
devβ the virtual device that's associated with the tunnel πifrβ literally unused, she's just here for the vibes πdataβ the parameters passed in from userspace πcmdβ the command you want performed π
π¦ DESCRIPTION π¦
so vti6_siocdevprivate is the function you use for managing vti6 tunnels from userspace. no cap, that's her whole job π
the possible commands are these, and yes you need to know all of them:
SIOCGETTUNNELβ get tunnel parameters for deviceSIOCADDTUNNELβ add tunnel matching given tunnel parametersSIOCCHGTUNNELβ change tunnel parameters to those givenSIOCDELTUNNELβ delete tunnel
and here's a cute detail: the fallback device "ip6_vti0", created during module initialization, can be used for creating other tunnel devices π iconic behaviour tbh
π₯ RETURN π₯
0on success β¨ we love a clean win-EFAULTif unable to copy data to or from userspace π-EPERMif current process hasn'tCAP_NET_ADMINset π (no permission, no tunnel, sorry bestie)-EINVALif passed tunnel parameters are invalid π-EEXISTif changing a tunnel's parameters would cause a conflict π¬-ENODEVif attempting to change or delete a nonexisting device π»
fr fr, that-EPERMone will get you if you forgotCAP_NET_ADMINβ check it before you start blaming the tunnel π
π SEE ALSO π
Kernel file ./net/ipv6/ip6_vti.c β go read the source, she ate π
vti6_tnl_lookup(9)vti6_tnl_bucket(9)vti6_locate(9)vti6_dev_uninit(9)vti6_addr_conflict(9)vti6_xmit(9)vti6_tnl_change(9)vti6_dev_setup(9)vti6_dev_init_gen(9)vti6_dev_init(9)vti6_fb_tnl_dev_init(9)vti6_tunnel_init(9)vti6_tunnel_cleanup(9)
and that's the whole page, bestie π this one came from ./net/ipv6, dated October 2026, and it lives under the name vti6_siocdevprivate(9) β go forth and configure those tunnels, mwah ππ
π¦ 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