FD.io VPP  v21.10.1-2-g0a485f517
Vector Packet Processing
bier.api
Go to the documentation of this file.
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
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 */
22 option version = "1.2.1";
23 import "vnet/fib/fib_types.api";
24 
25 /** \brief BIER Table Identifier
26  @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
29 */
30 typedef bier_table_id
31 {
32  u8 bt_set;
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
41  @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.
44  @param bt_is_add - Is this a route add or delete
45 */
46 autoreply define bier_table_add_del
47 {
50  vl_api_bier_table_id_t bt_tbl_id;
52  bool bt_is_add;
53 };
54 
55 define bier_table_dump
56 {
59 };
60 
61 define bier_table_details
62 {
65  vl_api_bier_table_id_t bt_tbl_id;
66 };
67 
68 /** \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
74  @param br_is_replace - Are the paths specified replacing those already
75  present or are they to be combined.
76  is_replace = 1 and n_paths=0 implies delete the
77  route and all paths;
78  @param br_n_paths - The number of paths
79  @param br_paths - The array of paths
80 */
81 typedef bier_route
82 {
83  u32 br_bp;
84  vl_api_bier_table_id_t br_tbl_id;
86  vl_api_fib_path_t br_paths[br_n_paths];
87 };
88 
89 autoreply define bier_route_add_del
90 {
93  bool br_is_add;
95  vl_api_bier_route_t br_route;
96 };
97 
98 define bier_route_dump
99 {
102  vl_api_bier_table_id_t br_tbl_id;
103 };
104 
105 define bier_route_details
106 {
108  vl_api_bier_route_t br_route;
109 };
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.
116  @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.
119  @param bi_bytes - The bit-string represented as a byte array (MSB first)
120 */
121 define bier_imp_add
122 {
125  vl_api_bier_table_id_t bi_tbl_id;
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 */
136 define bier_imp_add_reply
137 {
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 */
149 autoreply define bier_imp_del
150 {
154 };
155 
156 define bier_imp_dump
157 {
160 };
161 
162 define bier_imp_details
163 {
165  vl_api_bier_table_id_t bi_tbl_id;
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 */
176 autoreply define bier_disp_table_add_del
177 {
182 };
183 
184 define bier_disp_table_dump
185 {
188 };
189 
190 define bier_disp_table_details
191 {
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
199  @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.
201  @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
203  @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
206  @param bde_paths - The outgoing paths for the entry
207 */
208 autoreply define bier_disp_entry_add_del
209 {
217  vl_api_fib_path_t bde_paths[bde_n_paths];
218 };
219 
220 define bier_disp_entry_dump
221 {
225 };
226 
227 define bier_disp_entry_details
228 {
235  vl_api_fib_path_t bde_paths[bde_n_paths];
236 };
237 
238 /*
239  * Local Variables:
240  * eval: (c-set-style "gnu")
241  * End:
242  */
vl_api_bier_table_add_del_t::client_index
u32 client_index
Definition: bier.api:48
vl_api_bier_imp_add_reply_t::bi_index
u32 bi_index
Definition: bier.api:140
vl_api_bier_imp_details_t::context
u32 context
Definition: bier.api:164
vl_api_bier_imp_add_t::client_index
u32 client_index
Definition: bier.api:123
vl_api_bier_disp_entry_add_del_t::bde_paths
vl_api_fib_path_t bde_paths[bde_n_paths]
Definition: bier.api:217
vl_api_bier_imp_add_t::bi_tbl_id
vl_api_bier_table_id_t bi_tbl_id
Definition: bier.api:125
bier_route
typedef bier_route
BIER Route Add / del route.
Definition: bier.api:82
vl_api_bier_imp_dump_t
Definition: bier.api:156
vl_api_bier_table_add_del_t::context
u32 context
Definition: bier.api:49
vl_api_bier_disp_entry_add_del_t::context
u32 context
Definition: bier.api:211
vl_api_bier_disp_entry_details_t::context
u32 context
Definition: bier.api:229
vl_api_bier_disp_table_dump_t::client_index
u32 client_index
Definition: bier.api:186
vl_api_bier_route_dump_t::br_tbl_id
vl_api_bier_table_id_t br_tbl_id
Definition: bier.api:102
vl_api_bier_disp_table_dump_t::context
u32 context
Definition: bier.api:187
vl_api_bier_imp_dump_t::client_index
u32 client_index
Definition: bier.api:158
vl_api_bier_imp_del_t::context
u32 context
Definition: bier.api:152
bt_sub_domain
u8 bt_sub_domain
Definition: bier.api:33
vl_api_bier_disp_entry_details_t::bde_payload_proto
u8 bde_payload_proto
Definition: bier.api:233
vl_api_bier_route_dump_t::context
u32 context
Definition: bier.api:101
vl_api_bier_route_dump_t
Definition: bier.api:98
u16
unsigned short u16
Definition: types.h:57
vl_api_bier_table_details_t
Definition: bier.api:61
vl_api_bier_disp_entry_add_del_t::bde_n_paths
u8 bde_n_paths
Definition: bier.api:216
vl_api_bier_table_dump_t::client_index
u32 client_index
Definition: bier.api:57
vl_api_bier_table_add_del_t::bt_is_add
bool bt_is_add
Definition: bier.api:52
vl_api_bier_disp_entry_add_del_t::bde_is_add
bool bde_is_add
Definition: bier.api:214
vl_api_bier_imp_details_t::bi_src
u16 bi_src
Definition: bier.api:166
vl_api_bier_imp_dump_t::context
u32 context
Definition: bier.api:159
vl_api_bier_table_add_del_t
BIER Table Add / del route.
Definition: bier.api:46
vl_api_bier_disp_table_details_t
Definition: bier.api:190
i32
signed int i32
Definition: types.h:77
vl_api_bier_disp_table_dump_t
Definition: bier.api:184
vl_api_bier_table_details_t::bt_tbl_id
vl_api_bier_table_id_t bt_tbl_id
Definition: bier.api:65
vl_api_bier_disp_entry_dump_t::context
u32 context
Definition: bier.api:223
vl_api_bier_imp_add_reply_t::retval
i32 retval
Definition: bier.api:139
br_n_paths
u8 br_n_paths
Definition: bier.api:85
vl_api_bier_route_add_del_t
Definition: bier.api:89
vl_api_bier_disp_entry_details_t::bde_bp
u16 bde_bp
Definition: bier.api:230
br_paths
vl_api_fib_path_t br_paths[br_n_paths]
Definition: bier.api:86
vl_api_bier_imp_details_t::bi_n_bytes
u8 bi_n_bytes
Definition: bier.api:167
vl_api_bier_disp_entry_details_t
Definition: bier.api:227
vl_api_bier_disp_table_add_del_t::context
u32 context
Definition: bier.api:179
vl_api_bier_imp_add_t::bi_bytes
u8 bi_bytes[bi_n_bytes]
Definition: bier.api:128
vl_api_bier_route_add_del_t::client_index
u32 client_index
Definition: bier.api:91
vl_api_bier_table_details_t::bt_label
u32 bt_label
Definition: bier.api:64
vl_api_bier_table_dump_t
Definition: bier.api:55
vl_api_bier_imp_details_t::bi_bytes
u8 bi_bytes[bi_n_bytes]
Definition: bier.api:168
vl_api_bier_disp_entry_add_del_t::bde_payload_proto
u8 bde_payload_proto
Definition: bier.api:215
vl_api_bier_disp_entry_dump_t::client_index
u32 client_index
Definition: bier.api:222
vl_api_bier_imp_del_t
BIER Imposition Del.
Definition: bier.api:149
vl_api_bier_route_dump_t::client_index
u32 client_index
Definition: bier.api:100
vl_api_bier_table_add_del_t::bt_tbl_id
vl_api_bier_table_id_t bt_tbl_id
Definition: bier.api:50
vl_api_bier_imp_details_t::bi_tbl_id
vl_api_bier_table_id_t bi_tbl_id
Definition: bier.api:165
vl_api_bier_disp_table_details_t::context
u32 context
Definition: bier.api:192
vl_api_bier_imp_add_t
BIER Imposition Add.
Definition: bier.api:121
vl_api_bier_imp_add_reply_t::context
u32 context
Definition: bier.api:138
vl_api_bier_table_details_t::context
u32 context
Definition: bier.api:63
vl_api_bier_disp_entry_details_t::bde_paths
vl_api_fib_path_t bde_paths[bde_n_paths]
Definition: bier.api:235
vl_api_bier_imp_details_t
Definition: bier.api:162
vl_api_bier_table_dump_t::context
u32 context
Definition: bier.api:58
vl_api_bier_route_details_t::context
u32 context
Definition: bier.api:107
vl_api_bier_route_add_del_t::br_route
vl_api_bier_route_t br_route
Definition: bier.api:95
vl_api_bier_disp_entry_add_del_t::bde_tbl_id
u32 bde_tbl_id
Definition: bier.api:213
vl_api_bier_disp_entry_dump_t
Definition: bier.api:220
vl_api_bier_imp_add_t::bi_src
u16 bi_src
Definition: bier.api:126
vl_api_bier_route_add_del_t::context
u32 context
Definition: bier.api:92
vl_api_bier_disp_table_add_del_t::client_index
u32 client_index
Definition: bier.api:178
vl_api_bier_imp_del_t::client_index
u32 client_index
Definition: bier.api:151
vl_api_bier_disp_table_add_del_t::bdt_is_add
bool bdt_is_add
Definition: bier.api:181
u32
unsigned int u32
Definition: types.h:88
bier_table_id
typedef bier_table_id
BIER Table Identifier.
Definition: bier.api:31
br_tbl_id
vl_api_bier_table_id_t br_tbl_id
Definition: bier.api:84
vl_api_bier_disp_entry_details_t::bde_n_paths
u8 bde_n_paths
Definition: bier.api:234
vl_api_bier_table_add_del_t::bt_label
u32 bt_label
Definition: bier.api:51
vl_api_bier_imp_add_t::bi_n_bytes
u8 bi_n_bytes
Definition: bier.api:127
vl_api_bier_disp_entry_add_del_t
BIER Disposition Entry Add / del.
Definition: bier.api:208
vl_api_bier_disp_table_add_del_t::bdt_tbl_id
u32 bdt_tbl_id
Definition: bier.api:180
vl_api_bier_disp_entry_details_t::bde_is_add
bool bde_is_add
Definition: bier.api:232
u8
unsigned char u8
Definition: types.h:56
vl_api_bier_route_add_del_t::br_is_add
bool br_is_add
Definition: bier.api:93
vl_api_bier_route_details_t::br_route
vl_api_bier_route_t br_route
Definition: bier.api:108
version
option version
Definition: bier.api:22
vl_api_bier_imp_add_reply_t
Reply for BIER route add / del request.
Definition: bier.api:136
vl_api_bier_imp_add_t::context
u32 context
Definition: bier.api:124
vl_api_bier_disp_entry_details_t::bde_tbl_id
u32 bde_tbl_id
Definition: bier.api:231
vl_api_bier_disp_entry_add_del_t::client_index
u32 client_index
Definition: bier.api:210
vl_api_bier_disp_table_add_del_t
BIER Disposition Table Add / del route.
Definition: bier.api:176
vl_api_bier_disp_table_details_t::bdt_tbl_id
u32 bdt_tbl_id
Definition: bier.api:193
vl_api_bier_route_add_del_t::br_is_replace
bool br_is_replace
Definition: bier.api:94
vl_api_bier_route_details_t
Definition: bier.api:105
bt_hdr_len_id
u8 bt_hdr_len_id
Definition: bier.api:34
vl_api_bier_imp_del_t::bi_index
u32 bi_index
Definition: bier.api:153
vl_api_bier_disp_entry_dump_t::bde_tbl_id
u32 bde_tbl_id
Definition: bier.api:224
vl_api_bier_disp_entry_add_del_t::bde_bp
u16 bde_bp
Definition: bier.api:212