flow: Introduce 'sidx' type to represent one side of one flow
In a number of places, we use indices into the flow table to identify a specific flow. We also have cases where we need to identify a particular side of a particular flow, and we expect those to become more common as we generalise the flow table to cover more things. To assist with that, introduces flow_sidx_t, an index type which identifies a specific side of a specific flow in the table. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Suppress false cppcheck positive in flow_sidx()] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:

committed by
Stefano Brivio

parent
eb8b1a233b
commit
df96a4cb5d
14
flow.h
14
flow.h
@@ -39,6 +39,20 @@ struct flow_common {
|
||||
#define FLOW_TABLE_PRESSURE 30 /* % of FLOW_MAX */
|
||||
#define FLOW_FILE_PRESSURE 30 /* % of c->nofile */
|
||||
|
||||
/**
|
||||
* struct flow_sidx - ID for one side of a specific flow
|
||||
* @side: Side referenced (0 or 1)
|
||||
* @flow: Index of flow referenced
|
||||
*/
|
||||
typedef struct flow_sidx {
|
||||
int side :1;
|
||||
unsigned flow :FLOW_INDEX_BITS;
|
||||
} flow_sidx_t;
|
||||
static_assert(sizeof(flow_sidx_t) <= sizeof(uint32_t),
|
||||
"flow_sidx_t must fit within 32 bits");
|
||||
|
||||
#define FLOW_SIDX_NONE ((flow_sidx_t){ .flow = FLOW_MAX })
|
||||
|
||||
union flow;
|
||||
|
||||
void flow_table_compact(struct ctx *c, union flow *hole);
|
||||
|
Reference in New Issue
Block a user