Home | History | Annotate | Download | only in linux
      1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
      2 /*
      3  *  SR-IPv6 implementation
      4  *
      5  *  Author:
      6  *  David Lebrun <david.lebrun (at) uclouvain.be>
      7  *
      8  *
      9  *  This program is free software; you can redistribute it and/or
     10  *      modify it under the terms of the GNU General Public License
     11  *      as published by the Free Software Foundation; either version
     12  *      2 of the License, or (at your option) any later version.
     13  */
     14 
     15 #ifndef _LINUX_SEG6_IPTUNNEL_H
     16 #define _LINUX_SEG6_IPTUNNEL_H
     17 
     18 #include <linux/seg6.h>		/* For struct ipv6_sr_hdr. */
     19 
     20 enum {
     21 	SEG6_IPTUNNEL_UNSPEC,
     22 	SEG6_IPTUNNEL_SRH,
     23 	__SEG6_IPTUNNEL_MAX,
     24 };
     25 #define SEG6_IPTUNNEL_MAX (__SEG6_IPTUNNEL_MAX - 1)
     26 
     27 struct seg6_iptunnel_encap {
     28 	int mode;
     29 	struct ipv6_sr_hdr srh[0];
     30 };
     31 
     32 #define SEG6_IPTUN_ENCAP_SIZE(x) ((sizeof(*x)) + (((x)->srh->hdrlen + 1) << 3))
     33 
     34 enum {
     35 	SEG6_IPTUN_MODE_INLINE,
     36 	SEG6_IPTUN_MODE_ENCAP,
     37 	SEG6_IPTUN_MODE_L2ENCAP,
     38 };
     39 
     40 
     41 #endif
     42