Revert "net/sched: cls_flower: Remove match on n_proto"
This reverts commit 0dca2c7404
.
The commit in question breaks hardware offload of flower filters.
Quoting Vladimir Oltean <olteanv@gmail.com>:
fl_hw_replace_filter() and fl_reoffload() create a struct
flow_cls_offload with a rule->match.mask member derived from the mask
of the software classifier: &f->mask->key - that same mask that is used
for initializing the flow dissector keys, and the one from which Boris
removed the basic.n_proto member because it was bothering him.
Reported-by: Vadym Kochan <vadym.kochan@plvision.eu>
Signed-off-by: Boris Sukholitko <boris.sukholitko@broadcom.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
ce03b94ba6
Коммит
6d5516177d
|
@ -1531,13 +1531,14 @@ static int fl_set_key(struct net *net, struct nlattr **tb,
|
|||
&mask->basic.n_proto,
|
||||
TCA_FLOWER_UNSPEC,
|
||||
sizeof(key->basic.n_proto));
|
||||
mask->basic.n_proto = cpu_to_be16(0);
|
||||
} else {
|
||||
key->basic.n_proto = ethertype;
|
||||
mask->basic.n_proto = cpu_to_be16(~0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
key->basic.n_proto = ethertype;
|
||||
mask->basic.n_proto = cpu_to_be16(~0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче