summaryrefslogtreecommitdiffstats
path: root/include/dccpopt.h
blob: 3617fc1ae7661249a51db11ff50e6b7f608bf4c1 (plain)
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
40
41
#ifndef NFTABLES_DCCPOPT_H
#define NFTABLES_DCCPOPT_H

#include <nftables.h>

#define DCCPOPT_TYPE_MIN 0
#define DCCPOPT_TYPE_MAX UINT8_MAX

enum dccpopt_fields {
	DCCPOPT_FIELD_INVALID,
	DCCPOPT_FIELD_TYPE,
};

enum dccpopt_types {
	DCCPOPT_PADDING			=   0,
	DCCPOPT_MANDATORY		=   1,
	DCCPOPT_SLOW_RECEIVER		=   2,
	DCCPOPT_RESERVED_SHORT		=   3,
	DCCPOPT_CHANGE_L		=  32,
	DCCPOPT_CONFIRM_L		=  33,
	DCCPOPT_CHANGE_R		=  34,
	DCCPOPT_CONFIRM_R		=  35,
	DCCPOPT_INIT_COOKIE		=  36,
	DCCPOPT_NDP_COUNT		=  37,
	DCCPOPT_ACK_VECTOR_NONCE_0	=  38,
	DCCPOPT_ACK_VECTOR_NONCE_1	=  39,
	DCCPOPT_DATA_DROPPED		=  40,
	DCCPOPT_TIMESTAMP		=  41,
	DCCPOPT_TIMESTAMP_ECHO		=  42,
	DCCPOPT_ELAPSED_TIME		=  43,
	DCCPOPT_DATA_CHECKSUM		=  44,
	DCCPOPT_RESERVED_LONG		=  45,
	DCCPOPT_CCID_SPECIFIC           = 128,
};

const struct exthdr_desc *dccpopt_find_desc(uint8_t type);
struct expr *dccpopt_expr_alloc(const struct location *loc, uint8_t type);
void dccpopt_init_raw(struct expr *expr, uint8_t type, unsigned int offset,
		      unsigned int len);

#endif /* NFTABLES_DCCPOPT_H */