cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

seg6.h (1180B)


      1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
      2/*
      3 *  SR-IPv6 implementation
      4 *
      5 *  Author:
      6 *  David Lebrun <david.lebrun@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 _UAPI_LINUX_SEG6_H
     16#define _UAPI_LINUX_SEG6_H
     17
     18#include <linux/types.h>
     19#include <linux/in6.h>		/* For struct in6_addr. */
     20
     21/*
     22 * SRH
     23 */
     24struct ipv6_sr_hdr {
     25	__u8	nexthdr;
     26	__u8	hdrlen;
     27	__u8	type;
     28	__u8	segments_left;
     29	__u8	first_segment; /* Represents the last_entry field of SRH */
     30	__u8	flags;
     31	__u16	tag;
     32
     33	struct in6_addr segments[0];
     34};
     35
     36#define SR6_FLAG1_PROTECTED	(1 << 6)
     37#define SR6_FLAG1_OAM		(1 << 5)
     38#define SR6_FLAG1_ALERT		(1 << 4)
     39#define SR6_FLAG1_HMAC		(1 << 3)
     40
     41#define SR6_TLV_INGRESS		1
     42#define SR6_TLV_EGRESS		2
     43#define SR6_TLV_OPAQUE		3
     44#define SR6_TLV_PADDING		4
     45#define SR6_TLV_HMAC		5
     46
     47#define sr_has_hmac(srh) ((srh)->flags & SR6_FLAG1_HMAC)
     48
     49struct sr6_tlv {
     50	__u8 type;
     51	__u8 len;
     52	__u8 data[0];
     53};
     54
     55#endif