RE: Re: [v4,iproute2-next 1/2] iproute2-next:tc:action: add a gate control action

From: Po Liu
Date: Thu May 07 2020 - 08:31:15 EST


Hi Stephen,

> -----Original Message-----
> From: Po Liu
> Sent: 2020年5月7日 10:53
> To: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
> Cc: dsahern@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> netdev@xxxxxxxxxxxxxxx; vinicius.gomes@xxxxxxxxx;
> davem@xxxxxxxxxxxxx; vlad@xxxxxxxxxx; Claudiu Manoil
> <claudiu.manoil@xxxxxxx>; Vladimir Oltean <vladimir.oltean@xxxxxxx>;
> Alexandru Marginean <alexandru.marginean@xxxxxxx>
> Subject: RE: Re: [v4,iproute2-next 1/2] iproute2-next:tc:action: add a gate
> control action
>
> Hi Stephen,
>
>
> > -----Original Message-----
> > From: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
> > Sent: 2020年5月6日 23:22
> > To: Po Liu <po.liu@xxxxxxx>
> > Cc: dsahern@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > netdev@xxxxxxxxxxxxxxx; vinicius.gomes@xxxxxxxxx;
> davem@xxxxxxxxxxxxx;
> > vlad@xxxxxxxxxx; Claudiu Manoil <claudiu.manoil@xxxxxxx>; Vladimir
> > Oltean <vladimir.oltean@xxxxxxx>; Alexandru Marginean
> > <alexandru.marginean@xxxxxxx>
> > Subject: Re: [v4,iproute2-next 1/2] iproute2-next:tc:action: add a
> > gate control action On Wed, 6 May 2020 16:40:19 +0800 Po Liu
> > <Po.Liu@xxxxxxx> wrote:
> >
> > > } else if (matches(*argv, "base-time") == 0) {
> > > + NEXT_ARG();
> > > + if (get_u64(&base_time, *argv, 10)) {
> > > + invalidarg = "base-time";
> > > + goto err_arg;
> > > + }
> > > + } else if (matches(*argv, "cycle-time") == 0) {
> > > + NEXT_ARG();
> > > + if (get_u64(&cycle_time, *argv, 10)) {
> > > + invalidarg = "cycle-time";
> > > + goto err_arg;
> > > + }
> > > + } else if (matches(*argv, "cycle-time-ext") == 0) {
> > > + NEXT_ARG();
> > > + if (get_u64(&cycle_time_ext, *argv, 10)) {
> > > + invalidarg = "cycle-time-ext";
> > > + goto err_arg;
> > > + }
> >
> > Could all these time values use existing TC helper routines?
>
> I agree to keep the tc routines input.
> The names of timer input and type is more reference the taprio input.
>

Shall I support both input method. The default decimal input like 120000 default to nano-second and formal time routines like 120us.
Then the tc show command shows formal time routines like 120us whatever in non-json format. Json format shows a decimal number only which is always done by other tc command.

So this would compatible with kernel commit commands examples. But I would mention in the man pages supporting the timer routines input.

> > See get_time(). The way you have it makes sense for hardware but
> > stands out versus the rest of tc.
> >
> > It maybe that the kernel UAPI is wrong, and should be using same time
> > units as rest of tc. Forgot to review that part of the patch.
>
> I would also sync with kernel UAPI if needed.

I checked the gate UAPI file, there is nothing need to changed for time format.

>
>
> Br,
> Po Liu



Br,
Po Liu