ip6_tnl_xmit(9)
π ip6_tnl_xmit(9) π
hey bestie π«Ά welcome to the Kernel API Manual page for ip6_tnl_xmit β yes, the one and only. grab a strawberry π and letβs get into it.
β¨ NAME β¨
ip6_tnl_xmit β encapsulate packet and send. literally does what it says, no cap.
πΈ SYNOPSIS πΈ
int ip6_tnl_xmit (struct sk_buff *skb , struct net_device *dev , __u8
dsfield , struct flowi6 *fl6 , int encap_limit , __u32 *pmtu , __u8
proto );
π¦ ARGUMENTS π¦
skbβ the outgoing socket buffer, aka the packet bestie being sent out.devβ the outgoing tunnel device.dsfieldβ dscp code for outer header.fl6β flow of tunneled packet.encap_limitβ encapsulation limit.pmtuβ Path MTU is stored if packet is too big.protoβ next header value.
π DESCRIPTION π
okay so this function builds a new header and does some sanity checks on the packet before sending it. thatβs the whole routine: make the header, vibe-check the packet, send. iconic behavior honestly π
π₯ RETURN π₯
0β success, we love to see it.-1β fail.-EMSGSIZEβ message too big. return mtu in this case.
ngl, -EMSGSIZE is giving βpacket too chunky for this pathβ π and the mtu gets returned in this case.
π SEE ALSO π
Kernel file: ./net/ipv6/ip6_tunnel.c
ip6_tnl_lookup(9)ip6_tnl_bucket(9)ip6_tnl_link(9)ip6_tnl_unlink(9)ip6_tnl_create(9)ip6_tnl_locate(9)ip6_tnl_dev_uninit(9)ip6_tnl_parse_tlv_enc_lim(9)ip6_tnl_addr_conflict(9)ip6_tnl_change(9)ip6_tnl_siocdevprivate(9)ip6_tnl_change_mtu(9)ip6_tnl_dev_setup(9)ip6_tnl_dev_init_gen(9)ip6_tnl_dev_init(9)ip6_fb_tnl_dev_init(9)ip6_tunnel_init(9)ip6_tunnel_cleanup(9)
thatβs the page, bestie π«Ά this lil manual comes from ./net/ipv6 (source/version), dated October 2026, and itβs the ip6_tnl_xmit(9) page from the Kernel API Manual. periodt. π
π¦ 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