diff options
author | Maksym Glubokiy <maksym.glubokiy@plvision.eu> | 2022-07-11 18:09:07 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-07-13 12:16:56 +0100 |
commit | 83d85bb069152b790caad905fa53e6d50cd3734d (patch) | |
tree | 45c9be277e832294be35eaad209f26c8669bec22 /include | |
parent | dd517237c3197428336ec12637831e8473865874 (diff) | |
download | linux-stable-83d85bb069152b790caad905fa53e6d50cd3734d.tar.gz linux-stable-83d85bb069152b790caad905fa53e6d50cd3734d.tar.bz2 linux-stable-83d85bb069152b790caad905fa53e6d50cd3734d.zip |
net: extract port range fields from fl_flow_key
So it can be used for port range filter offloading.
Co-developed-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu>
Signed-off-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu>
Signed-off-by: Maksym Glubokiy <maksym.glubokiy@plvision.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/flow_dissector.h | 16 | ||||
-rw-r--r-- | include/net/flow_offload.h | 6 |
2 files changed, 22 insertions, 0 deletions
diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h index a4c6057c7097..0f9544a9bb9e 100644 --- a/include/net/flow_dissector.h +++ b/include/net/flow_dissector.h @@ -179,6 +179,22 @@ struct flow_dissector_key_ports { }; /** + * struct flow_dissector_key_ports_range + * @tp: port number from packet + * @tp_min: min port number in range + * @tp_max: max port number in range + */ +struct flow_dissector_key_ports_range { + union { + struct flow_dissector_key_ports tp; + struct { + struct flow_dissector_key_ports tp_min; + struct flow_dissector_key_ports tp_max; + }; + }; +}; + +/** * flow_dissector_key_icmp: * type: ICMP type * code: ICMP code diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h index 7ac313858037..a8d8512b7059 100644 --- a/include/net/flow_offload.h +++ b/include/net/flow_offload.h @@ -48,6 +48,10 @@ struct flow_match_ports { struct flow_dissector_key_ports *key, *mask; }; +struct flow_match_ports_range { + struct flow_dissector_key_ports_range *key, *mask; +}; + struct flow_match_icmp { struct flow_dissector_key_icmp *key, *mask; }; @@ -94,6 +98,8 @@ void flow_rule_match_ip(const struct flow_rule *rule, struct flow_match_ip *out); void flow_rule_match_ports(const struct flow_rule *rule, struct flow_match_ports *out); +void flow_rule_match_ports_range(const struct flow_rule *rule, + struct flow_match_ports_range *out); void flow_rule_match_tcp(const struct flow_rule *rule, struct flow_match_tcp *out); void flow_rule_match_icmp(const struct flow_rule *rule, |