MCPcopy Create free account
hub / github.com/F-Stack/f-stack / print_flowset_parms

Function print_flowset_parms

tools/ipfw/dummynet.c:470–521  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

468}
469
470static void
471print_flowset_parms(struct dn_fs *fs, char *prefix)
472{
473 int l;
474 char qs[30];
475 char plr[30];
476 char red[200]; /* Display RED parameters */
477
478 l = fs->qsize;
479 if (fs->flags & DN_QSIZE_BYTES) {
480 if (l >= 8192)
481 sprintf(qs, "%d KB", l / 1024);
482 else
483 sprintf(qs, "%d B", l);
484 } else
485 sprintf(qs, "%3d sl.", l);
486 if (fs->plr)
487 sprintf(plr, "plr %f", 1.0 * fs->plr / (double)(0x7fffffff));
488 else
489 plr[0] = '\0';
490
491 if (fs->flags & DN_IS_RED) { /* RED parameters */
492 sprintf(red,
493 "\n\t %cRED w_q %f min_th %d max_th %d max_p %f",
494 (fs->flags & DN_IS_GENTLE_RED) ? 'G' : ' ',
495 1.0 * fs->w_q / (double)(1 << SCALE_RED),
496 fs->min_th,
497 fs->max_th,
498 1.0 * fs->max_p / (double)(1 << SCALE_RED));
499 if (fs->flags & DN_IS_ECN)
500 strlcat(red, " (ecn)", sizeof(red));
501#ifdef NEW_AQM
502 /* get AQM parameters */
503 } else if (fs->flags & DN_IS_AQM) {
504 get_extra_parms(fs->fs_nr, red, DN_AQM_PARAMS);
505#endif
506 } else
507 sprintf(red, "droptail");
508
509 if (prefix[0]) {
510 printf("%s %s%s %d queues (%d buckets) %s\n",
511 prefix, qs, plr, fs->oid.id, fs->buckets, red);
512 prefix[0] = '\0';
513 } else {
514 printf("q%05d %s%s %d flows (%d buckets) sched %d "
515 "weight %d lmax %d pri %d %s\n",
516 fs->fs_nr, qs, plr, fs->oid.id, fs->buckets,
517 fs->sched_nr, fs->par[0], fs->par[1], fs->par[2], red);
518 if (fs->flags & DN_HAVE_MASK)
519 print_mask(&fs->flow_mask);
520 }
521}
522
523static void
524print_extra_delay_parms(struct dn_profile *p)

Callers 1

list_pipesFunction · 0.85

Calls 5

sprintfFunction · 0.85
get_extra_parmsFunction · 0.85
print_maskFunction · 0.85
strlcatFunction · 0.50
printfFunction · 0.50

Tested by

no test coverage detected