blob: bc22d61a288e291b27eb0f42d17e4c446007031c [file] [log] [blame]
Dave Barach0d056e52017-09-28 15:11:16 -04001/* Hey Emacs use -*- mode: C -*- */
Pavel Kotucek0f971d82017-01-03 10:48:54 +01002/*
3 * Copyright (c) 2015-2016 Cisco and/or its affiliates.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Pablo Camarillofb380952016-12-07 18:34:18 +010016
Ole Troan9d420872017-10-12 13:06:35 +020017option version = "1.0.1";
Dave Barach0d056e52017-09-28 15:11:16 -040018
Pablo Camarillofb380952016-12-07 18:34:18 +010019/** \brief IPv6 SR LocalSID add/del request
Pavel Kotucek0f971d82017-01-03 10:48:54 +010020 @param client_index - opaque cookie to identify the sender
21 @param context - sender context, to match reply w/ request
Pablo Camarillofb380952016-12-07 18:34:18 +010022 @param is_del Boolean of whether its a delete instruction
23 @param localsid_addr IPv6 address of the localsid
24 @param end_psp Boolean of whether decapsulation is allowed in this function
25 @param behavior Type of behavior (function) for this localsid
Dave Barach0d056e52017-09-28 15:11:16 -040026 @param sw_if_index Only for L2/L3 xconnect. OIF. In VRF variant the
27 fib_table.
Pablo Camarillofb380952016-12-07 18:34:18 +010028 @param vlan_index Only for L2 xconnect. Outgoing VLAN tag.
29 @param fib_table FIB table in which we should install the localsid entry
30 @param nh_addr Next Hop IPv4/IPv6 address. Only for L2/L3 xconnect.
Pavel Kotucek0f971d82017-01-03 10:48:54 +010031*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040032autoreply define sr_localsid_add_del
Pavel Kotucek0f971d82017-01-03 10:48:54 +010033{
34 u32 client_index;
35 u32 context;
Pablo Camarillofb380952016-12-07 18:34:18 +010036 u8 is_del;
37 u8 localsid_addr[16];
38 u8 end_psp;
39 u8 behavior;
40 u32 sw_if_index;
41 u32 vlan_index;
42 u32 fib_table;
43 u8 nh_addr[16];
44};
45
Pablo Camarillofb380952016-12-07 18:34:18 +010046/** \brief IPv6 SR policy add
47 @param client_index - opaque cookie to identify the sender
48 @param context - sender context, to match reply w/ request
49 @param bsid is the bindingSID of the SR Policy
50 @param weight is the weight of the sid list. optional.
51 @param is_encap is the behavior of the SR policy. (0.SRH insert // 1.Encapsulation)
52 @param type is the type of the SR policy. (0.Default // 1.Spray)
53 @param fib_table is the VRF where to install the FIB entry for the BSID
54 @param segments is a vector of IPv6 address composing the segment list
55*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040056autoreply define sr_policy_add
Pablo Camarillofb380952016-12-07 18:34:18 +010057{
58 u32 client_index;
59 u32 context;
60 u8 bsid_addr[16];
61 u32 weight;
62 u8 is_encap;
63 u8 type;
64 u32 fib_table;
Pavel Kotucek0f971d82017-01-03 10:48:54 +010065 u8 n_segments;
Pablo Camarillofb380952016-12-07 18:34:18 +010066 u8 segments[0];
Pavel Kotucek0f971d82017-01-03 10:48:54 +010067};
68
Pablo Camarillofb380952016-12-07 18:34:18 +010069/** \brief IPv6 SR policy modification
Pavel Kotucek0f971d82017-01-03 10:48:54 +010070 @param client_index - opaque cookie to identify the sender
71 @param context - sender context, to match reply w/ request
Pablo Camarillofb380952016-12-07 18:34:18 +010072 @param bsid is the bindingSID of the SR Policy
73 @param sr_policy_index is the index of the SR policy
74 @param fib_table is the VRF where to install the FIB entry for the BSID
75 @param operation is the operation to perform (among the top ones)
76 @param segments is a vector of IPv6 address composing the segment list
77 @param sl_index is the index of the Segment List to modify/delete
78 @param weight is the weight of the sid list. optional.
79 @param is_encap Mode. Encapsulation or SRH insertion.
Pavel Kotucek0f971d82017-01-03 10:48:54 +010080*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040081autoreply define sr_policy_mod
Pavel Kotucek0f971d82017-01-03 10:48:54 +010082{
83 u32 client_index;
84 u32 context;
Pablo Camarillofb380952016-12-07 18:34:18 +010085 u8 bsid_addr[16];
86 u32 sr_policy_index;
87 u32 fib_table;
88 u8 operation;
89 u32 sl_index;
90 u32 weight;
91 u8 n_segments;
92 u8 segments[0];
Pavel Kotucek0f971d82017-01-03 10:48:54 +010093};
94
Pablo Camarillofb380952016-12-07 18:34:18 +010095/** \brief IPv6 SR policy deletion
96 @param client_index - opaque cookie to identify the sender
97 @param context - sender context, to match reply w/ request
98 @param bsid is the bindingSID of the SR Policy
99 @param index is the index of the SR policy
100*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400101autoreply define sr_policy_del
Pablo Camarillofb380952016-12-07 18:34:18 +0100102{
103 u32 client_index;
104 u32 context;
105 u8 bsid_addr[16];
106 u32 sr_policy_index;
107};
108
Pablo Camarillo1a5e3012017-11-16 16:02:50 +0100109/** \brief IPv6 SR Set SRv6 encapsulation source
110 @param client_index - opaque cookie to identify the sender
111 @param context - sender context, to match reply w/ request
112 @param bsid is the bindingSID of the SR Policy
113 @param index is the index of the SR policy
114*/
115autoreply define sr_set_encap_source
116{
117 u32 client_index;
118 u32 context;
119 u8 encaps_source[16];
120};
121
Pablo Camarillofb380952016-12-07 18:34:18 +0100122/** \brief IPv6 SR steering add/del
123 @param client_index - opaque cookie to identify the sender
124 @param context - sender context, to match reply w/ request
125 @param is_del
126 @param bsid is the bindingSID of the SR Policy (alt to sr_policy_index)
127 @param sr_policy is the index of the SR Policy (alt to bsid)
128 @param table_id is the VRF where to install the FIB entry for the BSID
129 @param prefix is the IPv4/v6 address for L3 traffic type
130 @param mask_width is the mask for L3 traffic type
131 @param sw_if_index is the incoming interface for L2 traffic
132 @param traffic_type describes the type of traffic
133*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400134autoreply define sr_steering_add_del
Pablo Camarillofb380952016-12-07 18:34:18 +0100135{
136 u32 client_index;
137 u32 context;
138 u8 is_del;
139 u8 bsid_addr[16];
140 u32 sr_policy_index;
141 u32 table_id;
142 u8 prefix_addr[16];
143 u32 mask_width;
144 u32 sw_if_index;
145 u8 traffic_type;
146};
147
Pablo Camarillofb380952016-12-07 18:34:18 +0100148/** \brief Dump the list of SR LocalSIDs
149 @param client_index - opaque cookie to identify the sender
150 @param context - sender context, to match reply w/ request
151*/
Pablo Camarillo1a5e3012017-11-16 16:02:50 +0100152define sr_localsids_dump
Pablo Camarillofb380952016-12-07 18:34:18 +0100153{
154 u32 client_index;
155 u32 context;
Pablo Camarillo1a5e3012017-11-16 16:02:50 +0100156};
Pablo Camarillofb380952016-12-07 18:34:18 +0100157
Pablo Camarillo1a5e3012017-11-16 16:02:50 +0100158define sr_localsids_details
Pablo Camarillofb380952016-12-07 18:34:18 +0100159{
160 u32 context;
Pablo Camarillo1a5e3012017-11-16 16:02:50 +0100161 u8 address[16];
Pablo Camarillofb380952016-12-07 18:34:18 +0100162 u8 end_psp;
Pablo Camarillo1a5e3012017-11-16 16:02:50 +0100163 u16 behavior;
Pablo Camarillofb380952016-12-07 18:34:18 +0100164 u32 fib_table;
Pablo Camarillo1a5e3012017-11-16 16:02:50 +0100165 u8 xconnect_next_hop[16];
166 u32 xconnect_iface_or_vrf_table;
167};
Pablo Camarillofb380952016-12-07 18:34:18 +0100168
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100169/*
Dave Barach0d056e52017-09-28 15:11:16 -0400170 * fd.io coding-style-patch-verification: OFF
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100171 * Local Variables:
172 * eval: (c-set-style "gnu")
173 * End:
174 */