FD.io VPP  v20.01-48-g3e0dafb74
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_route_t br_route
Definition: bier.api:108
vl_api_bier_table_id_t bt_tbl_id
Definition: bier.api:65
option version
Definition: bier.api:22
u32 client_index
Definition: bier.api:210
bool bde_is_add
Definition: bier.api:214
typedef bier_table_id
BIER Table Identifier.
Definition: bier.api:31
vl_api_bier_table_id_t bi_tbl_id
Definition: bier.api:125
u32 bde_tbl_id
Definition: bier.api:213
typedef bier_route
BIER Route Add / del route.
Definition: bier.api:82
vl_api_fib_path_t br_paths[br_n_paths]
Definition: bier.api:86
unsigned char u8
Definition: types.h:56
u16 bde_bp
Definition: bier.api:212
vl_api_bier_table_id_t bi_tbl_id
Definition: bier.api:165
unsigned int u32
Definition: types.h:88
vl_api_bier_table_id_t br_tbl_id
Definition: bier.api:84
u16 bde_bp
Definition: bier.api:230
u32 context
Definition: bier.api:229
u8 bt_sub_domain
Definition: bier.api:33
unsigned short u16
Definition: types.h:57
u8 br_n_paths
Definition: bier.api:85
vl_api_bier_route_t br_route
Definition: bier.api:95
u8 bt_hdr_len_id
Definition: bier.api:34
u8 bde_payload_proto
Definition: bier.api:233
signed int i32
Definition: types.h:77
u8 bde_payload_proto
Definition: bier.api:215
u32 bde_tbl_id
Definition: bier.api:224
u32 context
Definition: bier.api:223
vl_api_bier_table_id_t br_tbl_id
Definition: bier.api:102
bool bde_is_add
Definition: bier.api:232
u32 client_index
Definition: bier.api:222
vl_api_bier_table_id_t bt_tbl_id
Definition: bier.api:50
u8 bde_n_paths
Definition: bier.api:216
u32 context
Definition: bier.api:211
u8 bde_n_paths
Definition: bier.api:234
u32 bde_tbl_id
Definition: bier.api:231