blob: 33561524cf8a36445ed93cd36588dd345c5417ce [file] [log] [blame]
Neale Ranns097fa662018-05-01 05:17:55 -07001/* Hey Emacs use -*- mode: C -*- */
Neale Rannsd792d9c2017-10-21 10:53:20 -07002/*
3 * Copyright (c) 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 */
16
17/** \file
18
19 This file defines vpp BIER control-plane API messages which are generally
20 called through a shared memory interface.
21*/
Jakub Grajciarf1f5a8a2019-04-04 10:20:21 +020022option version = "1.2.1";
Ole Troan9d420872017-10-12 13:06:35 +020023import "vnet/fib/fib_types.api";
Neale Rannsd792d9c2017-10-21 10:53:20 -070024
Paul Vinciguerrae6eefb62019-05-13 15:56:41 -040025/** \brief BIER Table Identifier
Neale Rannsfa1da152017-12-12 05:32:50 -080026 @param bt_set - The BIER set
27 @param bt_sub_domain - the sud-domain
28 @param bt_bit_header_length - the number of bits in the header length
Neale Rannsd792d9c2017-10-21 10:53:20 -070029*/
Paul Vinciguerrae7174822019-08-07 00:05:59 -040030typedef bier_table_id
Neale Rannsd792d9c2017-10-21 10:53:20 -070031{
32 u8 bt_set;
33 u8 bt_sub_domain;
34 u8 bt_hdr_len_id;
35};
36
37/** \brief BIER Table Add / del route
38 @param client_index - opaque cookie to identify the sender
39 @param context - sender context, to match reply w/ request
40 @param bt_tbl_id - The BIER table-id the route is added in
Neale Ranns91286372017-12-05 13:24:04 -080041 @param bt_label - The MPLS label for the table (0 or all ones means not set)
42 If the label is not set, then it is assumed that non-MPLS
43 encoding is used.
Neale Rannsd792d9c2017-10-21 10:53:20 -070044 @param bt_is_add - Is this a route add or delete
45*/
46autoreply define bier_table_add_del
47{
48 u32 client_index;
49 u32 context;
50 vl_api_bier_table_id_t bt_tbl_id;
51 u32 bt_label;
Jakub Grajciarf1f5a8a2019-04-04 10:20:21 +020052 bool bt_is_add;
Neale Rannsd792d9c2017-10-21 10:53:20 -070053};
54
55define bier_table_dump
56{
57 u32 client_index;
58 u32 context;
59};
60
61define bier_table_details
62{
63 u32 context;
64 u32 bt_label;
65 vl_api_bier_table_id_t bt_tbl_id;
66};
67
Neale Rannsd792d9c2017-10-21 10:53:20 -070068/** \brief BIER Route Add / del route
69 @param client_index - opaque cookie to identify the sender
70 @param context - sender context, to match reply w/ request
71 @param br_bp - The Bit-position value
72 @param br_tbl_id - The BIER table-id the route is added in
73 @param br_is_add - Is this a route add or delete
Paul Vinciguerrae6eefb62019-05-13 15:56:41 -040074 @param br_is_replace - Are the paths specified replacing those already
Neale Rannsd792d9c2017-10-21 10:53:20 -070075 present or are they to be combined.
Neale Rannsef90ed02018-09-13 08:45:12 -070076 is_replace = 1 and n_paths=0 implies delete the
77 route and all paths;
Neale Rannsd792d9c2017-10-21 10:53:20 -070078 @param br_n_paths - The number of paths
79 @param br_paths - The array of paths
80*/
Neale Ranns097fa662018-05-01 05:17:55 -070081typedef bier_route
82{
83 u32 br_bp;
84 vl_api_bier_table_id_t br_tbl_id;
85 u8 br_n_paths;
86 vl_api_fib_path_t br_paths[br_n_paths];
87};
88
Neale Rannsd792d9c2017-10-21 10:53:20 -070089autoreply define bier_route_add_del
90{
91 u32 client_index;
92 u32 context;
Jakub Grajciarf1f5a8a2019-04-04 10:20:21 +020093 bool br_is_add;
94 bool br_is_replace;
Neale Ranns097fa662018-05-01 05:17:55 -070095 vl_api_bier_route_t br_route;
Neale Rannsd792d9c2017-10-21 10:53:20 -070096};
97
98define bier_route_dump
99{
100 u32 client_index;
101 u32 context;
102 vl_api_bier_table_id_t br_tbl_id;
103};
104
105define bier_route_details
106{
Neale Rannsd792d9c2017-10-21 10:53:20 -0700107 u32 context;
Neale Ranns097fa662018-05-01 05:17:55 -0700108 vl_api_bier_route_t br_route;
Neale Rannsd792d9c2017-10-21 10:53:20 -0700109};
110
111/** \brief BIER Imposition Add
112 @param client_index - opaque cookie to identify the sender
113 @param context - sender context, to match reply w/ request
114 @param bi_tbl_id - The BIER table-id used to forward post encap
115 @param bi_src - The source Bit-position in the encap.
Neale Rannsf0510722018-01-31 11:35:41 -0800116 @param bi_n_bytes - The number of bytes in the following bit-string.
117 VPP only supports BSL of 1024 and less, so this is
118 a u8 field.
Neale Rannsfa1da152017-12-12 05:32:50 -0800119 @param bi_bytes - The bit-string represented as a byte array (MSB first)
Neale Rannsd792d9c2017-10-21 10:53:20 -0700120*/
121define bier_imp_add
122{
123 u32 client_index;
124 u32 context;
125 vl_api_bier_table_id_t bi_tbl_id;
126 u16 bi_src;
Neale Rannsd792d9c2017-10-21 10:53:20 -0700127 u8 bi_n_bytes;
128 u8 bi_bytes[bi_n_bytes];
129};
130
131/** \brief Reply for BIER route add / del request
132 @param context - returned sender context, to match reply w/ request
133 @param retval - return code
134 @param bi_index - The index of the created imposition object.
135*/
136define bier_imp_add_reply
137{
138 u32 context;
139 i32 retval;
140 u32 bi_index;
141};
142
143/** \brief BIER Imposition Del
144 @param client_index - opaque cookie to identify the sender
145 @param context - sender context, to match reply w/ request
146 @param bi_index - The index of the imposition object (as returned
147 from the ADD)
148*/
149autoreply define bier_imp_del
150{
151 u32 client_index;
152 u32 context;
153 u32 bi_index;
154};
155
156define bier_imp_dump
157{
158 u32 client_index;
159 u32 context;
160};
161
162define bier_imp_details
163{
Neale Rannsd792d9c2017-10-21 10:53:20 -0700164 u32 context;
165 vl_api_bier_table_id_t bi_tbl_id;
166 u16 bi_src;
167 u8 bi_n_bytes;
168 u8 bi_bytes[bi_n_bytes];
169};
170
171/** \brief BIER Disposition Table Add / del route
172 @param client_index - opaque cookie to identify the sender
173 @param context - sender context, to match reply w/ request
174 @param bt_tbl_id - The BIER Disposition table-id.
175*/
176autoreply define bier_disp_table_add_del
177{
178 u32 client_index;
179 u32 context;
180 u32 bdt_tbl_id;
Jakub Grajciarf1f5a8a2019-04-04 10:20:21 +0200181 bool bdt_is_add;
Neale Rannsd792d9c2017-10-21 10:53:20 -0700182};
183
184define bier_disp_table_dump
185{
186 u32 client_index;
187 u32 context;
188};
189
190define bier_disp_table_details
191{
192 u32 context;
193 u32 bdt_tbl_id;
194};
195
196/** \brief BIER Disposition Entry Add / del
197 @param client_index - opaque cookie to identify the sender
198 @param context - sender context, to match reply w/ request
Neale Rannsceb4d052017-12-13 09:13:41 -0800199 @param bde_bp - The Bit-position value for the entry, i.e. the sender's
200 Use 0 for the default (match any source) entry.
Paul Vinciguerrae6eefb62019-05-13 15:56:41 -0400201 @param bde_tbl_id - The BIER disposition table-id the route is added in
202 @param bde_next_hop_sw_if_index - the next hop interface
Neale Rannsd792d9c2017-10-21 10:53:20 -0700203 @param bde_is_add - Is this a route add or delete
204 @param bde_payload_proto - The payload protocol for which the next-hop
205 is added
Neale Rannsfa1da152017-12-12 05:32:50 -0800206 @param bde_paths - The outgoing paths for the entry
Neale Rannsd792d9c2017-10-21 10:53:20 -0700207*/
208autoreply define bier_disp_entry_add_del
209{
210 u32 client_index;
211 u32 context;
212 u16 bde_bp;
213 u32 bde_tbl_id;
Jakub Grajciarf1f5a8a2019-04-04 10:20:21 +0200214 bool bde_is_add;
Neale Rannsd792d9c2017-10-21 10:53:20 -0700215 u8 bde_payload_proto;
216 u8 bde_n_paths;
Neale Ranns31ed7442018-02-23 05:29:09 -0800217 vl_api_fib_path_t bde_paths[bde_n_paths];
Neale Rannsd792d9c2017-10-21 10:53:20 -0700218};
219
220define bier_disp_entry_dump
221{
222 u32 client_index;
223 u32 context;
224 u32 bde_tbl_id;
225};
226
227define bier_disp_entry_details
228{
229 u32 context;
230 u16 bde_bp;
231 u32 bde_tbl_id;
Jakub Grajciarf1f5a8a2019-04-04 10:20:21 +0200232 bool bde_is_add;
Neale Rannsd792d9c2017-10-21 10:53:20 -0700233 u8 bde_payload_proto;
234 u8 bde_n_paths;
Neale Ranns31ed7442018-02-23 05:29:09 -0800235 vl_api_fib_path_t bde_paths[bde_n_paths];
Neale Rannsd792d9c2017-10-21 10:53:20 -0700236};
237
238/*
239 * Local Variables:
240 * eval: (c-set-style "gnu")
241 * End:
242 */