FIB: encode the label stack in the FIB path during table dump
[vpp.git] / src / vnet / mfib / mfib_entry_cover.h
1 /*
2  * Copyright (c) 2018 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 __MFIB_ENTRY_COVER_H__
17 #define __MFIB_ENTRY_COVER_H__
18
19 #include <vnet/mfib/mfib_entry.h>
20
21 /**
22  * callback function used when walking the covered entries
23  */
24 typedef int (*mfib_entry_covered_walk_t)(mfib_entry_t *cover,
25                                          fib_node_index_t covered,
26                                          void *ctx);
27
28 extern u32 mfib_entry_cover_track(mfib_entry_t *cover,
29                                   fib_node_index_t covered);
30
31 extern void mfib_entry_cover_untrack(mfib_entry_t *cover,
32                                      u32 tracked_index);
33
34 extern void mfib_entry_cover_walk(mfib_entry_t *cover,
35                                   mfib_entry_covered_walk_t walk,
36                                   void *ctx);
37
38 extern void mfib_entry_cover_change_notify(fib_node_index_t cover_index,
39                                            fib_node_index_t covered_index);
40 extern void mfib_entry_cover_update_notify(mfib_entry_t *cover);
41
42 #endif