History

net: sched: gred: provide a better structured dump and expose stats

Currently all GRED's virtual queue data is dumped in a single array in a single attribute. This makes it pretty much impossible to add new fields. In order to expose more detailed stats add a new set of attributes. We can now expose the 64 bit value of bytesin and all the mark stats which were not part of the original design.

Jakub Kicinski committed 7 years ago

Commit 80e22e91 parent 9f5cd0c2 files · +78 −1Browse files

Showing the changes to include/uapi/linux (1 of 2 files). Show all

Unified · Split

include/uapi/linux/pkt_sched.h+26−0
@@ -291,11 +291,37 @@ enum { · 290 unmodified lines
291291 TCA_GRED_DPS,
292292 TCA_GRED_MAX_P,
293293 TCA_GRED_LIMIT,
294+ TCA_GRED_VQ_LIST, /* nested TCA_GRED_VQ_ENTRY */
294295 __TCA_GRED_MAX,
295296 };
296297
297298 #define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
298299
300+enum {
301+ TCA_GRED_VQ_ENTRY_UNSPEC,
302+ TCA_GRED_VQ_ENTRY, /* nested TCA_GRED_VQ_* */
303+ __TCA_GRED_VQ_ENTRY_MAX,
304+};
305+#define TCA_GRED_VQ_ENTRY_MAX (__TCA_GRED_VQ_ENTRY_MAX - 1)
306+
307+enum {
308+ TCA_GRED_VQ_UNSPEC,
309+ TCA_GRED_VQ_PAD,
310+ TCA_GRED_VQ_DP, /* u32 */
311+ TCA_GRED_VQ_STAT_BYTES, /* u64 */
312+ TCA_GRED_VQ_STAT_PACKETS, /* u32 */
313+ TCA_GRED_VQ_STAT_BACKLOG, /* u32 */
314+ TCA_GRED_VQ_STAT_PROB_DROP, /* u32 */
315+ TCA_GRED_VQ_STAT_PROB_MARK, /* u32 */
316+ TCA_GRED_VQ_STAT_FORCED_DROP, /* u32 */
317+ TCA_GRED_VQ_STAT_FORCED_MARK, /* u32 */
318+ TCA_GRED_VQ_STAT_PDROP, /* u32 */
319+ TCA_GRED_VQ_STAT_OTHER, /* u32 */
320+ __TCA_GRED_VQ_MAX
321+};
322+
323+#define TCA_GRED_VQ_MAX (__TCA_GRED_VQ_MAX - 1)
324+
299325 struct tc_gred_qopt {
300326 __u32 limit; /* HARD maximal queue length (bytes) */
301327 __u32 qth_min; /* Min average length threshold (bytes) */