tc: f_flower: Add support for matching first frag packets
Add matching support for distinguishing between first and later fragmented
packets.
# tc filter add dev eth0 protocol ip parent ffff: \
flower indev eth0 \
ip_flags firstfrag \
ip_proto udp \
action mirred egress redirect dev eth1
# tc filter add dev eth0 protocol ip parent ffff: \
flower indev eth0 \
ip_flags nofirstfrag \
ip_proto udp \
action mirred egress redirect dev eth1
Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
4de0a06b34
commit
fb4e6abfca
|
|
@ -258,8 +258,12 @@ is a 16 bit UDP dst port.
|
||||||
.BI ip_flags " IP_FLAGS"
|
.BI ip_flags " IP_FLAGS"
|
||||||
.I IP_FLAGS
|
.I IP_FLAGS
|
||||||
may be either
|
may be either
|
||||||
.BR frag " or " nofrag
|
.BR frag ", " nofrag ", " firstfrag " or " nofirstfrag
|
||||||
to match on fragmented packets or not respectively.
|
where frag and nofrag could be used to match on fragmented packets or not,
|
||||||
|
respectively. firstfrag and nofirstfrag can be used to further distinguish
|
||||||
|
fragmented packet. firstfrag can be used to indicate the first fragmented
|
||||||
|
packet. nofirstfrag can be used to indicates subsequent fragmented packets
|
||||||
|
or non-fragmented packets.
|
||||||
.SH NOTES
|
.SH NOTES
|
||||||
As stated above where applicable, matches of a certain layer implicitly depend
|
As stated above where applicable, matches of a certain layer implicitly depend
|
||||||
on the matches of the next lower layer. Precisely, layer one and two matches
|
on the matches of the next lower layer. Precisely, layer one and two matches
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,7 @@ struct flag_to_string {
|
||||||
|
|
||||||
static struct flag_to_string flags_str[] = {
|
static struct flag_to_string flags_str[] = {
|
||||||
{ TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT, FLOWER_IP_FLAGS, "frag" },
|
{ TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT, FLOWER_IP_FLAGS, "frag" },
|
||||||
|
{ TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST, FLOWER_IP_FLAGS, "firstfrag" },
|
||||||
};
|
};
|
||||||
|
|
||||||
static int flower_parse_matching_flags(char *str,
|
static int flower_parse_matching_flags(char *str,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue