FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
fib_entry_t_ Struct Reference

An entry in a FIB table. More...

+ Collaboration diagram for fib_entry_t_:

Data Fields

fib_node_t fe_node
 Base class. More...
 
const fib_prefix_t fe_prefix
 The prefix of the route. More...
 
u32 fe_fib_index
 The index of the FIB table this entry is in. More...
 
dpo_id_t fe_lb
 The load-balance used for forwarding. More...
 
fib_entry_src_tfe_srcs
 Vector of source infos. More...
 
fib_node_index_t fe_parent
 the path-list for which this entry is a child. More...
 
u32 fe_sibling
 index of this entry in the parent's child list. More...
 
index_tfe_delegates
 A vector of delegate indices. More...
 

Detailed Description

An entry in a FIB table.

This entry represents a route added to the FIB that is stored in one of the FIB tables.

Definition at line 305 of file fib_entry.h.

Field Documentation

◆ fe_delegates

index_t* fib_entry_t_::fe_delegates

A vector of delegate indices.

Definition at line 353 of file fib_entry.h.

◆ fe_fib_index

u32 fib_entry_t_::fe_fib_index

The index of the FIB table this entry is in.

Definition at line 318 of file fib_entry.h.

◆ fe_lb

dpo_id_t fib_entry_t_::fe_lb

The load-balance used for forwarding.

We don't share the EOS and non-EOS even in case when they could be because:

  • complexity & reliability v. memory determining the conditions where sharing is possible is non-trivial.
  • separate LBs means we can get the EOS bit right in the MPLS label DPO and so save a few clock cycles in the DP imposition node since we can paint the header straight on without the need to check the packet type to derive the EOS bit value.

Definition at line 331 of file fib_entry.h.

◆ fe_node

fib_node_t fib_entry_t_::fe_node

Base class.

The entry's node representation in the graph.

Definition at line 309 of file fib_entry.h.

◆ fe_parent

fib_node_index_t fib_entry_t_::fe_parent

the path-list for which this entry is a child.

This is also the path-list that is contributing forwarding for this entry.

Definition at line 342 of file fib_entry.h.

◆ fe_prefix

const fib_prefix_t fib_entry_t_::fe_prefix

The prefix of the route.

this is const just to be sure. It is the entry's key/identity and so should never change.

Definition at line 314 of file fib_entry.h.

◆ fe_sibling

u32 fib_entry_t_::fe_sibling

index of this entry in the parent's child list.

This is set when this entry is added as a child, but can also be changed by the parent as it manages its list.

Definition at line 348 of file fib_entry.h.

◆ fe_srcs

fib_entry_src_t* fib_entry_t_::fe_srcs

Vector of source infos.

Most entries will only have 1 source. So we optimise for memory usage, which is preferable since we have many entries.

Definition at line 337 of file fib_entry.h.


The documentation for this struct was generated from the following file: