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

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

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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 ] ~

Diff markup

Differences between /include/uapi/linux/seg6_local.h (Architecture ppc) and /include/uapi/linux/seg6_local.h (Architecture sparc64)


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