From: Daniel Borkmann <dan...@iogearbox.net> Date: Tue, 15 Mar 2016 22:41:22 +0100
> There are two issues with the current code. First one is that we need > to set res->class to 0 in case we use non-default classid matching. > > This is important for the case where cls_bpf was initially set up with > an optional binding to a default class with tcf_bind_filter(), where > the underlying qdisc implements bind_tcf() that fills res->class and > tests for it later on when doing the classification. Convention for > these cases is that after tc_classify() was called, such qdiscs (atm, > drr, qfq, cbq, hfsc, htb) first test class, and if 0, then they lookup > based on classid. > > Second, there's a bug with da mode, where res->classid is only assigned > a 16 bit minor, but it needs to expand to the full 32 bit major/minor > combination instead, therefore we need to expand with the bound major. > This is fine as classes belonging to a classful qdisc must share the > same major. > > Fixes: 045efa82ff56 ("cls_bpf: introduce integrated actions") > Signed-off-by: Daniel Borkmann <dan...@iogearbox.net> > Acked-by: Alexei Starovoitov <a...@kernel.org> Applied, thanks Daniel.