FD.io VPP  v19.01.3-6-g70449b9b9
Vector Packet Processing
load_balance_t_ Struct Reference

The FIB DPO provieds;. More...

+ Collaboration diagram for load_balance_t_:

Public Member Functions

 CLIB_CACHE_LINE_ALIGN_MARK (cacheline0)
 required for pool_get_aligned. More...
 

Data Fields

u16 lb_n_buckets
 number of buckets in the load-balance. More...
 
u16 lb_n_buckets_minus_1
 number of buckets in the load-balance - 1. More...
 
dpo_proto_t lb_proto
 The protocol of packets that traverse this LB. More...
 
load_balance_flags_t lb_flags
 Flags concenring the LB's creation and modification. More...
 
fib_entry_flag_t lb_fib_entry_flags
 Flags from the load-balance's associated fib_entry_t. More...
 
u32 lb_locks
 The number of locks, which is approximately the number of users, of this load-balance. More...
 
index_t lb_map
 index of the load-balance map, INVALID if this LB does not use one More...
 
index_t lb_urpf
 This is the index of the uRPF list for this LB. More...
 
flow_hash_config_t lb_hash_config
 the hash config to use when selecting a bucket. More...
 
dpo_id_tlb_buckets
 Vector of buckets containing the next DPOs, sized as lbo_num. More...
 
dpo_id_t lb_buckets_inline [LB_NUM_INLINE_BUCKETS]
 The rest of the cache line is used for buckets. More...
 

Detailed Description

The FIB DPO provieds;.

  • load-balancing over the next DPOs in the chain/graph
  • per-route counters

Definition at line 106 of file load_balance.h.

Member Function Documentation

◆ CLIB_CACHE_LINE_ALIGN_MARK()

load_balance_t_::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline0  )

required for pool_get_aligned.

memebers used in the switch path come first!

Field Documentation

◆ lb_buckets

dpo_id_t* load_balance_t_::lb_buckets

Vector of buckets containing the next DPOs, sized as lbo_num.

Definition at line 166 of file load_balance.h.

◆ lb_buckets_inline

dpo_id_t load_balance_t_::lb_buckets_inline[LB_NUM_INLINE_BUCKETS]

The rest of the cache line is used for buckets.

In the common case where there there are less than 4 buckets, then the buckets are on the same cachlie and we save ourselves a pointer dereferance in the data-path.

Definition at line 174 of file load_balance.h.

◆ lb_fib_entry_flags

fib_entry_flag_t load_balance_t_::lb_fib_entry_flags

Flags from the load-balance's associated fib_entry_t.

Definition at line 138 of file load_balance.h.

◆ lb_flags

load_balance_flags_t load_balance_t_::lb_flags

Flags concenring the LB's creation and modification.

Definition at line 133 of file load_balance.h.

◆ lb_hash_config

flow_hash_config_t load_balance_t_::lb_hash_config

the hash config to use when selecting a bucket.

this is a u16

Definition at line 161 of file load_balance.h.

◆ lb_locks

u32 load_balance_t_::lb_locks

The number of locks, which is approximately the number of users, of this load-balance.

Load-balance objects of via-entries are heavily shared by recursives, so the lock count is a u32.

Definition at line 146 of file load_balance.h.

◆ lb_map

index_t load_balance_t_::lb_map

index of the load-balance map, INVALID if this LB does not use one

Definition at line 151 of file load_balance.h.

◆ lb_n_buckets

u16 load_balance_t_::lb_n_buckets

number of buckets in the load-balance.

always a power of 2.

Definition at line 116 of file load_balance.h.

◆ lb_n_buckets_minus_1

u16 load_balance_t_::lb_n_buckets_minus_1

number of buckets in the load-balance - 1.

used in the switch path as part of the hash calculation.

Definition at line 121 of file load_balance.h.

◆ lb_proto

dpo_proto_t load_balance_t_::lb_proto

The protocol of packets that traverse this LB.

need in combination with the flow hash config to determine how to hash. u8.

Definition at line 128 of file load_balance.h.

◆ lb_urpf

index_t load_balance_t_::lb_urpf

This is the index of the uRPF list for this LB.

Definition at line 156 of file load_balance.h.


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