FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
fib_path_t_ Struct Reference

A FIB path. More...

+ Collaboration diagram for fib_path_t_:

Public Member Functions

 STRUCT_MARK (path_hash_start)
 This marks the start of the memory area used to hash the path. More...
 
 STRUCT_MARK (path_hash_end)
 

Data Fields

fib_node_t fp_node
 A path is a node in the FIB graph. More...
 
u32 fp_pl_index
 The index of the path-list to which this path belongs. More...
 
fib_path_cfg_flags_t fp_cfg_flags
 Configuration Flags. More...
 
fib_path_type_t fp_type
 The type of the path. More...
 
dpo_proto_t fp_nh_proto
 The protocol of the next-hop, i.e. More...
 
u8 fp_weight
 UCMP [unnormalised] weigth. More...
 
u8 fp_preference
 A path preference. More...
 
union {
   struct {
      ip46_address_t   fp_nh
 The next-hop. More...
 
      u32   fp_interface
 The interface. More...
 
   }   attached_next_hop
 
   struct {
      u32   fp_interface
 The interface. More...
 
   }   attached
 
   struct {
      union {
         ip46_address_t   fp_ip
 The next-hop. More...
 
         struct {
            mpls_label_t   fp_local_label
 The local label to resolve through. More...
 
            mpls_eos_bit_t   fp_eos
 The EOS bit of the resolving label. More...
 
         } 
 
      }   fp_nh
 
      union {
         fib_node_index_t   fp_tbl_id
 The FIB table index in which to find the next-hop. More...
 
         index_t   fp_bier_fib
 The BIER FIB the fmask is in. More...
 
      } 
 
   }   recursive
 
   struct {
      index_t   fp_bier_fmask
 BIER FMask ID. More...
 
   }   bier_fmask
 
   struct {
      bier_table_id_t   fp_bier_tbl
 The BIER table's ID. More...
 
   }   bier_table
 
   struct {
      index_t   fp_bier_imp
 The BIER imposition object this is part of the path's key, since the index_t of an imposition object is the object's key. More...
 
   }   bier_imp
 
   struct {
      fib_node_index_t   fp_tbl_id
 The FIB index in which to perfom the next lookup. More...
 
      fib_rpf_id_t   fp_rpf_id
 The RPF-ID to tag the packets with. More...
 
   }   deag
 
   struct {
   }   special
 
   struct {
      dpo_id_t   fp_ex_dpo
 The user provided 'exclusive' DPO. More...
 
   }   exclusive
 
   struct {
      u32   fp_interface
 The interface on which the local address is configured. More...
 
      ip46_address_t   fp_addr
 The next-hop. More...
 
   }   receive
 
   struct {
      u32   fp_interface
 The interface on which the packets will be input. More...
 
   }   intf_rx
 
   struct {
      u32   fp_udp_encap_id
 The UDP Encap object this path resolves through. More...
 
   }   udp_encap
 
   struct {
      u32   fp_classify_table_id
 The UDP Encap object this path resolves through. More...
 
   }   classify
 
   struct {
      u32   fp_interface
 The interface. More...
 
   }   dvr
 
}; 
 per-type union of the data required to resolve the path More...
 
fib_path_oper_flags_t fp_oper_flags
 Memebers in this last section represent information that is dervied during resolution. More...
 
union {
   fib_node_index_t   fp_via_fib
 the resolving via fib. More...
 
   index_t   fp_via_bier_tbl
 the resolving bier-table More...
 
   index_t   fp_via_bier_fmask
 the resolving bier-fmask More...
 
}; 
 
dpo_id_t fp_dpo
 The Data-path objects through which this path resolves for IP. More...
 
u32 fp_sibling
 the index of this path in the parent's child list. More...
 

Detailed Description

A FIB path.

Definition at line 201 of file fib_path.c.

Member Function Documentation

◆ STRUCT_MARK() [1/2]

fib_path_t_::STRUCT_MARK ( path_hash_start  )

This marks the start of the memory area used to hash the path.

◆ STRUCT_MARK() [2/2]

fib_path_t_::STRUCT_MARK ( path_hash_end  )

Field Documentation

◆ @217

union { ... }

per-type union of the data required to resolve the path

◆ @219

union { ... }

◆ attached

struct { ... } fib_path_t_::attached

◆ attached_next_hop

struct { ... } fib_path_t_::attached_next_hop

◆ bier_fmask

struct { ... } fib_path_t_::bier_fmask

◆ bier_imp

struct { ... } fib_path_t_::bier_imp

◆ bier_table

struct { ... } fib_path_t_::bier_table

◆ classify

struct { ... } fib_path_t_::classify

◆ deag

struct { ... } fib_path_t_::deag

◆ dvr

struct { ... } fib_path_t_::dvr

◆ exclusive

struct { ... } fib_path_t_::exclusive

◆ fp_addr

ip46_address_t fib_path_t_::fp_addr

The next-hop.

Definition at line 342 of file fib_path.c.

◆ fp_bier_fib

index_t fib_path_t_::fp_bier_fib

The BIER FIB the fmask is in.

Definition at line 293 of file fib_path.c.

◆ fp_bier_fmask

index_t fib_path_t_::fp_bier_fmask

BIER FMask ID.

Definition at line 300 of file fib_path.c.

◆ fp_bier_imp

index_t fib_path_t_::fp_bier_imp

The BIER imposition object this is part of the path's key, since the index_t of an imposition object is the object's key.

Definition at line 314 of file fib_path.c.

◆ fp_bier_tbl

bier_table_id_t fib_path_t_::fp_bier_tbl

The BIER table's ID.

Definition at line 306 of file fib_path.c.

◆ fp_cfg_flags

fib_path_cfg_flags_t fib_path_t_::fp_cfg_flags

Configuration Flags.

Definition at line 221 of file fib_path.c.

◆ fp_classify_table_id

u32 fib_path_t_::fp_classify_table_id

The UDP Encap object this path resolves through.

Definition at line 360 of file fib_path.c.

◆ fp_dpo

dpo_id_t fib_path_t_::fp_dpo

The Data-path objects through which this path resolves for IP.

Definition at line 401 of file fib_path.c.

◆ fp_eos

mpls_eos_bit_t fib_path_t_::fp_eos

The EOS bit of the resolving label.

Definition at line 282 of file fib_path.c.

◆ fp_ex_dpo

dpo_id_t fib_path_t_::fp_ex_dpo

The user provided 'exclusive' DPO.

Definition at line 332 of file fib_path.c.

◆ fp_interface

u32 fib_path_t_::fp_interface

The interface.

The interface on which the packets will be input.

The interface on which the local address is configured.

Definition at line 259 of file fib_path.c.

◆ fp_ip

ip46_address_t fib_path_t_::fp_ip

The next-hop.

Definition at line 273 of file fib_path.c.

◆ fp_local_label

mpls_label_t fib_path_t_::fp_local_label

The local label to resolve through.

Definition at line 278 of file fib_path.c.

◆ fp_nh [1/2]

ip46_address_t fib_path_t_::fp_nh

The next-hop.

Definition at line 255 of file fib_path.c.

◆ fp_nh [2/2]

union { ... } fib_path_t_::fp_nh

◆ fp_nh_proto

dpo_proto_t fib_path_t_::fp_nh_proto

The protocol of the next-hop, i.e.

the address family of the next-hop's address. We can't derive this from the address itself since the address can be all zeros

Definition at line 233 of file fib_path.c.

◆ fp_node

fib_node_t fib_path_t_::fp_node

A path is a node in the FIB graph.

Definition at line 205 of file fib_path.c.

◆ fp_oper_flags

fib_path_oper_flags_t fib_path_t_::fp_oper_flags

Memebers in this last section represent information that is dervied during resolution.

It should not be copied to new paths nor compared. Operational Flags

Definition at line 380 of file fib_path.c.

◆ fp_pl_index

u32 fib_path_t_::fp_pl_index

The index of the path-list to which this path belongs.

Definition at line 210 of file fib_path.c.

◆ fp_preference

u8 fib_path_t_::fp_preference

A path preference.

0 is the best. Only paths of the best preference, that are 'up', are considered for forwarding.

Definition at line 245 of file fib_path.c.

◆ fp_rpf_id

fib_rpf_id_t fib_path_t_::fp_rpf_id

The RPF-ID to tag the packets with.

Definition at line 324 of file fib_path.c.

◆ fp_sibling

u32 fib_path_t_::fp_sibling

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

Definition at line 406 of file fib_path.c.

◆ fp_tbl_id

fib_node_index_t fib_path_t_::fp_tbl_id

The FIB table index in which to find the next-hop.

The FIB index in which to perfom the next lookup.

Definition at line 289 of file fib_path.c.

◆ fp_type

fib_path_type_t fib_path_t_::fp_type

The type of the path.

This is the selector for the union

Definition at line 226 of file fib_path.c.

◆ fp_udp_encap_id

u32 fib_path_t_::fp_udp_encap_id

The UDP Encap object this path resolves through.

Definition at line 354 of file fib_path.c.

◆ fp_via_bier_fmask

index_t fib_path_t_::fp_via_bier_fmask

the resolving bier-fmask

Definition at line 395 of file fib_path.c.

◆ fp_via_bier_tbl

index_t fib_path_t_::fp_via_bier_tbl

the resolving bier-table

Definition at line 391 of file fib_path.c.

◆ fp_via_fib

fib_node_index_t fib_path_t_::fp_via_fib

the resolving via fib.

not part of the union, since it it not part of the path's hash.

Definition at line 387 of file fib_path.c.

◆ fp_weight

u8 fib_path_t_::fp_weight

UCMP [unnormalised] weigth.

Definition at line 238 of file fib_path.c.

◆ intf_rx

struct { ... } fib_path_t_::intf_rx

◆ receive

struct { ... } fib_path_t_::receive

◆ recursive

struct { ... } fib_path_t_::recursive

◆ special

struct { ... } fib_path_t_::special

◆ udp_encap

struct { ... } fib_path_t_::udp_encap

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