Coverage Report

Created: 2026-01-21 06:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/frr/zebra/rib.h
Line
Count
Source
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
/*
3
 * Routing Information Base header
4
 * Copyright (C) 1997 Kunihiro Ishiguro
5
 */
6
7
#ifndef _ZEBRA_RIB_H
8
#define _ZEBRA_RIB_H
9
10
#include "zebra.h"
11
#include "memory.h"
12
#include "hook.h"
13
#include "typesafe.h"
14
#include "linklist.h"
15
#include "prefix.h"
16
#include "table.h"
17
#include "queue.h"
18
#include "nexthop.h"
19
#include "nexthop_group.h"
20
#include "vrf.h"
21
#include "if.h"
22
#include "mpls.h"
23
#include "srcdest_table.h"
24
#include "zebra/zebra_nhg.h"
25
26
#ifdef __cplusplus
27
extern "C" {
28
#endif
29
30
DECLARE_MGROUP(ZEBRA);
31
32
DECLARE_MTYPE(RE);
33
34
PREDECL_LIST(rnh_list);
35
36
/* Nexthop structure. */
37
struct rnh {
38
  uint8_t flags;
39
40
#define ZEBRA_NHT_CONNECTED 0x1
41
1.38k
#define ZEBRA_NHT_DELETED 0x2
42
#define ZEBRA_NHT_RESOLVE_VIA_DEFAULT 0x4
43
44
  /* VRF identifier. */
45
  vrf_id_t vrf_id;
46
47
  afi_t afi;
48
  safi_t safi;
49
50
  uint32_t seqno;
51
52
  struct route_entry *state;
53
  struct prefix resolved_route;
54
  struct list *client_list;
55
56
  /* pseudowires dependent on this nh */
57
  struct list *zebra_pseudowire_list;
58
59
  struct route_node *node;
60
61
  /*
62
   * if this has been filtered for the client
63
   */
64
  int filtered[ZEBRA_ROUTE_MAX];
65
66
  struct rnh_list_item rnh_list_item;
67
};
68
69
0
#define DISTANCE_INFINITY  255
70
0
#define ZEBRA_KERNEL_TABLE_MAX 252 /* support for no more than this rt tables */
71
72
PREDECL_LIST(re_list);
73
74
struct re_opaque {
75
  uint16_t length;
76
  uint8_t data[];
77
};
78
79
struct route_entry {
80
  /* Link list. */
81
  struct re_list_item next;
82
83
  /* Nexthop group, shared/refcounted, based on the nexthop(s)
84
   * provided by the owner of the route
85
   */
86
  struct nhg_hash_entry *nhe;
87
88
  /* Nexthop group from FIB (optional), reflecting what is actually
89
   * installed in the FIB if that differs. The 'backup' group is used
90
   * when backup nexthops are present in the route's nhg.
91
   */
92
  struct nexthop_group fib_ng;
93
  struct nexthop_group fib_backup_ng;
94
95
  /* Nexthop group hash entry IDs. The "installed" id is the id
96
   * used in linux/netlink, if available.
97
   */
98
  uint32_t nhe_id;
99
  uint32_t nhe_installed_id;
100
101
  /* Tag */
102
  route_tag_t tag;
103
104
  /* Uptime. */
105
  time_t uptime;
106
107
  /* Type of this route. */
108
  int type;
109
110
  /* VRF identifier. */
111
  vrf_id_t vrf_id;
112
113
  /* Which routing table */
114
  uint32_t table;
115
116
  /* Metric */
117
  uint32_t metric;
118
119
  /* MTU */
120
  uint32_t mtu;
121
  uint32_t nexthop_mtu;
122
123
  /* Flags of this route.
124
   * This flag's definition is in lib/zebra.h ZEBRA_FLAG_* and is exposed
125
   * to clients via Zserv
126
   */
127
  uint32_t flags;
128
129
  /* RIB internal status */
130
  uint32_t status;
131
#define ROUTE_ENTRY_REMOVED          0x1
132
/* The Route Entry has changed */
133
#define ROUTE_ENTRY_CHANGED          0x2
134
/* The Label has changed on the Route entry */
135
#define ROUTE_ENTRY_LABELS_CHANGED   0x4
136
/* Route is queued for Installation into the Data Plane */
137
#define ROUTE_ENTRY_QUEUED   0x8
138
/* Route is installed into the Data Plane */
139
#define ROUTE_ENTRY_INSTALLED        0x10
140
/* Route has Failed installation into the Data Plane in some manner */
141
#define ROUTE_ENTRY_FAILED           0x20
142
/* Route has a 'fib' set of nexthops, probably because the installed set
143
 * differs from the rib/normal set of nexthops.
144
 */
145
#define ROUTE_ENTRY_USE_FIB_NHG      0x40
146
/*
147
 * Route entries that are going to the dplane for a Route Replace
148
 * let's note the fact that this is happening.  This will
149
 * be useful when zebra is determing if a route can be
150
 * used for nexthops
151
 */
152
#define ROUTE_ENTRY_ROUTE_REPLACING 0x80
153
154
  /* Sequence value incremented for each dataplane operation */
155
  uint32_t dplane_sequence;
156
157
  /* Source protocol instance */
158
  uint16_t instance;
159
160
  /* Distance. */
161
  uint8_t distance;
162
163
  struct re_opaque *opaque;
164
};
165
166
0
#define RIB_SYSTEM_ROUTE(R) RSYSTEM_ROUTE((R)->type)
167
168
0
#define RIB_KERNEL_ROUTE(R) RKERNEL_ROUTE((R)->type)
169
170
/* meta-queue structure:
171
 * sub-queue 0: nexthop group objects
172
 * sub-queue 1: EVPN/VxLAN objects
173
 * sub-queue 2: Early Route Processing
174
 * sub-queue 3: Early Label Processing
175
 * sub-queue 4: connected
176
 * sub-queue 5: kernel
177
 * sub-queue 6: static
178
 * sub-queue 7: RIP, RIPng, OSPF, OSPF6, IS-IS, EIGRP, NHRP
179
 * sub-queue 8: iBGP, eBGP
180
 * sub-queue 9: any other origin (if any) typically those that
181
 *              don't generate routes
182
 */
183
12
#define MQ_SIZE 11
184
struct meta_queue {
185
  struct list *subq[MQ_SIZE];
186
  uint32_t size; /* sum of lengths of all subqueues */
187
};
188
189
/*
190
 * Structure that represents a single destination (prefix).
191
 */
192
typedef struct rib_dest_t_ {
193
194
  /*
195
   * Back pointer to the route node for this destination. This helps
196
   * us get to the prefix that this structure is for.
197
   */
198
  struct route_node *rnode;
199
200
  /*
201
   * Doubly-linked list of routes for this prefix.
202
   */
203
  struct re_list_head routes;
204
205
  struct route_entry *selected_fib;
206
207
  /*
208
   * Flags, see below.
209
   */
210
  uint32_t flags;
211
212
  /*
213
   * The list of nht prefixes that have ended up
214
   * depending on this route node.
215
   * After route processing is returned from
216
   * the data plane we will run evaluate_rnh
217
   * on these prefixes.
218
   */
219
  struct rnh_list_head nht;
220
221
  /*
222
   * Linkage to put dest on the FPM processing queue.
223
   */
224
  TAILQ_ENTRY(rib_dest_t_) fpm_q_entries;
225
226
} rib_dest_t;
227
228
2.33k
DECLARE_LIST(rnh_list, struct rnh, rnh_list_item);
229
1.36k
DECLARE_LIST(re_list, struct route_entry, next);
zebra_mpls.c:re_list_const_first
Line
Count
Source
229
DECLARE_LIST(re_list, struct route_entry, next);
zebra_rib.c:re_list_const_first
Line
Count
Source
229
DECLARE_LIST(re_list, struct route_entry, next);
Unexecuted instantiation: zebra_rib.c:re_list_del
zebra_rnh.c:re_list_const_first
Line
Count
Source
229
DECLARE_LIST(re_list, struct route_entry, next);
230
231
#define RIB_ROUTE_QUEUED(x) (1 << (x))
232
// If MQ_SIZE is modified this value needs to be updated.
233
#define RIB_ROUTE_ANY_QUEUED 0x3F
234
235
/*
236
 * The maximum qindex that can be used.
237
 */
238
#define ZEBRA_MAX_QINDEX        (MQ_SIZE - 1)
239
240
/*
241
 * This flag indicates that a given prefix has been 'advertised' to
242
 * the FPM to be installed in the forwarding plane.
243
 */
244
#define RIB_DEST_SENT_TO_FPM   (1 << (ZEBRA_MAX_QINDEX + 1))
245
246
/*
247
 * This flag is set when we need to send an update to the FPM about a
248
 * dest.
249
 */
250
#define RIB_DEST_UPDATE_FPM    (1 << (ZEBRA_MAX_QINDEX + 2))
251
252
#define RIB_DEST_UPDATE_LSPS   (1 << (ZEBRA_MAX_QINDEX + 3))
253
254
/*
255
 * Macro to iterate over each route for a destination (prefix).
256
 */
257
#define RE_DEST_FOREACH_ROUTE(dest, re)                                        \
258
808
  for ((re) = (dest) ? re_list_first(&((dest)->routes)) : NULL; (re);    \
259
808
       (re) = re_list_next(&((dest)->routes), (re)))
260
261
/*
262
 * Same as above, but allows the current node to be unlinked.
263
 */
264
#define RE_DEST_FOREACH_ROUTE_SAFE(dest, re, next)                             \
265
560
  for ((re) = (dest) ? re_list_first(&((dest)->routes)) : NULL;          \
266
560
       (re) && ((next) = re_list_next(&((dest)->routes), (re)), 1);      \
267
560
       (re) = (next))
268
269
#define RE_DEST_FIRST_ROUTE(dest, re)                                          \
270
0
  ((re) = (dest) ? re_list_first(&((dest)->routes)) : NULL)
271
272
#define RE_DEST_NEXT_ROUTE(dest, re)                                           \
273
0
  ((re) = (dest) ? re_list_next(&((dest)->routes), (re)) : NULL)
274
275
#define RNODE_FOREACH_RE(rn, re)                                               \
276
808
  RE_DEST_FOREACH_ROUTE (rib_dest_from_rnode(rn), re)
277
278
#define RNODE_FOREACH_RE_SAFE(rn, re, next)                                    \
279
560
  RE_DEST_FOREACH_ROUTE_SAFE (rib_dest_from_rnode(rn), re, next)
280
281
0
#define RNODE_FIRST_RE(rn, re) RE_DEST_FIRST_ROUTE(rib_dest_from_rnode(rn), re)
282
283
0
#define RNODE_NEXT_RE(rn, re) RE_DEST_NEXT_ROUTE(rib_dest_from_rnode(rn), re)
284
285
/*
286
 * rib_table_info_t
287
 *
288
 * Structure that is hung off of a route_table that holds information about
289
 * the table.
290
 */
291
struct rib_table_info {
292
293
  /*
294
   * Back pointer to zebra_vrf.
295
   */
296
  struct zebra_vrf *zvrf;
297
  afi_t afi;
298
  safi_t safi;
299
  uint32_t table_id;
300
};
301
302
enum rib_tables_iter_state {
303
  RIB_TABLES_ITER_S_INIT,
304
  RIB_TABLES_ITER_S_ITERATING,
305
  RIB_TABLES_ITER_S_DONE
306
};
307
308
/*
309
 * Structure that holds state for iterating over all tables in the
310
 * Routing Information Base.
311
 */
312
typedef struct rib_tables_iter_t_ {
313
  vrf_id_t vrf_id;
314
  int afi_safi_ix;
315
316
  enum rib_tables_iter_state state;
317
} rib_tables_iter_t;
318
319
/* Events/reasons triggering a RIB update. */
320
enum rib_update_event {
321
  RIB_UPDATE_KERNEL,
322
  RIB_UPDATE_RMAP_CHANGE,
323
  RIB_UPDATE_OTHER,
324
  RIB_UPDATE_MAX
325
};
326
void rib_update_finish(void);
327
328
int route_entry_update_nhe(struct route_entry *re,
329
         struct nhg_hash_entry *new_nhghe);
330
331
/* NHG replace has happend, we have to update route_entry pointers to new one */
332
int rib_handle_nhg_replace(struct nhg_hash_entry *old_entry,
333
         struct nhg_hash_entry *new_entry);
334
335
0
#define route_entry_dump(prefix, src, re) _route_entry_dump(__func__, prefix, src, re)
336
extern void _route_entry_dump(const char *func, union prefixconstptr pp,
337
            union prefixconstptr src_pp,
338
            const struct route_entry *re);
339
340
struct route_entry *
341
zebra_rib_route_entry_new(vrf_id_t vrf_id, int type, uint8_t instance,
342
        uint32_t flags, uint32_t nhe_id, uint32_t table_id,
343
        uint32_t metric, uint32_t mtu, uint8_t distance,
344
        route_tag_t tag);
345
346
#define ZEBRA_RIB_LOOKUP_ERROR -1
347
#define ZEBRA_RIB_FOUND_EXACT 0
348
#define ZEBRA_RIB_FOUND_NOGATE 1
349
#define ZEBRA_RIB_FOUND_CONNECTED 2
350
#define ZEBRA_RIB_NOTFOUND 3
351
352
extern int is_zebra_valid_kernel_table(uint32_t table_id);
353
extern int is_zebra_main_routing_table(uint32_t table_id);
354
extern int zebra_check_addr(const struct prefix *p);
355
356
extern void rib_delnode(struct route_node *rn, struct route_entry *re);
357
extern void rib_install_kernel(struct route_node *rn, struct route_entry *re,
358
             struct route_entry *old);
359
extern void rib_uninstall_kernel(struct route_node *rn, struct route_entry *re);
360
361
/* NOTE:
362
 * All rib_add function will not just add prefix into RIB, but
363
 * also implicitly withdraw equal prefix of same type. */
364
extern int rib_add(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
365
       unsigned short instance, uint32_t flags, struct prefix *p,
366
       struct prefix_ipv6 *src_p, const struct nexthop *nh,
367
       uint32_t nhe_id, uint32_t table_id, uint32_t metric,
368
       uint32_t mtu, uint8_t distance, route_tag_t tag,
369
       bool startup);
370
/*
371
 * Multipath route apis.
372
 */
373
extern int rib_add_multipath(afi_t afi, safi_t safi, struct prefix *p,
374
           struct prefix_ipv6 *src_p, struct route_entry *re,
375
           struct nexthop_group *ng, bool startup);
376
/*
377
 * -1 -> some sort of error
378
 *  0 -> an add
379
 *  1 -> an update
380
 */
381
extern int rib_add_multipath_nhe(afi_t afi, safi_t safi, struct prefix *p,
382
         struct prefix_ipv6 *src_p,
383
         struct route_entry *re,
384
         struct nhg_hash_entry *nhe, bool startup);
385
386
extern void rib_delete(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
387
           unsigned short instance, uint32_t flags,
388
           struct prefix *p, struct prefix_ipv6 *src_p,
389
           const struct nexthop *nh, uint32_t nhe_id,
390
           uint32_t table_id, uint32_t metric, uint8_t distance,
391
           bool fromkernel);
392
393
extern struct route_entry *rib_match(afi_t afi, safi_t safi, vrf_id_t vrf_id,
394
             const union g_addr *addr,
395
             struct route_node **rn_out);
396
extern struct route_entry *rib_match_multicast(afi_t afi, vrf_id_t vrf_id,
397
                 union g_addr *gaddr,
398
                 struct route_node **rn_out);
399
400
extern struct route_entry *rib_lookup_ipv4(struct prefix_ipv4 *p,
401
             vrf_id_t vrf_id);
402
403
extern void rib_update(enum rib_update_event event);
404
extern void rib_update_table(struct route_table *table,
405
           enum rib_update_event event, int rtype);
406
extern void rib_sweep_route(struct event *t);
407
extern void rib_sweep_table(struct route_table *table);
408
extern void rib_close_table(struct route_table *table);
409
extern void rib_init(void);
410
extern unsigned long rib_score_proto(uint8_t proto, unsigned short instance);
411
extern unsigned long rib_score_proto_table(uint8_t proto,
412
             unsigned short instance,
413
             struct route_table *table);
414
415
extern int rib_queue_add(struct route_node *rn);
416
417
struct nhg_ctx; /* Forward declaration */
418
419
/* Enqueue incoming nhg from OS for processing */
420
extern int rib_queue_nhg_ctx_add(struct nhg_ctx *ctx);
421
422
/* Enqueue incoming nhg from proto daemon for processing */
423
extern int rib_queue_nhe_add(struct nhg_hash_entry *nhe);
424
425
/* Enqueue evpn route for processing */
426
int zebra_rib_queue_evpn_route_add(vrf_id_t vrf_id, const struct ethaddr *rmac,
427
           const struct ipaddr *vtep_ip,
428
           const struct prefix *host_prefix);
429
int zebra_rib_queue_evpn_route_del(vrf_id_t vrf_id,
430
           const struct ipaddr *vtep_ip,
431
           const struct prefix *host_prefix);
432
/* Enqueue EVPN remote ES for processing */
433
int zebra_rib_queue_evpn_rem_es_add(const esi_t *esi,
434
            const struct in_addr *vtep_ip,
435
            bool esr_rxed, uint8_t df_alg,
436
            uint16_t df_pref);
437
int zebra_rib_queue_evpn_rem_es_del(const esi_t *esi,
438
            const struct in_addr *vtep_ip);
439
/* Enqueue EVPN remote macip update for processing */
440
int zebra_rib_queue_evpn_rem_macip_del(vni_t vni, const struct ethaddr *macaddr,
441
               const struct ipaddr *ip,
442
               struct in_addr vtep_ip);
443
int zebra_rib_queue_evpn_rem_macip_add(vni_t vni, const struct ethaddr *macaddr,
444
               const struct ipaddr *ipaddr,
445
               uint8_t flags, uint32_t seq,
446
               struct in_addr vtep_ip,
447
               const esi_t *esi);
448
/* Enqueue VXLAN remote vtep update for processing */
449
int zebra_rib_queue_evpn_rem_vtep_add(vrf_id_t vrf_id, vni_t vni,
450
              struct in_addr vtep_ip,
451
              int flood_control);
452
int zebra_rib_queue_evpn_rem_vtep_del(vrf_id_t vrf_id, vni_t vni,
453
              struct in_addr vtep_ip);
454
455
extern void meta_queue_free(struct meta_queue *mq, struct zebra_vrf *zvrf);
456
extern int zebra_rib_labeled_unicast(struct route_entry *re);
457
extern struct route_table *rib_table_ipv6;
458
459
extern void rib_unlink(struct route_node *rn, struct route_entry *re);
460
extern int rib_gc_dest(struct route_node *rn);
461
extern struct route_table *rib_tables_iter_next(rib_tables_iter_t *iter);
462
463
extern uint8_t route_distance(int type);
464
465
extern void zebra_rib_evaluate_rn_nexthops(struct route_node *rn, uint32_t seq,
466
             bool rt_delete);
467
468
/*
469
 * rib_find_rn_from_ctx
470
 *
471
 * Returns a lock increased route_node for the appropriate
472
 * table and prefix specified by the context.  Developer
473
 * should unlock the node when done.
474
 */
475
extern struct route_node *
476
rib_find_rn_from_ctx(const struct zebra_dplane_ctx *ctx);
477
478
/*
479
 * Inline functions.
480
 */
481
482
/*
483
 * rib_table_info
484
 */
485
static inline struct rib_table_info *rib_table_info(struct route_table *table)
486
0
{
487
0
  return (struct rib_table_info *)route_table_get_info(table);
488
0
}
Unexecuted instantiation: connected.c:rib_table_info
Unexecuted instantiation: if_netlink.c:rib_table_info
Unexecuted instantiation: interface.c:rib_table_info
Unexecuted instantiation: ioctl.c:rib_table_info
Unexecuted instantiation: kernel_netlink.c:rib_table_info
Unexecuted instantiation: label_manager.c:rib_table_info
Unexecuted instantiation: main.c:rib_table_info
Unexecuted instantiation: netconf_netlink.c:rib_table_info
Unexecuted instantiation: redistribute.c:rib_table_info
Unexecuted instantiation: router-id.c:rib_table_info
Unexecuted instantiation: rt_netlink.c:rib_table_info
Unexecuted instantiation: rtadv.c:rib_table_info
Unexecuted instantiation: rtread_netlink.c:rib_table_info
Unexecuted instantiation: rule_netlink.c:rib_table_info
Unexecuted instantiation: table_manager.c:rib_table_info
Unexecuted instantiation: tc_netlink.c:rib_table_info
Unexecuted instantiation: zapi_msg.c:rib_table_info
Unexecuted instantiation: zebra_affinitymap.c:rib_table_info
Unexecuted instantiation: zebra_dplane.c:rib_table_info
Unexecuted instantiation: zebra_gr.c:rib_table_info
Unexecuted instantiation: zebra_l2.c:rib_table_info
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_table_info
Unexecuted instantiation: zebra_evpn.c:rib_table_info
Unexecuted instantiation: zebra_evpn_mac.c:rib_table_info
Unexecuted instantiation: zebra_evpn_neigh.c:rib_table_info
Unexecuted instantiation: zebra_mlag.c:rib_table_info
Unexecuted instantiation: zebra_mlag_vty.c:rib_table_info
Unexecuted instantiation: zebra_mpls.c:rib_table_info
Unexecuted instantiation: zebra_mpls_netlink.c:rib_table_info
Unexecuted instantiation: zebra_mpls_null.c:rib_table_info
Unexecuted instantiation: zebra_mpls_vty.c:rib_table_info
Unexecuted instantiation: zebra_srv6.c:rib_table_info
Unexecuted instantiation: zebra_srv6_vty.c:rib_table_info
Unexecuted instantiation: zebra_mroute.c:rib_table_info
Unexecuted instantiation: zebra_nb.c:rib_table_info
Unexecuted instantiation: zebra_nb_config.c:rib_table_info
Unexecuted instantiation: zebra_nb_rpcs.c:rib_table_info
Unexecuted instantiation: zebra_nb_state.c:rib_table_info
Unexecuted instantiation: zebra_netns_id.c:rib_table_info
Unexecuted instantiation: zebra_netns_notify.c:rib_table_info
Unexecuted instantiation: zebra_nhg.c:rib_table_info
Unexecuted instantiation: zebra_ns.c:rib_table_info
Unexecuted instantiation: zebra_opaque.c:rib_table_info
Unexecuted instantiation: zebra_pbr.c:rib_table_info
Unexecuted instantiation: zebra_ptm.c:rib_table_info
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_table_info
Unexecuted instantiation: zebra_pw.c:rib_table_info
Unexecuted instantiation: zebra_rib.c:rib_table_info
Unexecuted instantiation: zebra_router.c:rib_table_info
Unexecuted instantiation: zebra_rnh.c:rib_table_info
Unexecuted instantiation: zebra_routemap.c:rib_table_info
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_table_info
Unexecuted instantiation: zebra_script.c:rib_table_info
Unexecuted instantiation: zebra_srte.c:rib_table_info
Unexecuted instantiation: zebra_tc.c:rib_table_info
Unexecuted instantiation: zebra_vrf.c:rib_table_info
Unexecuted instantiation: zebra_vty.c:rib_table_info
Unexecuted instantiation: zebra_vxlan.c:rib_table_info
Unexecuted instantiation: zebra_vxlan_if.c:rib_table_info
Unexecuted instantiation: zebra_evpn_mh.c:rib_table_info
Unexecuted instantiation: zebra_neigh.c:rib_table_info
Unexecuted instantiation: zserv.c:rib_table_info
Unexecuted instantiation: debug_nl.c:rib_table_info
489
490
/*
491
 * rib_dest_from_rnode
492
 */
493
static inline rib_dest_t *rib_dest_from_rnode(struct route_node *rn)
494
6.70k
{
495
6.70k
  return (rib_dest_t *)rn->info;
496
6.70k
}
Unexecuted instantiation: connected.c:rib_dest_from_rnode
Unexecuted instantiation: if_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: interface.c:rib_dest_from_rnode
Unexecuted instantiation: ioctl.c:rib_dest_from_rnode
Unexecuted instantiation: kernel_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: label_manager.c:rib_dest_from_rnode
Unexecuted instantiation: main.c:rib_dest_from_rnode
Unexecuted instantiation: netconf_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: redistribute.c:rib_dest_from_rnode
Unexecuted instantiation: router-id.c:rib_dest_from_rnode
Unexecuted instantiation: rt_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: rtadv.c:rib_dest_from_rnode
Unexecuted instantiation: rtread_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: rule_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: table_manager.c:rib_dest_from_rnode
Unexecuted instantiation: tc_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: zapi_msg.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_affinitymap.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_dplane.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_gr.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_l2.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_evpn.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_evpn_mac.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_evpn_neigh.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_mlag.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_mlag_vty.c:rib_dest_from_rnode
zebra_mpls.c:rib_dest_from_rnode
Line
Count
Source
494
322
{
495
322
  return (rib_dest_t *)rn->info;
496
322
}
Unexecuted instantiation: zebra_mpls_netlink.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_mpls_null.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_mpls_vty.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_srv6.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_srv6_vty.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_mroute.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_nb.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_nb_config.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_nb_rpcs.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_nb_state.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_netns_id.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_netns_notify.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_nhg.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_ns.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_opaque.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_pbr.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_ptm.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_pw.c:rib_dest_from_rnode
zebra_rib.c:rib_dest_from_rnode
Line
Count
Source
494
1.12k
{
495
1.12k
  return (rib_dest_t *)rn->info;
496
1.12k
}
Unexecuted instantiation: zebra_router.c:rib_dest_from_rnode
zebra_rnh.c:rib_dest_from_rnode
Line
Count
Source
494
5.26k
{
495
5.26k
  return (rib_dest_t *)rn->info;
496
5.26k
}
Unexecuted instantiation: zebra_routemap.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_script.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_srte.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_tc.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_vrf.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_vty.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_vxlan.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_vxlan_if.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_evpn_mh.c:rib_dest_from_rnode
Unexecuted instantiation: zebra_neigh.c:rib_dest_from_rnode
Unexecuted instantiation: zserv.c:rib_dest_from_rnode
Unexecuted instantiation: debug_nl.c:rib_dest_from_rnode
497
498
/*
499
 * rnode_to_ribs
500
 *
501
 * Returns a pointer to the list of routes corresponding to the given
502
 * route_node.
503
 */
504
static inline struct route_entry *rnode_to_ribs(struct route_node *rn)
505
0
{
506
0
  rib_dest_t *dest;
507
508
0
  dest = rib_dest_from_rnode(rn);
509
0
  if (!dest)
510
0
    return NULL;
511
512
0
  return re_list_first(&dest->routes);
513
0
}
Unexecuted instantiation: connected.c:rnode_to_ribs
Unexecuted instantiation: if_netlink.c:rnode_to_ribs
Unexecuted instantiation: interface.c:rnode_to_ribs
Unexecuted instantiation: ioctl.c:rnode_to_ribs
Unexecuted instantiation: kernel_netlink.c:rnode_to_ribs
Unexecuted instantiation: label_manager.c:rnode_to_ribs
Unexecuted instantiation: main.c:rnode_to_ribs
Unexecuted instantiation: netconf_netlink.c:rnode_to_ribs
Unexecuted instantiation: redistribute.c:rnode_to_ribs
Unexecuted instantiation: router-id.c:rnode_to_ribs
Unexecuted instantiation: rt_netlink.c:rnode_to_ribs
Unexecuted instantiation: rtadv.c:rnode_to_ribs
Unexecuted instantiation: rtread_netlink.c:rnode_to_ribs
Unexecuted instantiation: rule_netlink.c:rnode_to_ribs
Unexecuted instantiation: table_manager.c:rnode_to_ribs
Unexecuted instantiation: tc_netlink.c:rnode_to_ribs
Unexecuted instantiation: zapi_msg.c:rnode_to_ribs
Unexecuted instantiation: zebra_affinitymap.c:rnode_to_ribs
Unexecuted instantiation: zebra_dplane.c:rnode_to_ribs
Unexecuted instantiation: zebra_gr.c:rnode_to_ribs
Unexecuted instantiation: zebra_l2.c:rnode_to_ribs
Unexecuted instantiation: zebra_l2_bridge_if.c:rnode_to_ribs
Unexecuted instantiation: zebra_evpn.c:rnode_to_ribs
Unexecuted instantiation: zebra_evpn_mac.c:rnode_to_ribs
Unexecuted instantiation: zebra_evpn_neigh.c:rnode_to_ribs
Unexecuted instantiation: zebra_mlag.c:rnode_to_ribs
Unexecuted instantiation: zebra_mlag_vty.c:rnode_to_ribs
Unexecuted instantiation: zebra_mpls.c:rnode_to_ribs
Unexecuted instantiation: zebra_mpls_netlink.c:rnode_to_ribs
Unexecuted instantiation: zebra_mpls_null.c:rnode_to_ribs
Unexecuted instantiation: zebra_mpls_vty.c:rnode_to_ribs
Unexecuted instantiation: zebra_srv6.c:rnode_to_ribs
Unexecuted instantiation: zebra_srv6_vty.c:rnode_to_ribs
Unexecuted instantiation: zebra_mroute.c:rnode_to_ribs
Unexecuted instantiation: zebra_nb.c:rnode_to_ribs
Unexecuted instantiation: zebra_nb_config.c:rnode_to_ribs
Unexecuted instantiation: zebra_nb_rpcs.c:rnode_to_ribs
Unexecuted instantiation: zebra_nb_state.c:rnode_to_ribs
Unexecuted instantiation: zebra_netns_id.c:rnode_to_ribs
Unexecuted instantiation: zebra_netns_notify.c:rnode_to_ribs
Unexecuted instantiation: zebra_nhg.c:rnode_to_ribs
Unexecuted instantiation: zebra_ns.c:rnode_to_ribs
Unexecuted instantiation: zebra_opaque.c:rnode_to_ribs
Unexecuted instantiation: zebra_pbr.c:rnode_to_ribs
Unexecuted instantiation: zebra_ptm.c:rnode_to_ribs
Unexecuted instantiation: zebra_ptm_redistribute.c:rnode_to_ribs
Unexecuted instantiation: zebra_pw.c:rnode_to_ribs
Unexecuted instantiation: zebra_rib.c:rnode_to_ribs
Unexecuted instantiation: zebra_router.c:rnode_to_ribs
Unexecuted instantiation: zebra_rnh.c:rnode_to_ribs
Unexecuted instantiation: zebra_routemap.c:rnode_to_ribs
Unexecuted instantiation: zebra_routemap_nb_config.c:rnode_to_ribs
Unexecuted instantiation: zebra_script.c:rnode_to_ribs
Unexecuted instantiation: zebra_srte.c:rnode_to_ribs
Unexecuted instantiation: zebra_tc.c:rnode_to_ribs
Unexecuted instantiation: zebra_vrf.c:rnode_to_ribs
Unexecuted instantiation: zebra_vty.c:rnode_to_ribs
Unexecuted instantiation: zebra_vxlan.c:rnode_to_ribs
Unexecuted instantiation: zebra_vxlan_if.c:rnode_to_ribs
Unexecuted instantiation: zebra_evpn_mh.c:rnode_to_ribs
Unexecuted instantiation: zebra_neigh.c:rnode_to_ribs
Unexecuted instantiation: zserv.c:rnode_to_ribs
Unexecuted instantiation: debug_nl.c:rnode_to_ribs
514
515
/*
516
 * rib_dest_prefix
517
 */
518
static inline struct prefix *rib_dest_prefix(rib_dest_t *dest)
519
0
{
520
0
  return &dest->rnode->p;
521
0
}
Unexecuted instantiation: connected.c:rib_dest_prefix
Unexecuted instantiation: if_netlink.c:rib_dest_prefix
Unexecuted instantiation: interface.c:rib_dest_prefix
Unexecuted instantiation: ioctl.c:rib_dest_prefix
Unexecuted instantiation: kernel_netlink.c:rib_dest_prefix
Unexecuted instantiation: label_manager.c:rib_dest_prefix
Unexecuted instantiation: main.c:rib_dest_prefix
Unexecuted instantiation: netconf_netlink.c:rib_dest_prefix
Unexecuted instantiation: redistribute.c:rib_dest_prefix
Unexecuted instantiation: router-id.c:rib_dest_prefix
Unexecuted instantiation: rt_netlink.c:rib_dest_prefix
Unexecuted instantiation: rtadv.c:rib_dest_prefix
Unexecuted instantiation: rtread_netlink.c:rib_dest_prefix
Unexecuted instantiation: rule_netlink.c:rib_dest_prefix
Unexecuted instantiation: table_manager.c:rib_dest_prefix
Unexecuted instantiation: tc_netlink.c:rib_dest_prefix
Unexecuted instantiation: zapi_msg.c:rib_dest_prefix
Unexecuted instantiation: zebra_affinitymap.c:rib_dest_prefix
Unexecuted instantiation: zebra_dplane.c:rib_dest_prefix
Unexecuted instantiation: zebra_gr.c:rib_dest_prefix
Unexecuted instantiation: zebra_l2.c:rib_dest_prefix
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_dest_prefix
Unexecuted instantiation: zebra_evpn.c:rib_dest_prefix
Unexecuted instantiation: zebra_evpn_mac.c:rib_dest_prefix
Unexecuted instantiation: zebra_evpn_neigh.c:rib_dest_prefix
Unexecuted instantiation: zebra_mlag.c:rib_dest_prefix
Unexecuted instantiation: zebra_mlag_vty.c:rib_dest_prefix
Unexecuted instantiation: zebra_mpls.c:rib_dest_prefix
Unexecuted instantiation: zebra_mpls_netlink.c:rib_dest_prefix
Unexecuted instantiation: zebra_mpls_null.c:rib_dest_prefix
Unexecuted instantiation: zebra_mpls_vty.c:rib_dest_prefix
Unexecuted instantiation: zebra_srv6.c:rib_dest_prefix
Unexecuted instantiation: zebra_srv6_vty.c:rib_dest_prefix
Unexecuted instantiation: zebra_mroute.c:rib_dest_prefix
Unexecuted instantiation: zebra_nb.c:rib_dest_prefix
Unexecuted instantiation: zebra_nb_config.c:rib_dest_prefix
Unexecuted instantiation: zebra_nb_rpcs.c:rib_dest_prefix
Unexecuted instantiation: zebra_nb_state.c:rib_dest_prefix
Unexecuted instantiation: zebra_netns_id.c:rib_dest_prefix
Unexecuted instantiation: zebra_netns_notify.c:rib_dest_prefix
Unexecuted instantiation: zebra_nhg.c:rib_dest_prefix
Unexecuted instantiation: zebra_ns.c:rib_dest_prefix
Unexecuted instantiation: zebra_opaque.c:rib_dest_prefix
Unexecuted instantiation: zebra_pbr.c:rib_dest_prefix
Unexecuted instantiation: zebra_ptm.c:rib_dest_prefix
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_dest_prefix
Unexecuted instantiation: zebra_pw.c:rib_dest_prefix
Unexecuted instantiation: zebra_rib.c:rib_dest_prefix
Unexecuted instantiation: zebra_router.c:rib_dest_prefix
Unexecuted instantiation: zebra_rnh.c:rib_dest_prefix
Unexecuted instantiation: zebra_routemap.c:rib_dest_prefix
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_dest_prefix
Unexecuted instantiation: zebra_script.c:rib_dest_prefix
Unexecuted instantiation: zebra_srte.c:rib_dest_prefix
Unexecuted instantiation: zebra_tc.c:rib_dest_prefix
Unexecuted instantiation: zebra_vrf.c:rib_dest_prefix
Unexecuted instantiation: zebra_vty.c:rib_dest_prefix
Unexecuted instantiation: zebra_vxlan.c:rib_dest_prefix
Unexecuted instantiation: zebra_vxlan_if.c:rib_dest_prefix
Unexecuted instantiation: zebra_evpn_mh.c:rib_dest_prefix
Unexecuted instantiation: zebra_neigh.c:rib_dest_prefix
Unexecuted instantiation: zserv.c:rib_dest_prefix
Unexecuted instantiation: debug_nl.c:rib_dest_prefix
522
523
/*
524
 * rib_dest_af
525
 *
526
 * Returns the address family that the destination is for.
527
 */
528
static inline uint8_t rib_dest_af(rib_dest_t *dest)
529
0
{
530
0
  return dest->rnode->p.family;
531
0
}
Unexecuted instantiation: connected.c:rib_dest_af
Unexecuted instantiation: if_netlink.c:rib_dest_af
Unexecuted instantiation: interface.c:rib_dest_af
Unexecuted instantiation: ioctl.c:rib_dest_af
Unexecuted instantiation: kernel_netlink.c:rib_dest_af
Unexecuted instantiation: label_manager.c:rib_dest_af
Unexecuted instantiation: main.c:rib_dest_af
Unexecuted instantiation: netconf_netlink.c:rib_dest_af
Unexecuted instantiation: redistribute.c:rib_dest_af
Unexecuted instantiation: router-id.c:rib_dest_af
Unexecuted instantiation: rt_netlink.c:rib_dest_af
Unexecuted instantiation: rtadv.c:rib_dest_af
Unexecuted instantiation: rtread_netlink.c:rib_dest_af
Unexecuted instantiation: rule_netlink.c:rib_dest_af
Unexecuted instantiation: table_manager.c:rib_dest_af
Unexecuted instantiation: tc_netlink.c:rib_dest_af
Unexecuted instantiation: zapi_msg.c:rib_dest_af
Unexecuted instantiation: zebra_affinitymap.c:rib_dest_af
Unexecuted instantiation: zebra_dplane.c:rib_dest_af
Unexecuted instantiation: zebra_gr.c:rib_dest_af
Unexecuted instantiation: zebra_l2.c:rib_dest_af
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_dest_af
Unexecuted instantiation: zebra_evpn.c:rib_dest_af
Unexecuted instantiation: zebra_evpn_mac.c:rib_dest_af
Unexecuted instantiation: zebra_evpn_neigh.c:rib_dest_af
Unexecuted instantiation: zebra_mlag.c:rib_dest_af
Unexecuted instantiation: zebra_mlag_vty.c:rib_dest_af
Unexecuted instantiation: zebra_mpls.c:rib_dest_af
Unexecuted instantiation: zebra_mpls_netlink.c:rib_dest_af
Unexecuted instantiation: zebra_mpls_null.c:rib_dest_af
Unexecuted instantiation: zebra_mpls_vty.c:rib_dest_af
Unexecuted instantiation: zebra_srv6.c:rib_dest_af
Unexecuted instantiation: zebra_srv6_vty.c:rib_dest_af
Unexecuted instantiation: zebra_mroute.c:rib_dest_af
Unexecuted instantiation: zebra_nb.c:rib_dest_af
Unexecuted instantiation: zebra_nb_config.c:rib_dest_af
Unexecuted instantiation: zebra_nb_rpcs.c:rib_dest_af
Unexecuted instantiation: zebra_nb_state.c:rib_dest_af
Unexecuted instantiation: zebra_netns_id.c:rib_dest_af
Unexecuted instantiation: zebra_netns_notify.c:rib_dest_af
Unexecuted instantiation: zebra_nhg.c:rib_dest_af
Unexecuted instantiation: zebra_ns.c:rib_dest_af
Unexecuted instantiation: zebra_opaque.c:rib_dest_af
Unexecuted instantiation: zebra_pbr.c:rib_dest_af
Unexecuted instantiation: zebra_ptm.c:rib_dest_af
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_dest_af
Unexecuted instantiation: zebra_pw.c:rib_dest_af
Unexecuted instantiation: zebra_rib.c:rib_dest_af
Unexecuted instantiation: zebra_router.c:rib_dest_af
Unexecuted instantiation: zebra_rnh.c:rib_dest_af
Unexecuted instantiation: zebra_routemap.c:rib_dest_af
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_dest_af
Unexecuted instantiation: zebra_script.c:rib_dest_af
Unexecuted instantiation: zebra_srte.c:rib_dest_af
Unexecuted instantiation: zebra_tc.c:rib_dest_af
Unexecuted instantiation: zebra_vrf.c:rib_dest_af
Unexecuted instantiation: zebra_vty.c:rib_dest_af
Unexecuted instantiation: zebra_vxlan.c:rib_dest_af
Unexecuted instantiation: zebra_vxlan_if.c:rib_dest_af
Unexecuted instantiation: zebra_evpn_mh.c:rib_dest_af
Unexecuted instantiation: zebra_neigh.c:rib_dest_af
Unexecuted instantiation: zserv.c:rib_dest_af
Unexecuted instantiation: debug_nl.c:rib_dest_af
532
533
/*
534
 * rib_dest_table
535
 */
536
static inline struct route_table *rib_dest_table(rib_dest_t *dest)
537
0
{
538
0
  return srcdest_rnode_table(dest->rnode);
539
0
}
Unexecuted instantiation: connected.c:rib_dest_table
Unexecuted instantiation: if_netlink.c:rib_dest_table
Unexecuted instantiation: interface.c:rib_dest_table
Unexecuted instantiation: ioctl.c:rib_dest_table
Unexecuted instantiation: kernel_netlink.c:rib_dest_table
Unexecuted instantiation: label_manager.c:rib_dest_table
Unexecuted instantiation: main.c:rib_dest_table
Unexecuted instantiation: netconf_netlink.c:rib_dest_table
Unexecuted instantiation: redistribute.c:rib_dest_table
Unexecuted instantiation: router-id.c:rib_dest_table
Unexecuted instantiation: rt_netlink.c:rib_dest_table
Unexecuted instantiation: rtadv.c:rib_dest_table
Unexecuted instantiation: rtread_netlink.c:rib_dest_table
Unexecuted instantiation: rule_netlink.c:rib_dest_table
Unexecuted instantiation: table_manager.c:rib_dest_table
Unexecuted instantiation: tc_netlink.c:rib_dest_table
Unexecuted instantiation: zapi_msg.c:rib_dest_table
Unexecuted instantiation: zebra_affinitymap.c:rib_dest_table
Unexecuted instantiation: zebra_dplane.c:rib_dest_table
Unexecuted instantiation: zebra_gr.c:rib_dest_table
Unexecuted instantiation: zebra_l2.c:rib_dest_table
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_dest_table
Unexecuted instantiation: zebra_evpn.c:rib_dest_table
Unexecuted instantiation: zebra_evpn_mac.c:rib_dest_table
Unexecuted instantiation: zebra_evpn_neigh.c:rib_dest_table
Unexecuted instantiation: zebra_mlag.c:rib_dest_table
Unexecuted instantiation: zebra_mlag_vty.c:rib_dest_table
Unexecuted instantiation: zebra_mpls.c:rib_dest_table
Unexecuted instantiation: zebra_mpls_netlink.c:rib_dest_table
Unexecuted instantiation: zebra_mpls_null.c:rib_dest_table
Unexecuted instantiation: zebra_mpls_vty.c:rib_dest_table
Unexecuted instantiation: zebra_srv6.c:rib_dest_table
Unexecuted instantiation: zebra_srv6_vty.c:rib_dest_table
Unexecuted instantiation: zebra_mroute.c:rib_dest_table
Unexecuted instantiation: zebra_nb.c:rib_dest_table
Unexecuted instantiation: zebra_nb_config.c:rib_dest_table
Unexecuted instantiation: zebra_nb_rpcs.c:rib_dest_table
Unexecuted instantiation: zebra_nb_state.c:rib_dest_table
Unexecuted instantiation: zebra_netns_id.c:rib_dest_table
Unexecuted instantiation: zebra_netns_notify.c:rib_dest_table
Unexecuted instantiation: zebra_nhg.c:rib_dest_table
Unexecuted instantiation: zebra_ns.c:rib_dest_table
Unexecuted instantiation: zebra_opaque.c:rib_dest_table
Unexecuted instantiation: zebra_pbr.c:rib_dest_table
Unexecuted instantiation: zebra_ptm.c:rib_dest_table
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_dest_table
Unexecuted instantiation: zebra_pw.c:rib_dest_table
Unexecuted instantiation: zebra_rib.c:rib_dest_table
Unexecuted instantiation: zebra_router.c:rib_dest_table
Unexecuted instantiation: zebra_rnh.c:rib_dest_table
Unexecuted instantiation: zebra_routemap.c:rib_dest_table
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_dest_table
Unexecuted instantiation: zebra_script.c:rib_dest_table
Unexecuted instantiation: zebra_srte.c:rib_dest_table
Unexecuted instantiation: zebra_tc.c:rib_dest_table
Unexecuted instantiation: zebra_vrf.c:rib_dest_table
Unexecuted instantiation: zebra_vty.c:rib_dest_table
Unexecuted instantiation: zebra_vxlan.c:rib_dest_table
Unexecuted instantiation: zebra_vxlan_if.c:rib_dest_table
Unexecuted instantiation: zebra_evpn_mh.c:rib_dest_table
Unexecuted instantiation: zebra_neigh.c:rib_dest_table
Unexecuted instantiation: zserv.c:rib_dest_table
Unexecuted instantiation: debug_nl.c:rib_dest_table
540
541
/*
542
 * rib_dest_vrf
543
 */
544
static inline struct zebra_vrf *rib_dest_vrf(rib_dest_t *dest)
545
0
{
546
0
  return rib_table_info(rib_dest_table(dest))->zvrf;
547
0
}
Unexecuted instantiation: connected.c:rib_dest_vrf
Unexecuted instantiation: if_netlink.c:rib_dest_vrf
Unexecuted instantiation: interface.c:rib_dest_vrf
Unexecuted instantiation: ioctl.c:rib_dest_vrf
Unexecuted instantiation: kernel_netlink.c:rib_dest_vrf
Unexecuted instantiation: label_manager.c:rib_dest_vrf
Unexecuted instantiation: main.c:rib_dest_vrf
Unexecuted instantiation: netconf_netlink.c:rib_dest_vrf
Unexecuted instantiation: redistribute.c:rib_dest_vrf
Unexecuted instantiation: router-id.c:rib_dest_vrf
Unexecuted instantiation: rt_netlink.c:rib_dest_vrf
Unexecuted instantiation: rtadv.c:rib_dest_vrf
Unexecuted instantiation: rtread_netlink.c:rib_dest_vrf
Unexecuted instantiation: rule_netlink.c:rib_dest_vrf
Unexecuted instantiation: table_manager.c:rib_dest_vrf
Unexecuted instantiation: tc_netlink.c:rib_dest_vrf
Unexecuted instantiation: zapi_msg.c:rib_dest_vrf
Unexecuted instantiation: zebra_affinitymap.c:rib_dest_vrf
Unexecuted instantiation: zebra_dplane.c:rib_dest_vrf
Unexecuted instantiation: zebra_gr.c:rib_dest_vrf
Unexecuted instantiation: zebra_l2.c:rib_dest_vrf
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_dest_vrf
Unexecuted instantiation: zebra_evpn.c:rib_dest_vrf
Unexecuted instantiation: zebra_evpn_mac.c:rib_dest_vrf
Unexecuted instantiation: zebra_evpn_neigh.c:rib_dest_vrf
Unexecuted instantiation: zebra_mlag.c:rib_dest_vrf
Unexecuted instantiation: zebra_mlag_vty.c:rib_dest_vrf
Unexecuted instantiation: zebra_mpls.c:rib_dest_vrf
Unexecuted instantiation: zebra_mpls_netlink.c:rib_dest_vrf
Unexecuted instantiation: zebra_mpls_null.c:rib_dest_vrf
Unexecuted instantiation: zebra_mpls_vty.c:rib_dest_vrf
Unexecuted instantiation: zebra_srv6.c:rib_dest_vrf
Unexecuted instantiation: zebra_srv6_vty.c:rib_dest_vrf
Unexecuted instantiation: zebra_mroute.c:rib_dest_vrf
Unexecuted instantiation: zebra_nb.c:rib_dest_vrf
Unexecuted instantiation: zebra_nb_config.c:rib_dest_vrf
Unexecuted instantiation: zebra_nb_rpcs.c:rib_dest_vrf
Unexecuted instantiation: zebra_nb_state.c:rib_dest_vrf
Unexecuted instantiation: zebra_netns_id.c:rib_dest_vrf
Unexecuted instantiation: zebra_netns_notify.c:rib_dest_vrf
Unexecuted instantiation: zebra_nhg.c:rib_dest_vrf
Unexecuted instantiation: zebra_ns.c:rib_dest_vrf
Unexecuted instantiation: zebra_opaque.c:rib_dest_vrf
Unexecuted instantiation: zebra_pbr.c:rib_dest_vrf
Unexecuted instantiation: zebra_ptm.c:rib_dest_vrf
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_dest_vrf
Unexecuted instantiation: zebra_pw.c:rib_dest_vrf
Unexecuted instantiation: zebra_rib.c:rib_dest_vrf
Unexecuted instantiation: zebra_router.c:rib_dest_vrf
Unexecuted instantiation: zebra_rnh.c:rib_dest_vrf
Unexecuted instantiation: zebra_routemap.c:rib_dest_vrf
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_dest_vrf
Unexecuted instantiation: zebra_script.c:rib_dest_vrf
Unexecuted instantiation: zebra_srte.c:rib_dest_vrf
Unexecuted instantiation: zebra_tc.c:rib_dest_vrf
Unexecuted instantiation: zebra_vrf.c:rib_dest_vrf
Unexecuted instantiation: zebra_vty.c:rib_dest_vrf
Unexecuted instantiation: zebra_vxlan.c:rib_dest_vrf
Unexecuted instantiation: zebra_vxlan_if.c:rib_dest_vrf
Unexecuted instantiation: zebra_evpn_mh.c:rib_dest_vrf
Unexecuted instantiation: zebra_neigh.c:rib_dest_vrf
Unexecuted instantiation: zserv.c:rib_dest_vrf
Unexecuted instantiation: debug_nl.c:rib_dest_vrf
548
549
/*
550
 * Create the rib_dest_t and attach it to the specified node
551
 */
552
extern rib_dest_t *zebra_rib_create_dest(struct route_node *rn);
553
554
/*
555
 * rib_tables_iter_init
556
 */
557
static inline void rib_tables_iter_init(rib_tables_iter_t *iter)
558
559
0
{
560
0
  memset(iter, 0, sizeof(*iter));
561
0
  iter->state = RIB_TABLES_ITER_S_INIT;
562
0
}
Unexecuted instantiation: connected.c:rib_tables_iter_init
Unexecuted instantiation: if_netlink.c:rib_tables_iter_init
Unexecuted instantiation: interface.c:rib_tables_iter_init
Unexecuted instantiation: ioctl.c:rib_tables_iter_init
Unexecuted instantiation: kernel_netlink.c:rib_tables_iter_init
Unexecuted instantiation: label_manager.c:rib_tables_iter_init
Unexecuted instantiation: main.c:rib_tables_iter_init
Unexecuted instantiation: netconf_netlink.c:rib_tables_iter_init
Unexecuted instantiation: redistribute.c:rib_tables_iter_init
Unexecuted instantiation: router-id.c:rib_tables_iter_init
Unexecuted instantiation: rt_netlink.c:rib_tables_iter_init
Unexecuted instantiation: rtadv.c:rib_tables_iter_init
Unexecuted instantiation: rtread_netlink.c:rib_tables_iter_init
Unexecuted instantiation: rule_netlink.c:rib_tables_iter_init
Unexecuted instantiation: table_manager.c:rib_tables_iter_init
Unexecuted instantiation: tc_netlink.c:rib_tables_iter_init
Unexecuted instantiation: zapi_msg.c:rib_tables_iter_init
Unexecuted instantiation: zebra_affinitymap.c:rib_tables_iter_init
Unexecuted instantiation: zebra_dplane.c:rib_tables_iter_init
Unexecuted instantiation: zebra_gr.c:rib_tables_iter_init
Unexecuted instantiation: zebra_l2.c:rib_tables_iter_init
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_tables_iter_init
Unexecuted instantiation: zebra_evpn.c:rib_tables_iter_init
Unexecuted instantiation: zebra_evpn_mac.c:rib_tables_iter_init
Unexecuted instantiation: zebra_evpn_neigh.c:rib_tables_iter_init
Unexecuted instantiation: zebra_mlag.c:rib_tables_iter_init
Unexecuted instantiation: zebra_mlag_vty.c:rib_tables_iter_init
Unexecuted instantiation: zebra_mpls.c:rib_tables_iter_init
Unexecuted instantiation: zebra_mpls_netlink.c:rib_tables_iter_init
Unexecuted instantiation: zebra_mpls_null.c:rib_tables_iter_init
Unexecuted instantiation: zebra_mpls_vty.c:rib_tables_iter_init
Unexecuted instantiation: zebra_srv6.c:rib_tables_iter_init
Unexecuted instantiation: zebra_srv6_vty.c:rib_tables_iter_init
Unexecuted instantiation: zebra_mroute.c:rib_tables_iter_init
Unexecuted instantiation: zebra_nb.c:rib_tables_iter_init
Unexecuted instantiation: zebra_nb_config.c:rib_tables_iter_init
Unexecuted instantiation: zebra_nb_rpcs.c:rib_tables_iter_init
Unexecuted instantiation: zebra_nb_state.c:rib_tables_iter_init
Unexecuted instantiation: zebra_netns_id.c:rib_tables_iter_init
Unexecuted instantiation: zebra_netns_notify.c:rib_tables_iter_init
Unexecuted instantiation: zebra_nhg.c:rib_tables_iter_init
Unexecuted instantiation: zebra_ns.c:rib_tables_iter_init
Unexecuted instantiation: zebra_opaque.c:rib_tables_iter_init
Unexecuted instantiation: zebra_pbr.c:rib_tables_iter_init
Unexecuted instantiation: zebra_ptm.c:rib_tables_iter_init
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_tables_iter_init
Unexecuted instantiation: zebra_pw.c:rib_tables_iter_init
Unexecuted instantiation: zebra_rib.c:rib_tables_iter_init
Unexecuted instantiation: zebra_router.c:rib_tables_iter_init
Unexecuted instantiation: zebra_rnh.c:rib_tables_iter_init
Unexecuted instantiation: zebra_routemap.c:rib_tables_iter_init
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_tables_iter_init
Unexecuted instantiation: zebra_script.c:rib_tables_iter_init
Unexecuted instantiation: zebra_srte.c:rib_tables_iter_init
Unexecuted instantiation: zebra_tc.c:rib_tables_iter_init
Unexecuted instantiation: zebra_vrf.c:rib_tables_iter_init
Unexecuted instantiation: zebra_vty.c:rib_tables_iter_init
Unexecuted instantiation: zebra_vxlan.c:rib_tables_iter_init
Unexecuted instantiation: zebra_vxlan_if.c:rib_tables_iter_init
Unexecuted instantiation: zebra_evpn_mh.c:rib_tables_iter_init
Unexecuted instantiation: zebra_neigh.c:rib_tables_iter_init
Unexecuted instantiation: zserv.c:rib_tables_iter_init
Unexecuted instantiation: debug_nl.c:rib_tables_iter_init
563
564
/*
565
 * rib_tables_iter_started
566
 *
567
 * Returns true if this iterator has started iterating over the set of
568
 * tables.
569
 */
570
static inline int rib_tables_iter_started(rib_tables_iter_t *iter)
571
0
{
572
0
  return iter->state != RIB_TABLES_ITER_S_INIT;
573
0
}
Unexecuted instantiation: connected.c:rib_tables_iter_started
Unexecuted instantiation: if_netlink.c:rib_tables_iter_started
Unexecuted instantiation: interface.c:rib_tables_iter_started
Unexecuted instantiation: ioctl.c:rib_tables_iter_started
Unexecuted instantiation: kernel_netlink.c:rib_tables_iter_started
Unexecuted instantiation: label_manager.c:rib_tables_iter_started
Unexecuted instantiation: main.c:rib_tables_iter_started
Unexecuted instantiation: netconf_netlink.c:rib_tables_iter_started
Unexecuted instantiation: redistribute.c:rib_tables_iter_started
Unexecuted instantiation: router-id.c:rib_tables_iter_started
Unexecuted instantiation: rt_netlink.c:rib_tables_iter_started
Unexecuted instantiation: rtadv.c:rib_tables_iter_started
Unexecuted instantiation: rtread_netlink.c:rib_tables_iter_started
Unexecuted instantiation: rule_netlink.c:rib_tables_iter_started
Unexecuted instantiation: table_manager.c:rib_tables_iter_started
Unexecuted instantiation: tc_netlink.c:rib_tables_iter_started
Unexecuted instantiation: zapi_msg.c:rib_tables_iter_started
Unexecuted instantiation: zebra_affinitymap.c:rib_tables_iter_started
Unexecuted instantiation: zebra_dplane.c:rib_tables_iter_started
Unexecuted instantiation: zebra_gr.c:rib_tables_iter_started
Unexecuted instantiation: zebra_l2.c:rib_tables_iter_started
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_tables_iter_started
Unexecuted instantiation: zebra_evpn.c:rib_tables_iter_started
Unexecuted instantiation: zebra_evpn_mac.c:rib_tables_iter_started
Unexecuted instantiation: zebra_evpn_neigh.c:rib_tables_iter_started
Unexecuted instantiation: zebra_mlag.c:rib_tables_iter_started
Unexecuted instantiation: zebra_mlag_vty.c:rib_tables_iter_started
Unexecuted instantiation: zebra_mpls.c:rib_tables_iter_started
Unexecuted instantiation: zebra_mpls_netlink.c:rib_tables_iter_started
Unexecuted instantiation: zebra_mpls_null.c:rib_tables_iter_started
Unexecuted instantiation: zebra_mpls_vty.c:rib_tables_iter_started
Unexecuted instantiation: zebra_srv6.c:rib_tables_iter_started
Unexecuted instantiation: zebra_srv6_vty.c:rib_tables_iter_started
Unexecuted instantiation: zebra_mroute.c:rib_tables_iter_started
Unexecuted instantiation: zebra_nb.c:rib_tables_iter_started
Unexecuted instantiation: zebra_nb_config.c:rib_tables_iter_started
Unexecuted instantiation: zebra_nb_rpcs.c:rib_tables_iter_started
Unexecuted instantiation: zebra_nb_state.c:rib_tables_iter_started
Unexecuted instantiation: zebra_netns_id.c:rib_tables_iter_started
Unexecuted instantiation: zebra_netns_notify.c:rib_tables_iter_started
Unexecuted instantiation: zebra_nhg.c:rib_tables_iter_started
Unexecuted instantiation: zebra_ns.c:rib_tables_iter_started
Unexecuted instantiation: zebra_opaque.c:rib_tables_iter_started
Unexecuted instantiation: zebra_pbr.c:rib_tables_iter_started
Unexecuted instantiation: zebra_ptm.c:rib_tables_iter_started
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_tables_iter_started
Unexecuted instantiation: zebra_pw.c:rib_tables_iter_started
Unexecuted instantiation: zebra_rib.c:rib_tables_iter_started
Unexecuted instantiation: zebra_router.c:rib_tables_iter_started
Unexecuted instantiation: zebra_rnh.c:rib_tables_iter_started
Unexecuted instantiation: zebra_routemap.c:rib_tables_iter_started
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_tables_iter_started
Unexecuted instantiation: zebra_script.c:rib_tables_iter_started
Unexecuted instantiation: zebra_srte.c:rib_tables_iter_started
Unexecuted instantiation: zebra_tc.c:rib_tables_iter_started
Unexecuted instantiation: zebra_vrf.c:rib_tables_iter_started
Unexecuted instantiation: zebra_vty.c:rib_tables_iter_started
Unexecuted instantiation: zebra_vxlan.c:rib_tables_iter_started
Unexecuted instantiation: zebra_vxlan_if.c:rib_tables_iter_started
Unexecuted instantiation: zebra_evpn_mh.c:rib_tables_iter_started
Unexecuted instantiation: zebra_neigh.c:rib_tables_iter_started
Unexecuted instantiation: zserv.c:rib_tables_iter_started
Unexecuted instantiation: debug_nl.c:rib_tables_iter_started
574
575
/*
576
 * rib_tables_iter_cleanup
577
 */
578
static inline void rib_tables_iter_cleanup(rib_tables_iter_t *iter)
579
0
{
580
0
  iter->state = RIB_TABLES_ITER_S_DONE;
581
0
}
Unexecuted instantiation: connected.c:rib_tables_iter_cleanup
Unexecuted instantiation: if_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: interface.c:rib_tables_iter_cleanup
Unexecuted instantiation: ioctl.c:rib_tables_iter_cleanup
Unexecuted instantiation: kernel_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: label_manager.c:rib_tables_iter_cleanup
Unexecuted instantiation: main.c:rib_tables_iter_cleanup
Unexecuted instantiation: netconf_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: redistribute.c:rib_tables_iter_cleanup
Unexecuted instantiation: router-id.c:rib_tables_iter_cleanup
Unexecuted instantiation: rt_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: rtadv.c:rib_tables_iter_cleanup
Unexecuted instantiation: rtread_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: rule_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: table_manager.c:rib_tables_iter_cleanup
Unexecuted instantiation: tc_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: zapi_msg.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_affinitymap.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_dplane.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_gr.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_l2.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_evpn.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_evpn_mac.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_evpn_neigh.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_mlag.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_mlag_vty.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_mpls.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_mpls_netlink.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_mpls_null.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_mpls_vty.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_srv6.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_srv6_vty.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_mroute.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_nb.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_nb_config.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_nb_rpcs.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_nb_state.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_netns_id.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_netns_notify.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_nhg.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_ns.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_opaque.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_pbr.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_ptm.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_pw.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_rib.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_router.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_rnh.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_routemap.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_script.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_srte.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_tc.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_vrf.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_vty.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_vxlan.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_vxlan_if.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_evpn_mh.c:rib_tables_iter_cleanup
Unexecuted instantiation: zebra_neigh.c:rib_tables_iter_cleanup
Unexecuted instantiation: zserv.c:rib_tables_iter_cleanup
Unexecuted instantiation: debug_nl.c:rib_tables_iter_cleanup
582
583
DECLARE_HOOK(rib_update, (struct route_node * rn, const char *reason),
584
       (rn, reason));
585
DECLARE_HOOK(rib_shutdown, (struct route_node * rn), (rn));
586
587
/*
588
 * Access installed/fib nexthops, which may be a subset of the
589
 * rib nexthops.
590
 */
591
static inline struct nexthop_group *rib_get_fib_nhg(struct route_entry *re)
592
0
{
593
  /* If the fib set is a subset of the active rib set,
594
   * use the dedicated fib list.
595
   */
596
0
  if (CHECK_FLAG(re->status, ROUTE_ENTRY_USE_FIB_NHG))
597
0
    return &(re->fib_ng);
598
0
  else
599
0
    return &(re->nhe->nhg);
600
0
}
Unexecuted instantiation: connected.c:rib_get_fib_nhg
Unexecuted instantiation: if_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: interface.c:rib_get_fib_nhg
Unexecuted instantiation: ioctl.c:rib_get_fib_nhg
Unexecuted instantiation: kernel_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: label_manager.c:rib_get_fib_nhg
Unexecuted instantiation: main.c:rib_get_fib_nhg
Unexecuted instantiation: netconf_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: redistribute.c:rib_get_fib_nhg
Unexecuted instantiation: router-id.c:rib_get_fib_nhg
Unexecuted instantiation: rt_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: rtadv.c:rib_get_fib_nhg
Unexecuted instantiation: rtread_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: rule_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: table_manager.c:rib_get_fib_nhg
Unexecuted instantiation: tc_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: zapi_msg.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_affinitymap.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_dplane.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_gr.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_l2.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_evpn.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_evpn_mac.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_evpn_neigh.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_mlag.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_mlag_vty.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_mpls.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_mpls_netlink.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_mpls_null.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_mpls_vty.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_srv6.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_srv6_vty.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_mroute.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_nb.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_nb_config.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_nb_rpcs.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_nb_state.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_netns_id.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_netns_notify.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_nhg.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_ns.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_opaque.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_pbr.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_ptm.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_pw.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_rib.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_router.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_rnh.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_routemap.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_script.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_srte.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_tc.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_vrf.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_vty.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_vxlan.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_vxlan_if.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_evpn_mh.c:rib_get_fib_nhg
Unexecuted instantiation: zebra_neigh.c:rib_get_fib_nhg
Unexecuted instantiation: zserv.c:rib_get_fib_nhg
Unexecuted instantiation: debug_nl.c:rib_get_fib_nhg
601
602
/*
603
 * Access backup nexthop-group that represents the installed backup nexthops;
604
 * any installed backup will be on the fib list.
605
 */
606
static inline struct nexthop_group *rib_get_fib_backup_nhg(
607
  struct route_entry *re)
608
0
{
609
0
  return &(re->fib_backup_ng);
610
0
}
Unexecuted instantiation: connected.c:rib_get_fib_backup_nhg
Unexecuted instantiation: if_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: interface.c:rib_get_fib_backup_nhg
Unexecuted instantiation: ioctl.c:rib_get_fib_backup_nhg
Unexecuted instantiation: kernel_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: label_manager.c:rib_get_fib_backup_nhg
Unexecuted instantiation: main.c:rib_get_fib_backup_nhg
Unexecuted instantiation: netconf_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: redistribute.c:rib_get_fib_backup_nhg
Unexecuted instantiation: router-id.c:rib_get_fib_backup_nhg
Unexecuted instantiation: rt_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: rtadv.c:rib_get_fib_backup_nhg
Unexecuted instantiation: rtread_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: rule_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: table_manager.c:rib_get_fib_backup_nhg
Unexecuted instantiation: tc_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zapi_msg.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_affinitymap.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_dplane.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_gr.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_l2.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_l2_bridge_if.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_evpn.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_evpn_mac.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_evpn_neigh.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_mlag.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_mlag_vty.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_mpls.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_mpls_netlink.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_mpls_null.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_mpls_vty.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_srv6.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_srv6_vty.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_mroute.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_nb.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_nb_config.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_nb_rpcs.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_nb_state.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_netns_id.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_netns_notify.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_nhg.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_ns.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_opaque.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_pbr.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_ptm.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_ptm_redistribute.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_pw.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_rib.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_router.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_rnh.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_routemap.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_routemap_nb_config.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_script.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_srte.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_tc.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_vrf.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_vty.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_vxlan.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_vxlan_if.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_evpn_mh.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zebra_neigh.c:rib_get_fib_backup_nhg
Unexecuted instantiation: zserv.c:rib_get_fib_backup_nhg
Unexecuted instantiation: debug_nl.c:rib_get_fib_backup_nhg
611
612
extern void zebra_gr_process_client(afi_t afi, vrf_id_t vrf_id, uint8_t proto,
613
            uint8_t instance);
614
615
extern int rib_add_gr_run(afi_t afi, vrf_id_t vrf_id, uint8_t proto,
616
        uint8_t instance);
617
618
extern void zebra_vty_init(void);
619
620
extern pid_t pid;
621
622
extern bool v6_rr_semantics;
623
624
/* Name of hook calls */
625
#define ZEBRA_ON_RIB_PROCESS_HOOK_CALL "on_rib_process_dplane_results"
626
627
#ifdef __cplusplus
628
}
629
#endif
630
631
#endif /*_ZEBRA_RIB_H */