may be used by ACLs in order to control various criteria related
to the activity of the client matching the stick-table. For each
item specified here, the size of each entry will be inflated so
- that the additional data can fit.
+ that the additional data can fit. At the moment, only "conn_cum"
+ is supported, which can be used to store and retrieve the total
+ number of connections matching the entry since it was created.
The is only one stick-table per backend. At the moment of writing this doc,
it does not seem useful to have multiple tables per backend. If this happens
/* The types of extra data we can store in a stick table */
enum {
+ STKTABLE_DT_CONN_CUM, /* cumulated number of connections */
STKTABLE_DATA_TYPES /* Number of data types, must always be last */
};
/* stick_table extra data. This is mainly used for casting or size computation */
union stktable_data {
+ unsigned int conn_cum;
};
#define stktable_data_size(type) (sizeof(((union stktable_data*)0)->type))
/* Extra data types processing */
struct stktable_data_type stktable_data_types[STKTABLE_DATA_TYPES] = {
+ [STKTABLE_DT_CONN_CUM] = { .name = "conn_cum", .data_length = stktable_data_size(conn_cum) },
};
/*