brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 13bcbc8 Raw
56 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */2/*3 *  SR-IPv6 implementation4 *5 *  Author:6 *  David Lebrun <david.lebrun@uclouvain.be>7 *8 *9 *  This program is free software; you can redistribute it and/or10 *      modify it under the terms of the GNU General Public License11 *      as published by the Free Software Foundation; either version12 *      2 of the License, or (at your option) any later version.13 */14 15#ifndef _UAPI_LINUX_SEG6_H16#define _UAPI_LINUX_SEG6_H17 18#include <linux/types.h>19#include <linux/in6.h>		/* For struct in6_addr. */20 21/*22 * SRH23 */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[];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		142#define SR6_TLV_EGRESS		243#define SR6_TLV_OPAQUE		344#define SR6_TLV_PADDING		445#define SR6_TLV_HMAC		546 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#endif56