![]() |
|
|||
0001 /* 0002 * SR-IPv6 implementation 0003 * 0004 * Author: 0005 * David Lebrun <david.lebrun@uclouvain.be> 0006 * 0007 * 0008 * This program is free software; you can redistribute it and/or 0009 * modify it under the terms of the GNU General Public License 0010 * as published by the Free Software Foundation; either version 0011 * 2 of the License, or (at your option) any later version. 0012 */ 0013 0014 #ifndef _UAPI_LINUX_SEG6_LOCAL_H 0015 #define _UAPI_LINUX_SEG6_LOCAL_H 0016 0017 #include <linux/seg6.h> 0018 0019 enum { 0020 SEG6_LOCAL_UNSPEC, 0021 SEG6_LOCAL_ACTION, 0022 SEG6_LOCAL_SRH, 0023 SEG6_LOCAL_TABLE, 0024 SEG6_LOCAL_NH4, 0025 SEG6_LOCAL_NH6, 0026 SEG6_LOCAL_IIF, 0027 SEG6_LOCAL_OIF, 0028 SEG6_LOCAL_BPF, 0029 SEG6_LOCAL_VRFTABLE, 0030 SEG6_LOCAL_COUNTERS, 0031 __SEG6_LOCAL_MAX, 0032 }; 0033 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) 0034 0035 enum { 0036 SEG6_LOCAL_ACTION_UNSPEC = 0, 0037 /* node segment */ 0038 SEG6_LOCAL_ACTION_END = 1, 0039 /* adjacency segment (IPv6 cross-connect) */ 0040 SEG6_LOCAL_ACTION_END_X = 2, 0041 /* lookup of next seg NH in table */ 0042 SEG6_LOCAL_ACTION_END_T = 3, 0043 /* decap and L2 cross-connect */ 0044 SEG6_LOCAL_ACTION_END_DX2 = 4, 0045 /* decap and IPv6 cross-connect */ 0046 SEG6_LOCAL_ACTION_END_DX6 = 5, 0047 /* decap and IPv4 cross-connect */ 0048 SEG6_LOCAL_ACTION_END_DX4 = 6, 0049 /* decap and lookup of DA in v6 table */ 0050 SEG6_LOCAL_ACTION_END_DT6 = 7, 0051 /* decap and lookup of DA in v4 table */ 0052 SEG6_LOCAL_ACTION_END_DT4 = 8, 0053 /* binding segment with insertion */ 0054 SEG6_LOCAL_ACTION_END_B6 = 9, 0055 /* binding segment with encapsulation */ 0056 SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, 0057 /* binding segment with MPLS encap */ 0058 SEG6_LOCAL_ACTION_END_BM = 11, 0059 /* lookup last seg in table */ 0060 SEG6_LOCAL_ACTION_END_S = 12, 0061 /* forward to SR-unaware VNF with static proxy */ 0062 SEG6_LOCAL_ACTION_END_AS = 13, 0063 /* forward to SR-unaware VNF with masquerading */ 0064 SEG6_LOCAL_ACTION_END_AM = 14, 0065 /* custom BPF action */ 0066 SEG6_LOCAL_ACTION_END_BPF = 15, 0067 /* decap and lookup of DA in v4 or v6 table */ 0068 SEG6_LOCAL_ACTION_END_DT46 = 16, 0069 0070 __SEG6_LOCAL_ACTION_MAX, 0071 }; 0072 0073 #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1) 0074 0075 enum { 0076 SEG6_LOCAL_BPF_PROG_UNSPEC, 0077 SEG6_LOCAL_BPF_PROG, 0078 SEG6_LOCAL_BPF_PROG_NAME, 0079 __SEG6_LOCAL_BPF_PROG_MAX, 0080 }; 0081 0082 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1) 0083 0084 /* SRv6 Behavior counters are encoded as netlink attributes guaranteeing the 0085 * correct alignment. 0086 * Each counter is identified by a different attribute type (i.e. 0087 * SEG6_LOCAL_CNT_PACKETS). 0088 * 0089 * - SEG6_LOCAL_CNT_PACKETS: identifies a counter that counts the number of 0090 * packets that have been CORRECTLY processed by an SRv6 Behavior instance 0091 * (i.e., packets that generate errors or are dropped are NOT counted). 0092 * 0093 * - SEG6_LOCAL_CNT_BYTES: identifies a counter that counts the total amount 0094 * of traffic in bytes of all packets that have been CORRECTLY processed by 0095 * an SRv6 Behavior instance (i.e., packets that generate errors or are 0096 * dropped are NOT counted). 0097 * 0098 * - SEG6_LOCAL_CNT_ERRORS: identifies a counter that counts the number of 0099 * packets that have NOT been properly processed by an SRv6 Behavior instance 0100 * (i.e., packets that generate errors or are dropped). 0101 */ 0102 enum { 0103 SEG6_LOCAL_CNT_UNSPEC, 0104 SEG6_LOCAL_CNT_PAD, /* pad for 64 bits values */ 0105 SEG6_LOCAL_CNT_PACKETS, 0106 SEG6_LOCAL_CNT_BYTES, 0107 SEG6_LOCAL_CNT_ERRORS, 0108 __SEG6_LOCAL_CNT_MAX, 0109 }; 0110 0111 #define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1) 0112 0113 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |