FD.io VPP  v19.01.3-6-g70449b9b9
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...
 
fib_entry_delegate_tfe_delegates
 A vector of delegates. 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 462 of file fib_entry.h.

Field Documentation

◆ fe_delegates

fib_entry_delegate_t* fib_entry_t_::fe_delegates

A vector of delegates.

Definition at line 510 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 475 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 488 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 466 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 499 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 471 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 505 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 494 of file fib_entry.h.


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