FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
kp_vip_t Struct Reference

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

+ Collaboration diagram for kp_vip_t:

Data Fields

kp_new_flow_entry_tnew_flow_table
 Vector mapping (flow-hash & new_connect_table_mask) to POD 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 PODs. More...
 
ip46_address_t prefix
 A Virtual IP represents a given service delivered by a set of PODs. More...
 
u8 plen
 The VIP prefix length. More...
 
u16 port
 Service port. More...
 
u16 target_port
 Pod's port corresponding to specific service. More...
 
u16 node_port
 Node's port, can access service via NodeIP:node_port. More...
 
kp_vip_type_t type
 The type of traffic for this. More...
 
u8 flags
 Flags related to this VIP. More...
 
u32pod_indexes
 Pool of POD 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 190 of file kp.h.

Field Documentation

u8 kp_vip_t::flags

Flags related to this VIP.

KP_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 257 of file kp.h.

u32 kp_vip_t::last_garbage_collection

last time garbage collection was run to free the PODs.

Definition at line 209 of file kp.h.

kp_new_flow_entry_t* kp_vip_t::new_flow_table

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

This is used for new flows.

Definition at line 198 of file kp.h.

u32 kp_vip_t::new_flow_table_mask

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

Definition at line 204 of file kp.h.

u16 kp_vip_t::node_port

Node's port, can access service via NodeIP:node_port.

network byte order

Definition at line 241 of file kp.h.

u8 kp_vip_t::plen

The VIP prefix length.

In case of IPv4, plen = 96 + ip4_plen.

Definition at line 226 of file kp.h.

u32* kp_vip_t::pod_indexes

Pool of POD indexes used for this VIP.

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

Definition at line 264 of file kp.h.

u16 kp_vip_t::port

Service port.

network byte order

Definition at line 231 of file kp.h.

ip46_address_t kp_vip_t::prefix

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

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 220 of file kp.h.

u16 kp_vip_t::target_port

Pod's port corresponding to specific service.

network byte order

Definition at line 236 of file kp.h.

kp_vip_type_t kp_vip_t::type

The type of traffic for this.

KP_TYPE_UNDEFINED if unknown.

Definition at line 248 of file kp.h.


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