1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| | /* SPDX-License-Identifier: GPL-2.0-or-later
* Copyright Red Hat
* Author: David Gibson <david@gibson.dropbear.id.au>
*
* Tracking for logical "flows" of packets.
*/
#ifndef FLOW_H
#define FLOW_H
enum flow_type {
FLOW_NONE = 0,
FLOW_TCP,
FLOW_TCP_SPLICE,
FLOW_MAX = FLOW_TCP_SPLICE,
};
extern const char *flow_type_str[];
#define FLOW_TYPE(f) \
((f)->type <= FLOW_MAX ? flow_type_str[(f)->type] : "?")
/**
* struct flow_common - Common fields for packet flows
* @type: Type of packet flow
*/
struct flow_common {
enum flow_type type;
};
#define FLOW_INDEX_BITS 17 /* 128k - 1 */
#define FLOW_MAX MAX_FROM_BITS(FLOW_INDEX_BITS)
#define FLOW_TABLE_PRESSURE 30 /* % of FLOW_MAX */
#define FLOW_FILE_PRESSURE 30 /* % of c->nofile */
union flow;
void flow_table_compact(struct ctx *c, union flow *hole);
#endif /* FLOW_H */
|