FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
fib_entry_src.h
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 #ifndef __FIB_ENTRY_SRC_H__
17 #define __FIB_ENTRY_SRC_H__
18 
19 #include "fib_entry.h"
20 #include "fib_path_list.h"
21 #include "fib_internal.h"
22 
23 /**
24  * Debug macro
25  */
27 
28 #define FIB_ENTRY_DBG(_e, _fmt, _args...) \
29 { \
30  vlib_log_debug(fib_entry_logger, \
31  "[@%d:[%U]:%U:%U]: " _fmt, \
32  fib_entry_get_index(_e), \
33  format_fib_prefix, \
34  &_e->fe_prefix, \
35  format_fib_entry_flags, \
36  fib_entry_get_flags_i(_e), \
37  format_fib_source, \
38  fib_entry_get_source_i(_e), \
39  ##_args); \
40 }
41 
42 /**
43  * Source initialisation Function
44  */
46 
47 /**
48  * Source deinitialisation Function
49  */
51 
52 /**
53  * Source activation. Called when the source is the new best source on the entry.
54  * Return non-zero if the entry can now install, 0 otherwise
55  */
57  const fib_entry_t *fib_entry);
58 
59 /**
60  * Source re-activation. Called when the source is updated and remains
61  * the best source.
62  */
64  const fib_entry_t *fib_entry);
65 
66 /**
67  * Source Deactivate.
68  * Called when the source is no longer best source on the entry
69  */
71  const fib_entry_t *fib_entry);
72 
73 /**
74  * Source Add.
75  * Called when the source is added to the entry
76  */
78  const fib_entry_t *entry,
81  const dpo_id_t *dpo);
82 
83 /**
84  * Source Remove.
85  */
87 
88 /**
89  * Result from a cover update/change
90  */
95 
96 /**
97  * Cover changed. the source should re-evaluate its cover.
98  */
101  const fib_entry_t *fib_entry);
102 
103 /**
104  * Cover updated. The cover the source has, has updated (i.e. its forwarding)
105  * the source may need to re-evaluate.
106  */
109  const fib_entry_t *fib_entry);
110 
111 /**
112  * Forwarding updated. Notification that the forwarding information for the
113  * entry has been updated. This notification is sent to all sources, not just
114  * the active best.
115  */
117  const fib_entry_t *fib_entry,
118  fib_source_t best_source);
119 
120 /**
121  * Installed. Notification that the source is now installed as
122  * the entry's forwarding source.
123  */
125  const fib_entry_t *fib_entry);
126 
127 /**
128  * format.
129  */
130 typedef u8* (*fib_entry_src_format_t)(fib_entry_src_t *src,
131  u8* s);
132 
133 /**
134  * Source path add
135  * the source is adding a new path
136  */
138  const fib_entry_t *fib_entry,
139  fib_path_list_flags_t pl_flags,
140  const fib_route_path_t *path);
141 
142 /**
143  * Source path remove
144  * the source is remoinvg a path
145  */
147  fib_path_list_flags_t pl_flags,
148  const fib_route_path_t *path);
149 
150 /**
151  * Source path replace/swap
152  * the source is providing a new set of paths
153  */
155  const fib_entry_t *fib_entry,
156  fib_path_list_flags_t pl_flags,
157  const fib_route_path_t *path);
158 
159 /**
160  * Set source specific opaque data
161  */
163  const fib_entry_t *fib_entry,
164  const void *data);
165 
166 /**
167  * Get source specific opaque data
168  */
169 typedef const void* (*fib_entry_src_get_data_t)(fib_entry_src_t *src,
170  const fib_entry_t *fib_entry);
171 
172 /**
173  * Contribute forwarding to interpose inthe chain
174  */
175 typedef const dpo_id_t* (*fib_entry_src_contribute_interpose_t)(const fib_entry_src_t *src,
176  const fib_entry_t *fib_entry);
177 
178 /**
179  * The fib entry flags for this source are changing
180  */
182  const fib_entry_t *fib_entry,
183  fib_entry_flag_t new_flags);
184 
185 /**
186  * The fib entry flags for this source are changing
187  */
188 typedef void (*fib_entry_src_copy_t)(const fib_entry_src_t *orig_src,
189  const fib_entry_t *fib_entry,
190  fib_entry_src_t *copy_src);
191 
192 /**
193  * Virtual function table each FIB entry source will register
194  */
195 typedef struct fib_entry_src_vft_t_ {
217 
218 #define FOR_EACH_SRC_ADDED(_entry, _src, _source, action) \
219 { \
220  vec_foreach(_src, (_entry)->fe_srcs) \
221  { \
222  if (_src->fes_flags & FIB_ENTRY_SRC_FLAG_ADDED) { \
223  _source = (_src)->fes_src; \
224  action; \
225  } \
226  } \
227 }
228 
229 #define FIB_ENTRY_SRC_VFT_INVOKE(_fe, esrc, func, args) \
230 { \
231  const fib_entry_src_vft_t *_vft; \
232  fib_node_index_t _fei = fib_entry_get_index(_fe); \
233  _vft = fib_entry_src_get_vft(esrc); \
234  if (_vft->func) { \
235  (esrc)->fes_flags &= ~FIB_ENTRY_SRC_FLAG_STALE; \
236  _vft->func args; \
237  } \
238  _fe = fib_entry_get(_fei); \
239 }
240 
241 #define FIB_ENTRY_SRC_VFT_INVOKE_AND_RETURN(esrc, func, args) \
242 { \
243  const fib_entry_src_vft_t *_vft; \
244  _vft = fib_entry_src_get_vft(esrc); \
245  if (_vft->func) { \
246  (esrc)->fes_flags &= ~FIB_ENTRY_SRC_FLAG_STALE; \
247  return (_vft->func args); \
248  } \
249 }
250 
251 #define FIB_ENTRY_SRC_VFT_EXISTS(esrc, func) \
252  (fib_entry_src_get_vft(esrc)->func != 0)
253 
255  const fib_entry_src_t *esrc);
256 
257 extern fib_entry_src_t * fib_entry_src_find (const fib_entry_t *fib_entry,
258  fib_source_t source);
259 extern u8* fib_entry_src_format(fib_entry_t *entry,
260  fib_source_t source,
261  u8* s);
262 
264  const fib_entry_src_vft_t *vft);
265 
267  fib_entry_t *entry,
268  fib_entry_src_t *esrc);
269 
271  fib_entry_t *fib_entry,
272  fib_entry_src_t *esrc);
273 
274 extern void fib_entry_src_action_activate(fib_entry_t *fib_entry,
275  fib_source_t source);
276 
277 extern void fib_entry_src_action_deactivate(fib_entry_t *fib_entry,
278  fib_source_t source);
279 extern void fib_entry_src_action_reactivate(fib_entry_t *fib_entry,
280  fib_source_t source);
281 
283  fib_source_t source,
285  const dpo_id_t *dpo);
287  fib_source_t source,
289  const dpo_id_t *dpo);
290 
292  fib_source_t source);
295  fib_source_t source);
296 
297 extern void fib_entry_src_action_install(fib_entry_t *fib_entry,
298  fib_source_t source);
299 
300 extern void fib_entry_src_action_uninstall(fib_entry_t *fib_entry);
301 
303  fib_source_t source,
305  const fib_route_path_t *path);
306 
308  fib_source_t source,
310  const fib_route_path_t *path);
311 
313  fib_source_t source,
314  const fib_route_path_t *path);
315 
317  fib_source_t source);
318 extern void fib_entry_src_inherit (const fib_entry_t *cover,
319  fib_entry_t *covered);
320 
322  const fib_entry_t *fib_entry);
323 extern fib_source_t fib_entry_get_source_i(const fib_entry_t *fib_entry);
324 extern fib_entry_flag_t fib_entry_get_flags_i(const fib_entry_t *fib_entry);
325 
327  fib_entry_flag_t eflags);
328 
331 
332 extern void fib_entry_src_mk_lb (fib_entry_t *fib_entry,
333  fib_source_t source,
335  dpo_id_t *dpo_lb);
336 
337 extern fib_protocol_t fib_entry_get_proto(const fib_entry_t * fib_entry);
338 extern dpo_proto_t fib_entry_get_dpo_proto(const fib_entry_t * fib_entry);
339 
340 extern void fib_entry_source_change(fib_entry_t *fib_entry,
341  fib_source_t old_source,
342  fib_source_t new_source);
343 
344 /*
345  * Per-source registration. declared here so we save a separate .h file for each
346  */
347 extern void fib_entry_src_default_register(void);
348 extern void fib_entry_src_rr_register(void);
349 extern void fib_entry_src_interface_register(void);
350 extern void fib_entry_src_interpose_register(void);
351 extern void fib_entry_src_drop_register(void);
352 extern void fib_entry_src_simple_register(void);
353 extern void fib_entry_src_api_register(void);
354 extern void fib_entry_src_adj_register(void);
355 extern void fib_entry_src_mpls_register(void);
356 extern void fib_entry_src_lisp_register(void);
357 
358 extern void fib_entry_src_module_init(void);
359 
360 #endif
fib_entry.h
fib_entry_src_cover_res_t_
Result from a cover update/change.
Definition: fib_entry_src.h:91
fib_entry_src_format_t
u8 *(* fib_entry_src_format_t)(fib_entry_src_t *src, u8 *s)
format.
Definition: fib_entry_src.h:130
fib_entry_src_action_update
fib_entry_t * fib_entry_src_action_update(fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const dpo_id_t *dpo)
Definition: fib_entry_src.c:1353
fib_entry_t_
An entry in a FIB table.
Definition: fib_entry.h:305
dpo_proto_t
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
fib_entry_get_default_chain_type
fib_forward_chain_type_t fib_entry_get_default_chain_type(const fib_entry_t *fib_entry)
Definition: fib_entry.c:81
fib_entry_src_vft_t_::fesv_path_add
fib_entry_src_path_add_t fesv_path_add
Definition: fib_entry_src.h:204
fib_entry_src_vft_t_::fesv_deinit
fib_entry_src_deinit_t fesv_deinit
Definition: fib_entry_src.h:197
vlib_log_class_t
u32 vlib_log_class_t
Definition: vlib.h:52
fib_entry_src_vft_t_::fesv_get_data
fib_entry_src_get_data_t fesv_get_data
Definition: fib_entry_src.h:211
fib_entry_src_action_path_swap
fib_entry_t * fib_entry_src_action_path_swap(fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const fib_route_path_t *path)
Definition: fib_entry_src.c:1677
fib_entry_src_vft_t
struct fib_entry_src_vft_t_ fib_entry_src_vft_t
Virtual function table each FIB entry source will register.
fib_entry_src_adj_register
void fib_entry_src_adj_register(void)
Definition: fib_entry_src_adj.c:426
path
vl_api_fib_path_t path
Definition: mfib_types.api:44
fib_entry_src_cover_change_t
fib_entry_src_cover_res_t(* fib_entry_src_cover_change_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Cover changed.
Definition: fib_entry_src.h:99
fib_entry_src_t_
Information related to the source of a FIB entry.
Definition: fib_entry.h:197
fib_entry_src_lisp_register
void fib_entry_src_lisp_register(void)
Definition: fib_entry_src_lisp.c:130
u16
unsigned short u16
Definition: types.h:57
fib_node_bw_reason_flag_t
enum fib_node_bw_reason_flag_t_ fib_node_bw_reason_flag_t
Flags enum constructed from the reaons.
fib_entry_src_reactivate_t
int(* fib_entry_src_reactivate_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Source re-activation.
Definition: fib_entry_src.h:63
fib_entry_src_vft_t_::fesv_reactivate
fib_entry_src_reactivate_t fesv_reactivate
Definition: fib_entry_src.h:200
fib_entry_src_contribute_interpose_t
const typedef dpo_id_t *(* fib_entry_src_contribute_interpose_t)(const fib_entry_src_t *src, const fib_entry_t *fib_entry)
Contribute forwarding to interpose inthe chain.
Definition: fib_entry_src.h:175
fib_entry_src_activate_t
int(* fib_entry_src_activate_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Source activation.
Definition: fib_entry_src.h:56
fib_path_list_flags_t
enum fib_path_list_flags_t_ fib_path_list_flags_t
fib_entry_src_vft_t_::fesv_cover_change
fib_entry_src_cover_change_t fesv_cover_change
Definition: fib_entry_src.h:206
fib_entry_src_action_install
void fib_entry_src_action_install(fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:732
fib_entry_src_path_remove_t
void(* fib_entry_src_path_remove_t)(fib_entry_src_t *src, fib_path_list_flags_t pl_flags, const fib_route_path_t *path)
Source path remove the source is remoinvg a path.
Definition: fib_entry_src.h:146
fib_entry_src_vft_t_
Virtual function table each FIB entry source will register.
Definition: fib_entry_src.h:195
fib_entry_src_flag_change_t
void(* fib_entry_src_flag_change_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry, fib_entry_flag_t new_flags)
The fib entry flags for this source are changing.
Definition: fib_entry_src.h:181
fib_entry_flag_t
enum fib_entry_flag_t_ fib_entry_flag_t
fib_forward_chain_type_t
enum fib_forward_chain_type_t_ fib_forward_chain_type_t
FIB output chain type.
fib_entry_src_vft_t_::fesv_flags_change
fib_entry_src_flag_change_t fesv_flags_change
Definition: fib_entry_src.h:214
fib_entry_src_vft_t_::fesv_path_swap
fib_entry_src_path_swap_t fesv_path_swap
Definition: fib_entry_src.h:203
fib_entry_src_action_cover_update
fib_entry_src_cover_res_t fib_entry_src_action_cover_update(fib_entry_t *fib_entry, fib_entry_src_t *esrc)
Definition: fib_entry_src.c:239
fib_entry_src_action_reactivate
void fib_entry_src_action_reactivate(fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:1190
fib_entry_src_add_t
void(* fib_entry_src_add_t)(fib_entry_src_t *src, const fib_entry_t *entry, fib_entry_flag_t flags, dpo_proto_t proto, const dpo_id_t *dpo)
Source Add.
Definition: fib_entry_src.h:77
fib_entry_src_installed_t
void(* fib_entry_src_installed_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Installed.
Definition: fib_entry_src.h:124
fib_entry_src_format
u8 * fib_entry_src_format(fib_entry_t *entry, fib_source_t source, u8 *s)
Definition: fib_entry_src.c:1787
fib_entry_src_vft_t_::fesv_format
fib_entry_src_format_t fesv_format
Definition: fib_entry_src.h:208
fib_entry_src_action_cover_change
fib_entry_src_cover_res_t fib_entry_src_action_cover_change(fib_entry_t *entry, fib_entry_src_t *esrc)
Definition: fib_entry_src.c:225
fib_entry_get_proto
fib_protocol_t fib_entry_get_proto(const fib_entry_t *fib_entry)
Definition: fib_entry.c:69
fib_entry_logger
vlib_log_class_t fib_entry_logger
Debug macro.
Definition: fib_entry.c:48
fib_entry_src_flag_t
enum fib_entry_src_flag_t_ fib_entry_src_flag_t
fib_entry_src_cover_res_t
struct fib_entry_src_cover_res_t_ fib_entry_src_cover_res_t
Result from a cover update/change.
fib_entry_src_deactivate_t
void(* fib_entry_src_deactivate_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Source Deactivate.
Definition: fib_entry_src.h:70
src
vl_api_address_t src
Definition: gre.api:54
fib_protocol_t
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
fib_entry_src_vft_t_::fesv_path_remove
fib_entry_src_path_remove_t fesv_path_remove
Definition: fib_entry_src.h:205
fib_entry_src_vft_t_::fesv_cover_update
fib_entry_src_cover_update_t fesv_cover_update
Definition: fib_entry_src.h:207
fib_source_behaviour_t
enum fib_source_behaviour_t_ fib_source_behaviour_t
Each source has a defined behaviour that controls how entries behave that have that source.
fib_entry_src_module_init
void fib_entry_src_module_init(void)
Definition: fib_entry_src.c:1950
fib_entry_src_get_vft
const fib_entry_src_vft_t * fib_entry_src_get_vft(const fib_entry_src_t *esrc)
Get the VFT for a given source.
Definition: fib_entry_src.c:38
fib_entry_src_find
fib_entry_src_t * fib_entry_src_find(const fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:131
data
u8 data[128]
Definition: ipsec_types.api:92
fib_entry_src_remove_t
void(* fib_entry_src_remove_t)(fib_entry_src_t *src)
Source Remove.
Definition: fib_entry_src.h:86
fib_entry_src_simple_register
void fib_entry_src_simple_register(void)
Definition: fib_entry_src_simple.c:74
fib_entry_src_vft_t_::fesv_add
fib_entry_src_add_t fesv_add
Definition: fib_entry_src.h:201
fib_entry_src_vft_t_::fesv_fwd_update
fib_entry_src_fwd_update_t fesv_fwd_update
Definition: fib_entry_src.h:210
fib_path_list.h
fib_entry_src_inherit
void fib_entry_src_inherit(const fib_entry_t *cover, fib_entry_t *covered)
Definition: fib_entry_src.c:1017
fib_entry_src_get_data_t
const typedef void *(* fib_entry_src_get_data_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Get source specific opaque data.
Definition: fib_entry_src.h:169
fib_entry_src_path_swap_t
void(* fib_entry_src_path_swap_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry, fib_path_list_flags_t pl_flags, const fib_route_path_t *path)
Source path replace/swap the source is providing a new set of paths.
Definition: fib_entry_src.h:154
fib_entry_src_action_path_add
fib_entry_t * fib_entry_src_action_path_add(fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const fib_route_path_t *path)
Definition: fib_entry_src.c:1617
fib_entry_src_action_remove_or_update_inherit
fib_entry_src_flag_t fib_entry_src_action_remove_or_update_inherit(fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:1387
fib_entry_src_action_path_remove
fib_entry_src_flag_t fib_entry_src_action_path_remove(fib_entry_t *fib_entry, fib_source_t source, const fib_route_path_t *path)
Definition: fib_entry_src.c:1738
fib_entry_src_copy_t
void(* fib_entry_src_copy_t)(const fib_entry_src_t *orig_src, const fib_entry_t *fib_entry, fib_entry_src_t *copy_src)
The fib entry flags for this source are changing.
Definition: fib_entry_src.h:188
fib_entry_src_action_add
fib_entry_t * fib_entry_src_action_add(fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const dpo_id_t *dpo)
Definition: fib_entry_src.c:1298
fib_entry_src_path_add_t
void(* fib_entry_src_path_add_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry, fib_path_list_flags_t pl_flags, const fib_route_path_t *path)
Source path add the source is adding a new path.
Definition: fib_entry_src.h:137
fib_entry_src_rr_register
void fib_entry_src_rr_register(void)
Definition: fib_entry_src_rr.c:307
fib_entry_src_behaviour_register
void fib_entry_src_behaviour_register(fib_source_behaviour_t source, const fib_entry_src_vft_t *vft)
Definition: fib_entry_src.c:61
fib_entry_chain_type_fixup
fib_forward_chain_type_t fib_entry_chain_type_fixup(const fib_entry_t *entry, fib_forward_chain_type_t fct)
Turn the chain type requested by the client into the one they really wanted.
Definition: fib_entry_src.c:297
fib_entry_src_flags_2_path_list_flags
fib_path_list_flags_t fib_entry_src_flags_2_path_list_flags(fib_entry_flag_t eflags)
Definition: fib_entry_src.c:1550
fib_route_path_t_
A representation of a path as described by a route producer.
Definition: fib_types.h:500
fib_entry_get_source_i
fib_source_t fib_entry_get_source_i(const fib_entry_t *fib_entry)
Definition: fib_entry_src.c:1896
fib_entry_src_vft_t_::fesv_installed
fib_entry_src_installed_t fesv_installed
Definition: fib_entry_src.h:209
fib_entry_src_vft_t_::fesv_remove
fib_entry_src_remove_t fesv_remove
Definition: fib_entry_src.h:202
fib_entry_src_vft_t_::fesv_deactivate
fib_entry_src_deactivate_t fesv_deactivate
Definition: fib_entry_src.h:199
fib_entry_src_action_activate
void fib_entry_src_action_activate(fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:1073
fib_entry_src_cover_res_t_::bw_reason
fib_node_bw_reason_flag_t bw_reason
Definition: fib_entry_src.h:93
fib_entry_src_interpose_register
void fib_entry_src_interpose_register(void)
Definition: fib_entry_src_interpose.c:381
fib_entry_src_fwd_update_t
void(* fib_entry_src_fwd_update_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry, fib_source_t best_source)
Forwarding updated.
Definition: fib_entry_src.h:116
fib_entry_get_flags_i
fib_entry_flag_t fib_entry_get_flags_i(const fib_entry_t *fib_entry)
Definition: fib_entry_src.c:1905
fib_entry_src_vft_t_::fesv_init
fib_entry_src_init_t fesv_init
Definition: fib_entry_src.h:196
fib_entry_src_init_t
void(* fib_entry_src_init_t)(fib_entry_src_t *src)
Source initialisation Function.
Definition: fib_entry_src.h:45
u8
unsigned char u8
Definition: types.h:56
fib_entry_src_mk_lb
void fib_entry_src_mk_lb(fib_entry_t *fib_entry, fib_source_t source, fib_forward_chain_type_t fct, dpo_id_t *dpo_lb)
Definition: fib_entry_src.c:563
fib_internal.h
fib_entry_src_action_installed
fib_entry_t * fib_entry_src_action_installed(fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:1274
fib_entry_src_vft_t_::fesv_activate
fib_entry_src_activate_t fesv_activate
Definition: fib_entry_src.h:198
fib_entry_src_set_data_t
void(* fib_entry_src_set_data_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry, const void *data)
Set source specific opaque data.
Definition: fib_entry_src.h:162
fib_entry_src_cover_update_t
fib_entry_src_cover_res_t(* fib_entry_src_cover_update_t)(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Cover updated.
Definition: fib_entry_src.h:107
fib_entry_src_vft_t_::fesv_copy
fib_entry_src_copy_t fesv_copy
Definition: fib_entry_src.h:215
fib_source_t
enum fib_source_t_ fib_source_t
The different sources that can create a route.
dpo_id_t_
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
Definition: dpo.h:172
fib_entry_source_change
void fib_entry_source_change(fib_entry_t *fib_entry, fib_source_t old_source, fib_source_t new_source)
Definition: fib_entry.c:861
fib_entry_src_api_register
void fib_entry_src_api_register(void)
Definition: fib_entry_src_api.c:163
fib_entry_src_cover_res_t_::install
u16 install
Definition: fib_entry_src.h:92
fib_entry_src_action_deactivate
void fib_entry_src_action_deactivate(fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:1134
fib_entry_src_action_uninstall
void fib_entry_src_action_uninstall(fib_entry_t *fib_entry)
Definition: fib_entry_src.c:783
proto
vl_api_ip_proto_t proto
Definition: acl_types.api:51
fib_entry_src_drop_register
void fib_entry_src_drop_register(void)
Definition: fib_entry_src_drop.c:53
fib_entry_src_action_remove
fib_entry_src_flag_t fib_entry_src_action_remove(fib_entry_t *fib_entry, fib_source_t source)
Definition: fib_entry_src.c:1442
fib_entry_src_deinit_t
void(* fib_entry_src_deinit_t)(fib_entry_src_t *src)
Source deinitialisation Function.
Definition: fib_entry_src.h:50
fib_entry_get_dpo_proto
dpo_proto_t fib_entry_get_dpo_proto(const fib_entry_t *fib_entry)
Definition: fib_entry.c:75
fib_entry_src_interface_register
void fib_entry_src_interface_register(void)
Definition: fib_entry_src_interface.c:256
fib_entry_src_mpls_register
void fib_entry_src_mpls_register(void)
Definition: fib_entry_src_mpls.c:194
fib_entry_src_vft_t_::fesv_set_data
fib_entry_src_set_data_t fesv_set_data
Definition: fib_entry_src.h:212
fib_entry_src_vft_t_::fesv_contribute_interpose
fib_entry_src_contribute_interpose_t fesv_contribute_interpose
Definition: fib_entry_src.h:213
fib_entry_src_default_register
void fib_entry_src_default_register(void)
Definition: fib_entry_src_default.c:114
flags
vl_api_wireguard_peer_flags_t flags
Definition: wireguard.api:105