diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/parser.h | 1 | ||||
-rw-r--r-- | include/payload.h | 2 | ||||
-rw-r--r-- | include/proto.h | 14 |
3 files changed, 17 insertions, 0 deletions
diff --git a/include/parser.h b/include/parser.h index 977fbb94..1bd490f0 100644 --- a/include/parser.h +++ b/include/parser.h @@ -37,6 +37,7 @@ enum startcond_type { PARSER_SC_CT, PARSER_SC_COUNTER, PARSER_SC_ETH, + PARSER_SC_GRE, PARSER_SC_ICMP, PARSER_SC_IGMP, PARSER_SC_IP, diff --git a/include/payload.h b/include/payload.h index aac553ee..08e45f7f 100644 --- a/include/payload.h +++ b/include/payload.h @@ -15,6 +15,8 @@ struct eval_ctx; struct stmt; extern int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr, struct stmt **res); +int payload_gen_inner_dependency(struct eval_ctx *ctx, const struct expr *expr, + struct stmt **res); extern int payload_gen_icmp_dependency(struct eval_ctx *ctx, const struct expr *expr, struct stmt **res); diff --git a/include/proto.h b/include/proto.h index 32e07448..4b0c7146 100644 --- a/include/proto.h +++ b/include/proto.h @@ -97,6 +97,7 @@ enum proto_desc_id { PROTO_DESC_VLAN, PROTO_DESC_ETHER, PROTO_DESC_VXLAN, + PROTO_DESC_GRE, __PROTO_DESC_MAX }; #define PROTO_DESC_MAX (__PROTO_DESC_MAX - 1) @@ -396,7 +397,20 @@ enum vxlan_hdr_fields { VXLANHDR_FLAGS, }; +struct grehdr { + uint16_t flags; + uint16_t protocol; +}; + +enum gre_hdr_fields { + GREHDR_INVALID, + GREHDR_VERSION, + GREHDR_FLAGS, + GREHDR_PROTOCOL, +}; + extern const struct proto_desc proto_vxlan; +extern const struct proto_desc proto_gre; extern const struct proto_desc proto_icmp; extern const struct proto_desc proto_igmp; |