blob: c7e9a98209bac6afb4793f4cdc039bbe73057a83 [file] [log] [blame]
Neale Rannsd792d9c2017-10-21 10:53:20 -07001/*
2 * Copyright (c) 2016 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/** \file
17
18 This file defines vpp BIER control-plane API messages which are generally
19 called through a shared memory interface.
20*/
21vl_api_version 1.0.0
22
23/** \brief BIER Table Indentifier
Neale Rannsfa1da152017-12-12 05:32:50 -080024 @param bt_set - The BIER set
25 @param bt_sub_domain - the sud-domain
26 @param bt_bit_header_length - the number of bits in the header length
Neale Rannsd792d9c2017-10-21 10:53:20 -070027*/
28typeonly define bier_table_id
29{
30 u8 bt_set;
31 u8 bt_sub_domain;
32 u8 bt_hdr_len_id;
33};
34
35/** \brief BIER Table Add / del route
36 @param client_index - opaque cookie to identify the sender
37 @param context - sender context, to match reply w/ request
38 @param bt_tbl_id - The BIER table-id the route is added in
Neale Ranns91286372017-12-05 13:24:04 -080039 @param bt_label - The MPLS label for the table (0 or all ones means not set)
40 If the label is not set, then it is assumed that non-MPLS
41 encoding is used.
Neale Rannsd792d9c2017-10-21 10:53:20 -070042 @param bt_is_add - Is this a route add or delete
43*/
44autoreply define bier_table_add_del
45{
46 u32 client_index;
47 u32 context;
48 vl_api_bier_table_id_t bt_tbl_id;
49 u32 bt_label;
50 u8 bt_is_add;
51};
52
53define bier_table_dump
54{
55 u32 client_index;
56 u32 context;
57};
58
59define bier_table_details
60{
61 u32 context;
62 u32 bt_label;
63 vl_api_bier_table_id_t bt_tbl_id;
64};
65
66/** \brief FIB path
67 @param sw_if_index - index of the interface
68 @param weight - The weight, for UCMP
69 @param preference - The preference of the path. lowest preference is prefered
70 @param is_local - local if non-zero, else remote
71 @param is_drop - Drop the packet
Neale Ranns91286372017-12-05 13:24:04 -080072 @param is_udp_encap - The path describes a UDP-o-IP encapsulation.
Neale Rannsd792d9c2017-10-21 10:53:20 -070073 @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2
74 @param next_hop[16] - the next hop address
Neale Ranns91286372017-12-05 13:24:04 -080075 @param next_hop_id - Used when the path resolves via an object that has a unique
76 identifier. e.g. the UDP encap object
Neale Rannsd792d9c2017-10-21 10:53:20 -070077
78 WARNING: this type is replicated, pending cleanup completion
79*/
80typeonly define fib_path3
81{
82 u32 sw_if_index;
83 u32 table_id;
84 u8 weight;
85 u8 preference;
86 u8 is_local;
87 u8 is_drop;
Neale Ranns91286372017-12-05 13:24:04 -080088 u8 is_udp_encap;
Neale Rannsd792d9c2017-10-21 10:53:20 -070089 u8 afi;
90 u8 next_hop[16];
Neale Ranns91286372017-12-05 13:24:04 -080091 u32 next_hop_id;
Neale Rannsd792d9c2017-10-21 10:53:20 -070092 u32 rpf_id;
93 u8 n_labels;
94 u32 label_stack[16];
95};
96
97/** \brief BIER Route Add / del route
98 @param client_index - opaque cookie to identify the sender
99 @param context - sender context, to match reply w/ request
100 @param br_bp - The Bit-position value
101 @param br_tbl_id - The BIER table-id the route is added in
102 @param br_is_add - Is this a route add or delete
103 @param br_is_replace - Are the paths specfied replacing those already
104 present or are they to be combined.
105 @param br_n_paths - The number of paths
106 @param br_paths - The array of paths
107*/
108autoreply define bier_route_add_del
109{
110 u32 client_index;
111 u32 context;
Neale Rannsbe302d72017-12-19 01:34:30 -0800112 u32 br_bp;
Neale Rannsd792d9c2017-10-21 10:53:20 -0700113 u8 br_is_add;
114 u8 br_is_replace;
115 vl_api_bier_table_id_t br_tbl_id;
116 u8 br_n_paths;
117 vl_api_fib_path3_t br_paths[br_n_paths];
118};
119
120define bier_route_dump
121{
122 u32 client_index;
123 u32 context;
124 vl_api_bier_table_id_t br_tbl_id;
125};
126
127define bier_route_details
128{
129 u32 client_index;
130 u32 context;
131 u16 br_bp;
132 vl_api_bier_table_id_t br_tbl_id;
133 u32 br_n_paths;
134 vl_api_fib_path3_t br_paths[br_n_paths];
135};
136
137/** \brief BIER Imposition Add
138 @param client_index - opaque cookie to identify the sender
139 @param context - sender context, to match reply w/ request
140 @param bi_tbl_id - The BIER table-id used to forward post encap
141 @param bi_src - The source Bit-position in the encap.
Neale Rannsd792d9c2017-10-21 10:53:20 -0700142 @param bi_n_bytes - The number of bytes in the following bit-string
Neale Rannsfa1da152017-12-12 05:32:50 -0800143 @param bi_bytes - The bit-string represented as a byte array (MSB first)
Neale Rannsd792d9c2017-10-21 10:53:20 -0700144*/
145define bier_imp_add
146{
147 u32 client_index;
148 u32 context;
149 vl_api_bier_table_id_t bi_tbl_id;
150 u16 bi_src;
Neale Rannsd792d9c2017-10-21 10:53:20 -0700151 u8 bi_n_bytes;
152 u8 bi_bytes[bi_n_bytes];
153};
154
155/** \brief Reply for BIER route add / del request
156 @param context - returned sender context, to match reply w/ request
157 @param retval - return code
158 @param bi_index - The index of the created imposition object.
159*/
160define bier_imp_add_reply
161{
162 u32 context;
163 i32 retval;
164 u32 bi_index;
165};
166
167/** \brief BIER Imposition Del
168 @param client_index - opaque cookie to identify the sender
169 @param context - sender context, to match reply w/ request
170 @param bi_index - The index of the imposition object (as returned
171 from the ADD)
172*/
173autoreply define bier_imp_del
174{
175 u32 client_index;
176 u32 context;
177 u32 bi_index;
178};
179
180define bier_imp_dump
181{
182 u32 client_index;
183 u32 context;
184};
185
186define bier_imp_details
187{
188 u32 client_index;
189 u32 context;
190 vl_api_bier_table_id_t bi_tbl_id;
191 u16 bi_src;
192 u8 bi_n_bytes;
193 u8 bi_bytes[bi_n_bytes];
194};
195
196/** \brief BIER Disposition Table Add / del route
197 @param client_index - opaque cookie to identify the sender
198 @param context - sender context, to match reply w/ request
199 @param bt_tbl_id - The BIER Disposition table-id.
200*/
201autoreply define bier_disp_table_add_del
202{
203 u32 client_index;
204 u32 context;
205 u32 bdt_tbl_id;
206 u8 bdt_is_add;
207};
208
209define bier_disp_table_dump
210{
211 u32 client_index;
212 u32 context;
213};
214
215define bier_disp_table_details
216{
217 u32 context;
218 u32 bdt_tbl_id;
219};
220
221/** \brief BIER Disposition Entry Add / del
222 @param client_index - opaque cookie to identify the sender
223 @param context - sender context, to match reply w/ request
Neale Rannsceb4d052017-12-13 09:13:41 -0800224 @param bde_bp - The Bit-position value for the entry, i.e. the sender's
225 Use 0 for the default (match any source) entry.
Neale Rannsd792d9c2017-10-21 10:53:20 -0700226 @param bde_tbl_id - The BIER dispositiontable-id the route is added in
227 @param bde_next_hop_sw_if_index - the nextop interface
228 @param bde_is_add - Is this a route add or delete
229 @param bde_payload_proto - The payload protocol for which the next-hop
230 is added
Neale Rannsfa1da152017-12-12 05:32:50 -0800231 @param bde_paths - The outgoing paths for the entry
Neale Rannsd792d9c2017-10-21 10:53:20 -0700232*/
233autoreply define bier_disp_entry_add_del
234{
235 u32 client_index;
236 u32 context;
237 u16 bde_bp;
238 u32 bde_tbl_id;
239 u8 bde_is_add;
240 u8 bde_payload_proto;
241 u8 bde_n_paths;
242 vl_api_fib_path3_t bde_paths[bde_n_paths];
243};
244
245define bier_disp_entry_dump
246{
247 u32 client_index;
248 u32 context;
249 u32 bde_tbl_id;
250};
251
252define bier_disp_entry_details
253{
254 u32 context;
255 u16 bde_bp;
256 u32 bde_tbl_id;
257 u8 bde_is_add;
258 u8 bde_payload_proto;
259 u8 bde_n_paths;
260 vl_api_fib_path3_t bde_paths[bde_n_paths];
261};
262
263/*
264 * Local Variables:
265 * eval: (c-set-style "gnu")
266 * End:
267 */