pkt_sched: act_police: Fix a rate estimator test.
A commit c1b56878fb
"tc: policing requires
a rate estimator" introduced a test which invalidates previously working
configs, based on examples from iproute2: doc/actions/actions-general.
This is too rigorous: a rate estimator is needed only when police's
"avrate" option is used.
Reported-by: Joao Correia <joaomiguelcorreia@gmail.com>
Diagnosed-by: John Dykstra <john.dykstra1@gmail.com>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
9f8ac0b7b0
Коммит
a883bf564e
|
@ -183,13 +183,6 @@ override:
|
||||||
if (R_tab == NULL)
|
if (R_tab == NULL)
|
||||||
goto failure;
|
goto failure;
|
||||||
|
|
||||||
if (!est && (ret == ACT_P_CREATED ||
|
|
||||||
!gen_estimator_active(&police->tcf_bstats,
|
|
||||||
&police->tcf_rate_est))) {
|
|
||||||
err = -EINVAL;
|
|
||||||
goto failure;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parm->peakrate.rate) {
|
if (parm->peakrate.rate) {
|
||||||
P_tab = qdisc_get_rtab(&parm->peakrate,
|
P_tab = qdisc_get_rtab(&parm->peakrate,
|
||||||
tb[TCA_POLICE_PEAKRATE]);
|
tb[TCA_POLICE_PEAKRATE]);
|
||||||
|
@ -205,6 +198,12 @@ override:
|
||||||
&police->tcf_lock, est);
|
&police->tcf_lock, est);
|
||||||
if (err)
|
if (err)
|
||||||
goto failure_unlock;
|
goto failure_unlock;
|
||||||
|
} else if (tb[TCA_POLICE_AVRATE] &&
|
||||||
|
(ret == ACT_P_CREATED ||
|
||||||
|
!gen_estimator_active(&police->tcf_bstats,
|
||||||
|
&police->tcf_rate_est))) {
|
||||||
|
err = -EINVAL;
|
||||||
|
goto failure_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No failure allowed after this point */
|
/* No failure allowed after this point */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче