Re: [PATCH v4 net-next 7/8] net: mscc: ocelot: use index to set vcap policer
From: Vladimir Oltean
Date: Wed Sep 22 2021 - 09:18:45 EST
On Wed, Sep 22, 2021 at 06:52:01PM +0800, Xiaoliang Yang wrote:
> Policer was previously automatically assigned from the highest index to
> the lowest index from policer pool. But police action of tc flower now
> uses index to set an police entry. This patch uses the police index to
> set vcap policers, so that one policer can be shared by multiple rules.
>
> Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@xxxxxxx>
> ---
> +#define VSC9959_VCAP_POLICER_BASE 63
> +#define VSC9959_VCAP_POLICER_MAX 383
>
> +#define VSC7514_VCAP_POLICER_BASE 128
> +#define VSC7514_VCAP_POLICER_MAX 191
I think this deserves an explanation.
The VSC7514 driver uses the max number of policers as 383 (0x17f) ever
since commit b596229448dd ("net: mscc: ocelot: Add support for tcam"),
aka the very beginning.
Yet, the documentation at "3.10.1 Policer Allocation"
https://ww1.microchip.com/downloads/en/DeviceDoc/VMDS-10491.pdf
says very clearly that there are only 192 policers indeed.
What's going on?
Also, FWIW, Seville has this policer allocation:
0 ----+----------------------+
| Port Policers (11) |
11 ----+----------------------+
| VCAP Policers (21) |
32 ----+----------------------+
| QoS Policers (88) |
120 ----+----------------------+
| VCAP Policers (43) |
162 ----+----------------------+