diff options
Diffstat (limited to 'original/uapi/linux/seg6_iptunnel.h')
-rw-r--r-- | original/uapi/linux/seg6_iptunnel.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/original/uapi/linux/seg6_iptunnel.h b/original/uapi/linux/seg6_iptunnel.h index eb815e0..09fb608 100644 --- a/original/uapi/linux/seg6_iptunnel.h +++ b/original/uapi/linux/seg6_iptunnel.h @@ -37,4 +37,25 @@ enum { SEG6_IPTUN_MODE_L2ENCAP, }; +#ifdef __KERNEL__ + +static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) +{ + int head = 0; + + switch (tuninfo->mode) { + case SEG6_IPTUN_MODE_INLINE: + break; + case SEG6_IPTUN_MODE_ENCAP: + head = sizeof(struct ipv6hdr); + break; + case SEG6_IPTUN_MODE_L2ENCAP: + return 0; + } + + return ((tuninfo->srh->hdrlen + 1) << 3) + head; +} + +#endif + #endif |