xref: /aosp_15_r20/external/iproute2/include/uapi/linux/seg6_local.h (revision de1e4e894b0c224df933550f0afdecc354b238c4)
1*de1e4e89SAndroid Build Coastguard Worker /*
2*de1e4e89SAndroid Build Coastguard Worker  *  SR-IPv6 implementation
3*de1e4e89SAndroid Build Coastguard Worker  *
4*de1e4e89SAndroid Build Coastguard Worker  *  Author:
5*de1e4e89SAndroid Build Coastguard Worker  *  David Lebrun <[email protected]>
6*de1e4e89SAndroid Build Coastguard Worker  *
7*de1e4e89SAndroid Build Coastguard Worker  *
8*de1e4e89SAndroid Build Coastguard Worker  *  This program is free software; you can redistribute it and/or
9*de1e4e89SAndroid Build Coastguard Worker  *      modify it under the terms of the GNU General Public License
10*de1e4e89SAndroid Build Coastguard Worker  *      as published by the Free Software Foundation; either version
11*de1e4e89SAndroid Build Coastguard Worker  *      2 of the License, or (at your option) any later version.
12*de1e4e89SAndroid Build Coastguard Worker  */
13*de1e4e89SAndroid Build Coastguard Worker 
14*de1e4e89SAndroid Build Coastguard Worker #ifndef _LINUX_SEG6_LOCAL_H
15*de1e4e89SAndroid Build Coastguard Worker #define _LINUX_SEG6_LOCAL_H
16*de1e4e89SAndroid Build Coastguard Worker 
17*de1e4e89SAndroid Build Coastguard Worker #include <linux/seg6.h>
18*de1e4e89SAndroid Build Coastguard Worker 
19*de1e4e89SAndroid Build Coastguard Worker enum {
20*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_UNSPEC,
21*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION,
22*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_SRH,
23*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_TABLE,
24*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_NH4,
25*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_NH6,
26*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_IIF,
27*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_OIF,
28*de1e4e89SAndroid Build Coastguard Worker 	__SEG6_LOCAL_MAX,
29*de1e4e89SAndroid Build Coastguard Worker };
30*de1e4e89SAndroid Build Coastguard Worker #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
31*de1e4e89SAndroid Build Coastguard Worker 
32*de1e4e89SAndroid Build Coastguard Worker enum {
33*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_UNSPEC	= 0,
34*de1e4e89SAndroid Build Coastguard Worker 	/* node segment */
35*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END		= 1,
36*de1e4e89SAndroid Build Coastguard Worker 	/* adjacency segment (IPv6 cross-connect) */
37*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_X		= 2,
38*de1e4e89SAndroid Build Coastguard Worker 	/* lookup of next seg NH in table */
39*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_T		= 3,
40*de1e4e89SAndroid Build Coastguard Worker 	/* decap and L2 cross-connect */
41*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_DX2	= 4,
42*de1e4e89SAndroid Build Coastguard Worker 	/* decap and IPv6 cross-connect */
43*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_DX6	= 5,
44*de1e4e89SAndroid Build Coastguard Worker 	/* decap and IPv4 cross-connect */
45*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_DX4	= 6,
46*de1e4e89SAndroid Build Coastguard Worker 	/* decap and lookup of DA in v6 table */
47*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_DT6	= 7,
48*de1e4e89SAndroid Build Coastguard Worker 	/* decap and lookup of DA in v4 table */
49*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_DT4	= 8,
50*de1e4e89SAndroid Build Coastguard Worker 	/* binding segment with insertion */
51*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_B6	= 9,
52*de1e4e89SAndroid Build Coastguard Worker 	/* binding segment with encapsulation */
53*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_B6_ENCAP	= 10,
54*de1e4e89SAndroid Build Coastguard Worker 	/* binding segment with MPLS encap */
55*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_BM	= 11,
56*de1e4e89SAndroid Build Coastguard Worker 	/* lookup last seg in table */
57*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_S		= 12,
58*de1e4e89SAndroid Build Coastguard Worker 	/* forward to SR-unaware VNF with static proxy */
59*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_AS	= 13,
60*de1e4e89SAndroid Build Coastguard Worker 	/* forward to SR-unaware VNF with masquerading */
61*de1e4e89SAndroid Build Coastguard Worker 	SEG6_LOCAL_ACTION_END_AM	= 14,
62*de1e4e89SAndroid Build Coastguard Worker 
63*de1e4e89SAndroid Build Coastguard Worker 	__SEG6_LOCAL_ACTION_MAX,
64*de1e4e89SAndroid Build Coastguard Worker };
65*de1e4e89SAndroid Build Coastguard Worker 
66*de1e4e89SAndroid Build Coastguard Worker #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
67*de1e4e89SAndroid Build Coastguard Worker 
68*de1e4e89SAndroid Build Coastguard Worker #endif
69