From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [PATCH v3 iproute2 2/3] tc: Add support for the ETF Qdisc Date: Fri, 6 Jul 2018 14:32:37 -0700 Message-ID: <20180706143237.60807e16@xeon-e3> References: <20180705224227.22843-1-jesus.sanchez-palencia@intel.com> <20180705224227.22843-3-jesus.sanchez-palencia@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, jhs@mojatatu.com, xiyou.wangcong@gmail.com, jiri@resnulli.us, Vinicius Costa Gomes To: Jesus Sanchez-Palencia Return-path: Received: from mail-pl0-f68.google.com ([209.85.160.68]:46995 "EHLO mail-pl0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754066AbeGFVck (ORCPT ); Fri, 6 Jul 2018 17:32:40 -0400 Received: by mail-pl0-f68.google.com with SMTP id 30-v6so3393194pld.13 for ; Fri, 06 Jul 2018 14:32:40 -0700 (PDT) In-Reply-To: <20180705224227.22843-3-jesus.sanchez-palencia@intel.com> Sender: netdev-owner@vger.kernel.org List-ID: > diff --git a/tc/q_etf.c b/tc/q_etf.c > new file mode 100644 > index 00000000..5db1dd6f > --- /dev/null > +++ b/tc/q_etf.c > @@ -0,0 +1,168 @@ > +/* > + * q_etf.c Earliest TxTime First (ETF). > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License > + * as published by the Free Software Foundation; either version > + * 2 of the License, or (at your option) any later version. > + * > + * Authors: Vinicius Costa Gomes > + * Jesus Sanchez-Palencia > + * > + */ Please use SPDX tag rather than GPL boilerplate when adding new code. > +static int get_clockid(__s32 *val, const char *arg) > +{ > + const struct static_clockid { > + const char *name; > + clockid_t clockid; > + } clockids_sysv[] = { > + { "CLOCK_REALTIME", CLOCK_REALTIME }, > + { "CLOCK_TAI", CLOCK_TAI }, > + { "CLOCK_BOOTTIME", CLOCK_BOOTTIME }, > + { "CLOCK_MONOTONIC", CLOCK_MONOTONIC }, > + { NULL } > + }; > + > + const struct static_clockid *c; > + > + for (c = clockids_sysv; c->name; c++) { > + if (strncasecmp(c->name, arg, 25) == 0) { > + *val = c->clockid; > + > + return 0; > + } > + } > + > + return -1; > +} Internally, kernel must use ktime. For the userspace part the TC standard is to use USER HZ of 100. Please change user kernel API of this module to match other existing modules. Doing something unique for this module is not necessary.