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
291 TCA_GRED_DPS,291 TCA_GRED_DPS,
292 TCA_GRED_MAX_P,292 TCA_GRED_MAX_P,
293 TCA_GRED_LIMIT,293 TCA_GRED_LIMIT,
294 TCA_GRED_VQ_LIST, /* nested TCA_GRED_VQ_ENTRY */
294 __TCA_GRED_MAX,295 __TCA_GRED_MAX,
295};296};
296 297
297#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)298#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
298 299
300enum {
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
307enum {
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
299struct tc_gred_qopt {325struct tc_gred_qopt {
300 __u32 limit; /* HARD maximal queue length (bytes) */326 __u32 limit; /* HARD maximal queue length (bytes) */
301 __u32 qth_min; /* Min average length threshold (bytes) */327 __u32 qth_min; /* Min average length threshold (bytes) */