|
Packit |
c5a612 |
#ifndef NFTABLES_TCPOPT_H
|
|
Packit |
c5a612 |
#define NFTABLES_TCPOPT_H
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
#include <proto.h>
|
|
Packit |
c5a612 |
#include <exthdr.h>
|
|
Packit |
c5a612 |
#include <statement.h>
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
extern struct expr *tcpopt_expr_alloc(const struct location *loc,
|
|
Packit |
c5a612 |
uint8_t type, uint8_t field);
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
extern void tcpopt_init_raw(struct expr *expr, uint8_t type,
|
|
Packit |
c5a612 |
unsigned int offset, unsigned int len,
|
|
Packit |
c5a612 |
uint32_t flags);
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
extern bool tcpopt_find_template(struct expr *expr, const struct expr *mask,
|
|
Packit |
c5a612 |
unsigned int *shift);
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
enum tcpopt_hdr_types {
|
|
Packit |
c5a612 |
TCPOPTHDR_INVALID,
|
|
Packit |
c5a612 |
TCPOPTHDR_EOL,
|
|
Packit |
c5a612 |
TCPOPTHDR_NOOP,
|
|
Packit |
c5a612 |
TCPOPTHDR_MAXSEG,
|
|
Packit |
c5a612 |
TCPOPTHDR_WINDOW,
|
|
Packit |
c5a612 |
TCPOPTHDR_SACK_PERMITTED,
|
|
Packit |
c5a612 |
TCPOPTHDR_SACK0,
|
|
Packit |
c5a612 |
TCPOPTHDR_SACK1,
|
|
Packit |
c5a612 |
TCPOPTHDR_SACK2,
|
|
Packit |
c5a612 |
TCPOPTHDR_SACK3,
|
|
Packit |
c5a612 |
TCPOPTHDR_TIMESTAMP,
|
|
Packit |
c5a612 |
TCPOPTHDR_ECHO,
|
|
Packit |
c5a612 |
TCPOPTHDR_ECHO_REPLY,
|
|
Packit |
c5a612 |
__TCPOPTHDR_MAX
|
|
Packit |
c5a612 |
};
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
enum tcpopt_hdr_fields {
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_INVALID,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_KIND,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_LENGTH,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_SIZE,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_COUNT,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_LEFT,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_RIGHT,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_TSVAL,
|
|
Packit |
c5a612 |
TCPOPTHDR_FIELD_TSECR,
|
|
Packit |
c5a612 |
};
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
extern const struct exthdr_desc *tcpopthdr_protocols[__TCPOPTHDR_MAX];
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
#endif /* NFTABLES_TCPOPT_H */
|