FD.io VPP  v18.01-8-g0eacf49
Vector Packet Processing
bier.api
Go to the documentation of this file.
1 /*
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 */
21 vl_api_version 1.0.0
22 
23 /** \brief BIER Table Indentifier
24  @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
27 */
28 typeonly define bier_table_id
29 {
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
39  @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.
42  @param bt_is_add - Is this a route add or delete
43 */
44 autoreply define bier_table_add_del
45 {
51 };
52 
53 define bier_table_dump
54 {
57 };
58 
59 define bier_table_details
60 {
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
72  @param is_udp_encap - The path describes a UDP-o-IP encapsulation.
73  @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
75  @param next_hop_id - Used when the path resolves via an object that has a unique
76  identifier. e.g. the UDP encap object
77 
78  WARNING: this type is replicated, pending cleanup completion
79 */
80 typeonly define fib_path3
81 {
90  u8 next_hop[16];
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 */
108 autoreply define bier_route_add_del
109 {
117  vl_api_fib_path3_t br_paths[br_n_paths];
118 };
119 
120 define bier_route_dump
121 {
125 };
126 
127 define bier_route_details
128 {
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.
142  @param bi_n_bytes - The number of bytes in the following bit-string
143  @param bi_bytes - The bit-string represented as a byte array (MSB first)
144 */
145 define bier_imp_add
146 {
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 */
160 define bier_imp_add_reply
161 {
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 */
173 autoreply define bier_imp_del
174 {
178 };
179 
180 define bier_imp_dump
181 {
184 };
185 
186 define bier_imp_details
187 {
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 */
201 autoreply define bier_disp_table_add_del
202 {
207 };
208 
209 define bier_disp_table_dump
210 {
213 };
214 
215 define bier_disp_table_details
216 {
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
224  @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.
226  @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
231  @param bde_paths - The outgoing paths for the entry
232 */
233 autoreply define bier_disp_entry_add_del
234 {
242  vl_api_fib_path3_t bde_paths[bde_n_paths];
243 };
244 
245 define bier_disp_entry_dump
246 {
250 };
251 
252 define bier_disp_entry_details
253 {
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  */
vl_api_bier_table_id_t bt_tbl_id
Definition: bier.api:63
u32 client_index
Definition: bier.api:235
vl_api_bier_table_id_t bi_tbl_id
Definition: bier.api:149
u32 bde_tbl_id
Definition: bier.api:238
vl_api_bier_table_id_t br_tbl_id
Definition: bier.api:115
#define vl_api_version(n, v)
Definition: jvpp_registry.c:18
u16 bde_bp
Definition: bier.api:237
int i32
Definition: types.h:81
vl_api_bier_table_id_t bi_tbl_id
Definition: bier.api:190
u8 bde_is_add
Definition: bier.api:257
u16 bde_bp
Definition: bier.api:255
u32 context
Definition: bier.api:254
vl_api_bier_table_id_t br_tbl_id
Definition: bier.api:132
BIER Table Indentifier.
Definition: bier.api:28
u8 bde_payload_proto
Definition: bier.api:258
unsigned int u32
Definition: types.h:88
u8 bde_payload_proto
Definition: bier.api:240
u32 bde_tbl_id
Definition: bier.api:249
u32 context
Definition: bier.api:248
vl_api_bier_table_id_t br_tbl_id
Definition: bier.api:124
unsigned short u16
Definition: types.h:57
unsigned char u8
Definition: types.h:56
u32 client_index
Definition: bier.api:247
vl_api_bier_table_id_t bt_tbl_id
Definition: bier.api:48
u8 bde_is_add
Definition: bier.api:239
FIB path.
Definition: bier.api:80
u8 bde_n_paths
Definition: bier.api:241
u32 context
Definition: bier.api:236
u8 bde_n_paths
Definition: bier.api:259
u32 bde_tbl_id
Definition: bier.api:256