Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _UAPI_LINUX_SEG6_H
     20 #define _UAPI_LINUX_SEG6_H
     21 struct ipv6_sr_hdr {
     22   __u8 nexthdr;
     23   __u8 hdrlen;
     24   __u8 type;
     25   __u8 segments_left;
     26   __u8 first_segment;
     27   __u8 flags;
     28   __u16 reserved;
     29   struct in6_addr segments[0];
     30 };
     31 #define SR6_FLAG1_PROTECTED (1 << 6)
     32 #define SR6_FLAG1_OAM (1 << 5)
     33 #define SR6_FLAG1_ALERT (1 << 4)
     34 #define SR6_FLAG1_HMAC (1 << 3)
     35 #define SR6_TLV_INGRESS 1
     36 #define SR6_TLV_EGRESS 2
     37 #define SR6_TLV_OPAQUE 3
     38 #define SR6_TLV_PADDING 4
     39 #define SR6_TLV_HMAC 5
     40 #define sr_has_hmac(srh) ((srh)->flags & SR6_FLAG1_HMAC)
     41 struct sr6_tlv {
     42   __u8 type;
     43   __u8 len;
     44   __u8 data[0];
     45 };
     46 #endif
     47