TCPOPTHDR_FIELD_TSVAL,
TCPOPTHDR_FIELD_TSECR,
};
-
-extern const struct exthdr_desc tcpopt_eol;
-extern const struct exthdr_desc tcpopt_nop;
-extern const struct exthdr_desc tcpopt_maxseg;
-extern const struct exthdr_desc tcpopt_window;
-extern const struct exthdr_desc tcpopt_sack_permitted;
-extern const struct exthdr_desc tcpopt_sack;
-extern const struct exthdr_desc tcpopt_timestamp;
-
#endif /* NFTABLES_TCPOPT_H */
#define PHT(__token, __offset, __len) \
PROTO_HDR_TEMPLATE(__token, &integer_type, BYTEORDER_BIG_ENDIAN, \
__offset, __len)
-const struct exthdr_desc tcpopt_eol = {
+static const struct exthdr_desc tcpopt_eol = {
.name = "eol",
.type = TCPOPT_EOL,
.templates = {
},
};
-const struct exthdr_desc tcpopt_nop = {
+static const struct exthdr_desc tcpopt_nop = {
.name = "noop",
.type = TCPOPT_NOP,
.templates = {
},
};
-const struct exthdr_desc tcptopt_maxseg = {
+static const struct exthdr_desc tcptopt_maxseg = {
.name = "maxseg",
.type = TCPOPT_MAXSEG,
.templates = {
},
};
-const struct exthdr_desc tcpopt_window = {
+static const struct exthdr_desc tcpopt_window = {
.name = "window",
.type = TCPOPT_WINDOW,
.templates = {
},
};
-const struct exthdr_desc tcpopt_sack_permitted = {
+static const struct exthdr_desc tcpopt_sack_permitted = {
.name = "sack-permitted",
.type = TCPOPT_SACK_PERMITTED,
.templates = {
},
};
-const struct exthdr_desc tcpopt_sack = {
+static const struct exthdr_desc tcpopt_sack = {
.name = "sack",
.type = TCPOPT_SACK,
.templates = {
},
};
-const struct exthdr_desc tcpopt_timestamp = {
+static const struct exthdr_desc tcpopt_timestamp = {
.name = "timestamp",
.type = TCPOPT_TIMESTAMP,
.templates = {
#define TCPOPT_OBSOLETE ((struct exthdr_desc *)NULL)
#define TCPOPT_ECHO 6
#define TCPOPT_ECHO_REPLY 7
-const struct exthdr_desc *tcpopt_protocols[] = {
+static const struct exthdr_desc *tcpopt_protocols[] = {
[TCPOPT_EOL] = &tcpopt_eol,
[TCPOPT_NOP] = &tcpopt_nop,
[TCPOPT_MAXSEG] = &tcptopt_maxseg,