FD.io VPP  v18.01.2-1-g9b554f3
Vector Packet Processing
lb_vip_t Struct Reference

Load balancing service is provided per VIP. More...

+ Collaboration diagram for lb_vip_t:

Data Fields

lb_new_flow_entry_tnew_flow_table
 Vector mapping (flow-hash & new_connect_table_mask) to AS index. More...
 
u32 new_flow_table_mask
 New flows table length - 1 (length MUST be a power of 2) More...
 
u32 last_garbage_collection
 Last time garbage collection was run to free the ASs. More...
 
ip46_address_t prefix
 A Virtual IP represents a given service delivered by a set of application servers. More...
 
u8 plen
 The VIP prefix length. More...
 
lb_vip_type_t type
 The type of traffic for this. More...
 
u8 flags
 Flags related to this VIP. More...
 
u32as_indexes
 Pool of AS indexes used for this VIP. More...
 

Detailed Description

Load balancing service is provided per VIP.

In this data model, a VIP can be a whole prefix. But load balancing only occurs on a per-source-address/port basis. Meaning that if a given source reuses the same port for multiple destinations within the same VIP, they will be considered as a single flow.

Definition at line 154 of file lb.h.

Field Documentation

u32* lb_vip_t::as_indexes

Pool of AS indexes used for this VIP.

This also includes ASs that have been removed (but are still referenced).

Definition at line 212 of file lb.h.

u8 lb_vip_t::flags

Flags related to this VIP.

LB_VIP_FLAGS_USED means the VIP is active. When it is not set, the VIP in the process of being removed. We cannot immediately remove a VIP because the VIP index still may be stored in the adjacency index.

Definition at line 205 of file lb.h.

u32 lb_vip_t::last_garbage_collection

Last time garbage collection was run to free the ASs.

Definition at line 173 of file lb.h.

lb_new_flow_entry_t* lb_vip_t::new_flow_table

Vector mapping (flow-hash & new_connect_table_mask) to AS index.

This is used for new flows.

Definition at line 162 of file lb.h.

u32 lb_vip_t::new_flow_table_mask

New flows table length - 1 (length MUST be a power of 2)

Definition at line 168 of file lb.h.

u8 lb_vip_t::plen

The VIP prefix length.

In case of IPv4, plen = 96 + ip4_plen.

Definition at line 190 of file lb.h.

ip46_address_t lb_vip_t::prefix

A Virtual IP represents a given service delivered by a set of application servers.

It can be a single address or a prefix. IPv4 prefixes are encoded using IPv4-in-IPv6 embedded address (i.e. ::/96 prefix).

Definition at line 184 of file lb.h.

lb_vip_type_t lb_vip_t::type

The type of traffic for this.

LB_TYPE_UNDEFINED if unknown.

Definition at line 196 of file lb.h.


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