~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/seg6_local.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  *  SR-IPv6 implementation
  3  *
  4  *  Author:
  5  *  David Lebrun <david.lebrun@uclouvain.be>
  6  *
  7  *
  8  *  This program is free software; you can redistribute it and/or
  9  *      modify it under the terms of the GNU General Public License
 10  *      as published by the Free Software Foundation; either version
 11  *      2 of the License, or (at your option) any later version.
 12  */
 13 
 14 #ifndef _UAPI_LINUX_SEG6_LOCAL_H
 15 #define _UAPI_LINUX_SEG6_LOCAL_H
 16 
 17 #include <linux/seg6.h>
 18 
 19 enum {
 20         SEG6_LOCAL_UNSPEC,
 21         SEG6_LOCAL_ACTION,
 22         SEG6_LOCAL_SRH,
 23         SEG6_LOCAL_TABLE,
 24         SEG6_LOCAL_NH4,
 25         SEG6_LOCAL_NH6,
 26         SEG6_LOCAL_IIF,
 27         SEG6_LOCAL_OIF,
 28         SEG6_LOCAL_BPF,
 29         SEG6_LOCAL_VRFTABLE,
 30         SEG6_LOCAL_COUNTERS,
 31         SEG6_LOCAL_FLAVORS,
 32         __SEG6_LOCAL_MAX,
 33 };
 34 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
 35 
 36 enum {
 37         SEG6_LOCAL_ACTION_UNSPEC        = 0,
 38         /* node segment */
 39         SEG6_LOCAL_ACTION_END           = 1,
 40         /* adjacency segment (IPv6 cross-connect) */
 41         SEG6_LOCAL_ACTION_END_X         = 2,
 42         /* lookup of next seg NH in table */
 43         SEG6_LOCAL_ACTION_END_T         = 3,
 44         /* decap and L2 cross-connect */
 45         SEG6_LOCAL_ACTION_END_DX2       = 4,
 46         /* decap and IPv6 cross-connect */
 47         SEG6_LOCAL_ACTION_END_DX6       = 5,
 48         /* decap and IPv4 cross-connect */
 49         SEG6_LOCAL_ACTION_END_DX4       = 6,
 50         /* decap and lookup of DA in v6 table */
 51         SEG6_LOCAL_ACTION_END_DT6       = 7,
 52         /* decap and lookup of DA in v4 table */
 53         SEG6_LOCAL_ACTION_END_DT4       = 8,
 54         /* binding segment with insertion */
 55         SEG6_LOCAL_ACTION_END_B6        = 9,
 56         /* binding segment with encapsulation */
 57         SEG6_LOCAL_ACTION_END_B6_ENCAP  = 10,
 58         /* binding segment with MPLS encap */
 59         SEG6_LOCAL_ACTION_END_BM        = 11,
 60         /* lookup last seg in table */
 61         SEG6_LOCAL_ACTION_END_S         = 12,
 62         /* forward to SR-unaware VNF with static proxy */
 63         SEG6_LOCAL_ACTION_END_AS        = 13,
 64         /* forward to SR-unaware VNF with masquerading */
 65         SEG6_LOCAL_ACTION_END_AM        = 14,
 66         /* custom BPF action */
 67         SEG6_LOCAL_ACTION_END_BPF       = 15,
 68         /* decap and lookup of DA in v4 or v6 table */
 69         SEG6_LOCAL_ACTION_END_DT46      = 16,
 70 
 71         __SEG6_LOCAL_ACTION_MAX,
 72 };
 73 
 74 #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
 75 
 76 enum {
 77         SEG6_LOCAL_BPF_PROG_UNSPEC,
 78         SEG6_LOCAL_BPF_PROG,
 79         SEG6_LOCAL_BPF_PROG_NAME,
 80         __SEG6_LOCAL_BPF_PROG_MAX,
 81 };
 82 
 83 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1)
 84 
 85 /* SRv6 Behavior counters are encoded as netlink attributes guaranteeing the
 86  * correct alignment.
 87  * Each counter is identified by a different attribute type (i.e.
 88  * SEG6_LOCAL_CNT_PACKETS).
 89  *
 90  * - SEG6_LOCAL_CNT_PACKETS: identifies a counter that counts the number of
 91  *   packets that have been CORRECTLY processed by an SRv6 Behavior instance
 92  *   (i.e., packets that generate errors or are dropped are NOT counted).
 93  *
 94  * - SEG6_LOCAL_CNT_BYTES: identifies a counter that counts the total amount
 95  *   of traffic in bytes of all packets that have been CORRECTLY processed by
 96  *   an SRv6 Behavior instance (i.e., packets that generate errors or are
 97  *   dropped are NOT counted).
 98  *
 99  * - SEG6_LOCAL_CNT_ERRORS: identifies a counter that counts the number of
100  *   packets that have NOT been properly processed by an SRv6 Behavior instance
101  *   (i.e., packets that generate errors or are dropped).
102  */
103 enum {
104         SEG6_LOCAL_CNT_UNSPEC,
105         SEG6_LOCAL_CNT_PAD,             /* pad for 64 bits values */
106         SEG6_LOCAL_CNT_PACKETS,
107         SEG6_LOCAL_CNT_BYTES,
108         SEG6_LOCAL_CNT_ERRORS,
109         __SEG6_LOCAL_CNT_MAX,
110 };
111 
112 #define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
113 
114 /* SRv6 End* Flavor attributes */
115 enum {
116         SEG6_LOCAL_FLV_UNSPEC,
117         SEG6_LOCAL_FLV_OPERATION,
118         SEG6_LOCAL_FLV_LCBLOCK_BITS,
119         SEG6_LOCAL_FLV_LCNODE_FN_BITS,
120         __SEG6_LOCAL_FLV_MAX,
121 };
122 
123 #define SEG6_LOCAL_FLV_MAX (__SEG6_LOCAL_FLV_MAX - 1)
124 
125 /* Designed flavor operations for SRv6 End* Behavior */
126 enum {
127         SEG6_LOCAL_FLV_OP_UNSPEC,
128         SEG6_LOCAL_FLV_OP_PSP,
129         SEG6_LOCAL_FLV_OP_USP,
130         SEG6_LOCAL_FLV_OP_USD,
131         SEG6_LOCAL_FLV_OP_NEXT_CSID,
132         __SEG6_LOCAL_FLV_OP_MAX
133 };
134 
135 #define SEG6_LOCAL_FLV_OP_MAX (__SEG6_LOCAL_FLV_OP_MAX - 1)
136 
137 #endif
138 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php