Re: [PATCH v4 net-next 7/8] net: mscc: ocelot: use index to set vcap policer

From: Horatiu Vultur
Date: Thu Sep 23 2021 - 03:29:35 EST


The 09/23/2021 01:52, Xiaoliang Yang wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On Wed, Sep 22, 2021 at 13:18:37 +0000, Vladimir Oltean 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?
>
> In commit commit b596229448dd ("net: mscc: ocelot: Add support for tcam"), Horatiu Vultur define the max number of policers as 383:
> +#define OCELOT_POLICER_DISCARD 0x17f
> VCAP IS2 use this policer to set drop action. I did not change this and set the VCAP policers with 128-191 according to the VSC7514 document.
>
> I don't know why 383 was used as the maximum value of policer in the original code. Can Microchip people check the code or the documentation for errors?

It was defined as 383 because the HW actually support this number of
policers. But for this SKU it is recomended to use 191, but no one will
stop you from using 383.

>
> >
> > Also, FWIW, Seville has this policer allocation:
> >
> > 0 ----+----------------------+
> > | Port Policers (11) |
> > 11 ----+----------------------+
> > | VCAP Policers (21) |
> > 32 ----+----------------------+
> > | QoS Policers (88) |
> > 120 ----+----------------------+
> > | VCAP Policers (43) |
> > 162 ----+----------------------+
>
> I didn't find Seville's document, if this allocation is right, I will add it in Seville driver.
>
> Thanks,
> Xiaoliang

--
/Horatiu