From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl0-x241.google.com (mail-pl0-x241.google.com [IPv6:2607:f8b0:400e:c01::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id E97DB3B29E for ; Wed, 22 Nov 2017 16:39:02 -0500 (EST) Received: by mail-pl0-x241.google.com with SMTP id l16so1472852pli.6 for ; Wed, 22 Nov 2017 13:39:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6wyegxXd1I4T4mMlJ/HC9/sJ3Mzrp6hrCgMOxtPSSTM=; b=B+t5Grxo0oa2HGYyQR86wVP+wDeuqeHr2zOiilU3vYEAxcCupCr2IdXwH76Z78rMSD zWxmw+A2CDKOfAgQmWAa+oIXTKLWdHa0xy4fe3qj1/TdaT8Ha3KVSO9yhIZODVmlh7Zv ktVXlWUyCB5djvk4BQ2PxOdk5VLJwEhmULOfojShcFq2mqMvgY7nH7ff3wxeSec1WM4e hm3nSVOd2WNL1K7xIqGDzAgb4RIIP4T9Hs8k8G56o6olYykLdGzpdGGNWQ9kRi1LiGrm Eau6ThH5ga3a/pd9b4VxlDlO+r3yBt61araOJNeEuguQaWJwfEzWVNj8kV44hnK4lagG ZImQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6wyegxXd1I4T4mMlJ/HC9/sJ3Mzrp6hrCgMOxtPSSTM=; b=nLd5WoN8j3pFDbWJdfrx5iGzxlBrFz5CdbDu7M9DVPPfi/tFxFy9Qlyojehiv5dE0E EbtPLSH+kbn5SSbvsRMOUZdFt1zpwDijhDHmNTSusV4sdCmpyCI/kQ6vVWZJH9UXf98u LPx99LLkMrK/7TbcSZGxU4yPzLZfVpd2ExC/kY6p1CkgO3maalJWlICVtt6suWq+yesG dWXy0U97fhW+QZsNDG7EZVU9NqngxusQm5DJiqJrxyBnlSzhLWCGsW9GAizCkqQbOLTz 4wHLudcOSOe60bNYua+qvQirPT559MeeZgCvvwtk5wt6Dj1zxGjTpg19EHWJNWdCpI6u vDYw== X-Gm-Message-State: AJaThX45W7DIUEDw8KyAAcpTSHAlXEVZVUmq3C/tXwwP/7UW4hWHu8Xp 1tVBWAMbh0eZvzUrxeE7FIQB+w== X-Google-Smtp-Source: AGs4zMbsDdl3niqVpzkBKQy1d5NvqFG9PJJ5QVzZArEjDi5iZyNwJcfHpkBuG2L89hOLnHidqGABDg== X-Received: by 10.84.218.10 with SMTP id q10mr23768762pli.111.1511386742117; Wed, 22 Nov 2017 13:39:02 -0800 (PST) Received: from xeon-e3 (76-14-207-240.or.wavecable.com. [76.14.207.240]) by smtp.gmail.com with ESMTPSA id u13sm24799758pgb.68.2017.11.22.13.39.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 22 Nov 2017 13:39:02 -0800 (PST) Date: Wed, 22 Nov 2017 13:38:54 -0800 From: Stephen Hemminger To: Dave Taht Cc: Dave Taht , cake@lists.bufferbloat.net Message-ID: <20171122133854.713fd9ac@xeon-e3> In-Reply-To: <87shd7ruwh.fsf@nemesis.taht.net> References: <1511309382-24060-1-git-send-email-dave.taht@gmail.com> <1511309382-24060-2-git-send-email-dave.taht@gmail.com> <20171121165513.036b01da@xeon-e3> <87shd7ruwh.fsf@nemesis.taht.net> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Cake] [PATCH 1/3] pkt_sched.h: add support for sch_cake API X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Nov 2017 21:39:03 -0000 On Tue, 21 Nov 2017 16:58:54 -0800 Dave Taht wrote: > Stephen Hemminger writes: > > > On Tue, 21 Nov 2017 16:09:40 -0800 > > Dave Taht wrote: > > > >> > >> +/* CAKE */ > >> +enum { > >> + TCA_CAKE_UNSPEC, > >> + TCA_CAKE_BASE_RATE, > >> + TCA_CAKE_DIFFSERV_MODE, > >> + TCA_CAKE_ATM, > >> + TCA_CAKE_FLOW_MODE, > >> + TCA_CAKE_OVERHEAD, > >> + TCA_CAKE_RTT, > >> + TCA_CAKE_TARGET, > >> + TCA_CAKE_AUTORATE, > >> + TCA_CAKE_MEMORY, > >> + TCA_CAKE_NAT, > >> + TCA_CAKE_ETHERNET, > >> + TCA_CAKE_WASH, > >> + TCA_CAKE_MPU, > >> + TCA_CAKE_INGRESS, > >> + TCA_CAKE_ACK_FILTER, > >> + __TCA_CAKE_MAX > >> +}; > >> +#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1) > >> + > >> +struct tc_cake_traffic_stats { > >> + __u32 packets; > >> + __u32 link_ms; > >> + __u64 bytes; > >> +}; > >> + > >> +#define TC_CAKE_MAX_TINS (8) > >> +struct tc_cake_xstats { > >> + __u16 version; /* == 5, increments when struct extended */ > >> + __u8 max_tins; /* == TC_CAKE_MAX_TINS */ > >> + __u8 tin_cnt; /* <= TC_CAKE_MAX_TINS */ > >> + > >> + __u32 threshold_rate[TC_CAKE_MAX_TINS]; > >> + __u32 target_us[TC_CAKE_MAX_TINS]; > >> + struct tc_cake_traffic_stats sent[TC_CAKE_MAX_TINS]; > >> + struct tc_cake_traffic_stats dropped[TC_CAKE_MAX_TINS]; > >> + struct tc_cake_traffic_stats ecn_marked[TC_CAKE_MAX_TINS]; > >> + struct tc_cake_traffic_stats backlog[TC_CAKE_MAX_TINS]; > >> + __u32 interval_us[TC_CAKE_MAX_TINS]; > >> + __u32 way_indirect_hits[TC_CAKE_MAX_TINS]; > >> + __u32 way_misses[TC_CAKE_MAX_TINS]; > >> + __u32 way_collisions[TC_CAKE_MAX_TINS]; > >> + __u32 peak_delay_us[TC_CAKE_MAX_TINS]; /* ~= bulk flow delay */ > >> + __u32 avge_delay_us[TC_CAKE_MAX_TINS]; > >> + __u32 base_delay_us[TC_CAKE_MAX_TINS]; /* ~= sparse flows delay */ > >> + __u16 sparse_flows[TC_CAKE_MAX_TINS]; > >> + __u16 bulk_flows[TC_CAKE_MAX_TINS]; > >> + __u16 unresponse_flows[TC_CAKE_MAX_TINS]; /* v4 - was u32 last_len */ > >> + __u16 spare[TC_CAKE_MAX_TINS]; /* v4 - split last_len */ > >> + __u32 max_skblen[TC_CAKE_MAX_TINS]; > >> + __u32 capacity_estimate; /* version 2 */ > >> + __u32 memory_limit; /* version 3 */ > >> + __u32 memory_used; /* version 3 */ > >> + struct tc_cake_traffic_stats ack_drops[TC_CAKE_MAX_TINS]; /* v5 */ > >> +}; > >> + > > > > Rather than passing one big structure (like xstats) through netlink, it is more typical > > to break it into separate TLV items. > > This is an API in its 5th revision over four years. If ever there were a > time to break it and do something saner, it would be now, of course. An example of split out stats is if IFLA_VF_STATS_xxx Not sure if it is better, but it is expandable.