FD.io VPP  v19.08-27-gf4dcae4
Vector Packet Processing
lb.api
Go to the documentation of this file.
1 option version = "1.0.0";
2 import "plugins/lb/lb_types.api";
3 
4 /** \brief Configure Load-Balancer global parameters (unlike the CLI, both ip4_src_address and ip6_src_address need to be specified.
5  @param client_index - opaque cookie to identify the sender
6  @param context - sender context, to match reply w/ request
7  @param ip4_src_address - IPv4 address to be used as source for IPv4 traffic(applicable in GRE4/GRE6/NAT4/NAT6 mode only).
8  @param ip6_src_address - IPv6 address to be used as source for IPv6 traffic(applicable in GRE4/GRE6/NAT4/NAT6 mode only).
9  @param sticky_buckets_per_core - Number of buckets *per worker thread* in the
10  established flow table (must be power of 2).
11  @param flow_timeout - Time in seconds after which, if no packet is received
12  for a given flow, the flow is removed from the established flow table.
13 */
14 autoreply manual_print define lb_conf
15 {
22 };
23 
24 /** \brief Add a virtual address (or prefix)
25  @param client_index - opaque cookie to identify the sender
26  @param context - sender context, to match reply w/ request
27  @param pfx - ip prefix and length
28  @param protocol - tcp or udp.
29  @param port - destination port. (0) means 'all-port VIP'
30  @param encap - Encap is ip4 GRE(0) or ip6 GRE(1) or L3DSR(2) or NAT4(3) or NAT6(4).
31  @param dscp - DSCP bit corresponding to VIP(applicable in L3DSR mode only).
32  @param type - service type(applicable in NAT4/NAT6 mode only).
33  @param target_port - Pod's port corresponding to specific service(applicable in NAT4/NAT6 mode only).
34  @param node_port - Node's port(applicable in NAT4/NAT6 mode only).
35  @param new_flows_table_length - Size of the new connections flow table used
36  for this VIP (must be power of 2).
37  @param is_del - The VIP should be removed.
38 */
39 autoreply manual_print define lb_add_del_vip {
42  vl_api_address_with_prefix_t pfx;
43  u8 protocol [default=255];
45  vl_api_lb_encap_type_t encap;
47  vl_api_lb_srv_type_t type ; /* LB_API_SRV_TYPE_CLUSTERIP */
50  u32 new_flows_table_length [default=1024];
51  bool is_del;
52 };
53 
54 /** \brief Add an application server for a given VIP
55  @param client_index - opaque cookie to identify the sender
56  @param context - sender context, to match reply w/ request
57  @param pfx - ip prefix and length
58  @param protocol - tcp or udp.
59  @param port - destination port.
60  @param as_address - The application server address (IPv4 in lower order 32 bits).
61  @param is_del - The AS should be removed.
62  @param is_flush - The sessions related to this AS should be flushed.
63 */
64 autoreply manual_print define lb_add_del_as {
67  vl_api_address_with_prefix_t pfx;
68  u8 protocol [default=255];
70  vl_api_address_t as_address;
71  bool is_del;
72  bool is_flush;
73 };
74 
75 /** \brief Flush a given vip
76  @param client_index - opaque cookie to identify the sender
77  @param context - sender context, to match reply w/ request
78  @param pfx - ip prefix and length
79  @param protocol - tcp or udp.
80  @param port - destination port.
81 */
82 autoreply manual_print define lb_flush_vip {
85  vl_api_address_with_prefix_t pfx;
88 };
89 
90 /** \brief Dump all vips
91  @param client_index - opaque cookie to identify the sender
92  @param context - sender context, to match reply w/ request
93 */
94 define lb_vip_dump{
97  vl_api_address_with_prefix_t pfx;
98  vl_api_prefix_matcher_t pfx_matcher;
99  u8 protocol [default=255];
101 
102 };
103 
104 /** \brief Reply all configured vip
105  @param context - sender context, to match reply w/ request
106  @param vip - all vip addrs.
107 */
108 define lb_vip_details {
111  vl_api_lb_encap_type_t encap;
112  vl_api_ip_dscp_t dscp;
113  vl_api_lb_srv_type_t srv_type;
116 };
117 
118 /** \brief dump AS list per VIP or all ASs for all VIPs
119  @param client_index - opaque cookie to identify the sender
120  @param context - sender context, to match reply w/ request
121  @param pfx - ip prefix and length.
122  @param protocol - tcp or udp.
123  @param port - destination port.
124 */
125 define lb_as_dump{
128  /* vip */
129  vl_api_address_with_prefix_t pfx;
132 };
133 
134 /** \brief lb_as_details
135  @param context - sender context, to match reply w/ request
136  @param as - AS detail record
137 */
138 define lb_as_details {
141  vl_api_address_t app_srv;
144 };
145 
vl_api_address_t as_address
Definition: lb.api:70
u32 flow_timeout
Definition: lb.api:21
vl_api_lb_srv_type_t srv_type
Definition: lb.api:113
u8 vl_api_ip6_address_t[16]
Conversion functions to/from (decode/encode) API types to VPP internal types.
Definition: ip_types_api.h:30
int lb_conf(ip4_address_t *ip4_address, ip6_address_t *ip6_address, u32 per_cpu_sticky_buckets, u32 flow_timeout)
Fix global load-balancer parameters.
Definition: lb.c:473
unsigned char u8
Definition: types.h:56
vl_api_lb_vip_t vip
Definition: lb.api:140
u32 client_index
Definition: lb.api:16
vl_api_address_with_prefix_t pfx
Definition: lb.api:85
option version
Definition: lb.api:1
vl_api_address_with_prefix_t pfx
Definition: lb.api:129
vl_api_address_t app_srv
Definition: lb.api:141
vl_api_lb_vip_t vip
Definition: lb.api:110
unsigned int u32
Definition: types.h:88
vl_api_lb_encap_type_t encap
Definition: lb.api:111
vl_api_ip6_address_t ip6_src_address
Definition: lb.api:19
vl_api_ip_proto_t protocol
Definition: punt.api:39
unsigned short u16
Definition: types.h:57
vl_api_lb_srv_type_t type
Definition: lb.api:47
Define connection statistics structure.
Definition: lb_types.api:68
u8 vl_api_ip4_address_t[4]
Definition: ip_types_api.h:31
u32 context
Definition: lb.api:17
vl_api_address_with_prefix_t pfx
Definition: lb.api:97
u32 sticky_buckets_per_core
Definition: lb.api:20
vl_api_address_with_prefix_t pfx
Definition: lb.api:42
_t u32 client_index
Definition: lb.api:126
vl_api_address_with_prefix_t pfx
Definition: lb.api:67
vl_api_ip4_address_t ip4_src_address
Definition: lb.api:18
_t u32 client_index
Definition: lb.api:95
vl_api_lb_encap_type_t encap
Definition: lb.api:45
vl_api_prefix_matcher_t pfx_matcher
Definition: lb.api:98
vl_api_ip_dscp_t dscp
Definition: lb.api:112