[MINOR] stick_table: add support for "conn_cum" data type.
This one can be parsed on the "stick-table" after with the "store" keyword. It will hold the number of connections matching the entry, for use with ACLs or anything else.
This commit is contained in:
parent
08d5f98294
commit
69b870f862
|
@ -5053,7 +5053,9 @@ stick-table type {ip | integer | string [len <length>] } size <size>
|
|||
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
|
||||
|
|
|
@ -41,11 +41,13 @@ enum {
|
|||
|
||||
/* 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))
|
||||
|
|
|
@ -477,6 +477,7 @@ int stktable_compatible_pattern(struct pattern_expr *expr, unsigned long table_t
|
|||
|
||||
/* 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) },
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue