FD.io VPP  v17.04.2-2-ga8f93f8
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...
 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...
 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 373 of file fib_entry.h.

Field Documentation

fib_entry_delegate_t* fib_entry_t_::fe_delegates

A vector of delegates.

Definition at line 421 of file fib_entry.h.

u32 fib_entry_t_::fe_fib_index

The index of the FIB table this entry is in.

Definition at line 386 of file fib_entry.h.

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 399 of file fib_entry.h.

fib_node_t fib_entry_t_::fe_node

Base class.

The entry's node representation in the graph.

Definition at line 377 of file fib_entry.h.

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 410 of file fib_entry.h.

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 382 of file fib_entry.h.

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 416 of file fib_entry.h.

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 405 of file fib_entry.h.

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