Ejemplo n.º 1
0
static int tbf_dump_full(struct rtnl_qdisc *qdisc, struct nl_dump_params *p,
                         int line)
{
    struct rtnl_tbf *tbf = tbf_qdisc(qdisc);

    if (!tbf)
        goto ignore;

    if (1) {
        char *bu, *cu;
        double bs = nl_cancel_down_bytes(tbf->qt_rate_bucket, &bu);
        double cl = nl_cancel_down_bytes(1 << tbf->qt_rate.rs_cell_log,
                                         &cu);

        dp_dump(p, "mpu %u rate-bucket-size %1.f%s "
                "rate-cell-size %.1f%s\n",
                tbf->qt_mpu, bs, bu, cl, cu);

    }

    if (tbf->qt_mask & TBF_ATTR_PEAKRATE) {
        char *pru, *prbu, *bsu, *clu;
        double pr, prb, bs, cl;

        pr = nl_cancel_down_bytes(tbf->qt_peakrate.rs_rate, &pru);
        prb = nl_cancel_down_bits(tbf->qt_peakrate.rs_rate * 8, &prbu);
        bs = nl_cancel_down_bits(tbf->qt_peakrate_bucket, &bsu);
        cl = nl_cancel_down_bits(1 << tbf->qt_peakrate.rs_cell_log,
                                 &clu);

        dp_dump_line(p, line++, "    peak-rate %.2f%s/s (%.0f%s) "
                     "bucket-size %.1f%s cell-size %.1f%s",
                     "latency %.1f%s",
                     pr, pru, prb, prbu, bs, bsu, cl, clu);
    }

ignore:
    return line;
}
Ejemplo n.º 2
0
static void tbf_dump_details(struct rtnl_tc *tc, void *data,
			     struct nl_dump_params *p)
{
	struct rtnl_tbf *tbf = data;

	if (!tbf)
		return;

	if (1) {
		char *bu, *cu;
		double bs = nl_cancel_down_bytes(tbf->qt_rate_bucket, &bu);
		double cl = nl_cancel_down_bytes(1 << tbf->qt_rate.rs_cell_log,
						 &cu);

		nl_dump(p, "rate-bucket-size %1.f%s "
			   "rate-cell-size %.1f%s\n",
			bs, bu, cl, cu);

	}

	if (tbf->qt_mask & TBF_ATTR_PEAKRATE) {
		char *pru, *prbu, *bsu, *clu;
		double pr, prb, bs, cl;
		
		pr = nl_cancel_down_bytes(tbf->qt_peakrate.rs_rate, &pru);
		prb = nl_cancel_down_bits(tbf->qt_peakrate.rs_rate * 8, &prbu);
		bs = nl_cancel_down_bits(tbf->qt_peakrate_bucket, &bsu);
		cl = nl_cancel_down_bits(1 << tbf->qt_peakrate.rs_cell_log,
					 &clu);

		nl_dump_line(p, "    peak-rate %.2f%s/s (%.0f%s) "
				"bucket-size %.1f%s cell-size %.1f%s"
				"latency %.1f%s",
			     pr, pru, prb, prbu, bs, bsu, cl, clu);
	}
}
Ejemplo n.º 3
0
static void tbf_dump_line(struct rtnl_tc *tc, void *data,
			  struct nl_dump_params *p)
{
	double r, rbit, lim;
	char *ru, *rubit, *limu;
	struct rtnl_tbf *tbf = data;

	if (!tbf)
		return;

	r = nl_cancel_down_bytes(tbf->qt_rate.rs_rate, &ru);
	rbit = nl_cancel_down_bits(tbf->qt_rate.rs_rate*8, &rubit);
	lim = nl_cancel_down_bytes(tbf->qt_limit, &limu);

	nl_dump(p, " rate %.2f%s/s (%.0f%s) limit %.2f%s",
		r, ru, rbit, rubit, lim, limu);
}
Ejemplo n.º 4
0
static void htb_class_dump_line(struct rtnl_tc *tc, void *data,
				struct nl_dump_params *p)
{
	struct rtnl_htb_class *htb = data;

	if (!htb)
		return;

	if (htb->ch_mask & SCH_HTB_HAS_RATE) {
		double r, rbit;
		char *ru, *rubit;

		r = nl_cancel_down_bytes(htb->ch_rate.rs_rate, &ru);
		rbit = nl_cancel_down_bits(htb->ch_rate.rs_rate*8, &rubit);

		nl_dump(p, " rate %.2f%s/s (%.0f%s) log %u",
			r, ru, rbit, rubit, 1<<htb->ch_rate.rs_cell_log);
	}
}
Ejemplo n.º 5
0
static void htb_class_dump_details(struct rtnl_tc *tc, void *data,
				   struct nl_dump_params *p)
{
	struct rtnl_htb_class *htb = data;

	if (!htb)
		return;

	/* line 1 */
	if (htb->ch_mask & SCH_HTB_HAS_CEIL) {
		double r, rbit;
		char *ru, *rubit;

		r = nl_cancel_down_bytes(htb->ch_ceil.rs_rate, &ru);
		rbit = nl_cancel_down_bits(htb->ch_ceil.rs_rate*8, &rubit);

		nl_dump(p, " ceil %.2f%s/s (%.0f%s) log %u",
			r, ru, rbit, rubit, 1<<htb->ch_ceil.rs_cell_log);
	}

	if (htb->ch_mask & SCH_HTB_HAS_PRIO)
		nl_dump(p, " prio %u", htb->ch_prio);

	if (htb->ch_mask & SCH_HTB_HAS_RBUFFER) {
		double b;
		char *bu;

		b = nl_cancel_down_bytes(htb->ch_rbuffer, &bu);
		nl_dump(p, " rbuffer %.2f%s", b, bu);
	}

	if (htb->ch_mask & SCH_HTB_HAS_CBUFFER) {
		double b;
		char *bu;

		b = nl_cancel_down_bytes(htb->ch_cbuffer, &bu);
		nl_dump(p, " cbuffer %.2f%s", b, bu);
	}

	if (htb->ch_mask & SCH_HTB_HAS_QUANTUM)
		nl_dump(p, " quantum %u", htb->ch_quantum);
}
Ejemplo n.º 6
0
int nl_rate2str(unsigned long long rate, int type, char *buf, size_t len)
{
	char *unit;
	double frac;

	switch (type) {
	case NL_BYTE_RATE:
		frac = nl_cancel_down_bytes(rate, &unit);
		break;
	
	case NL_BIT_RATE:
		frac = nl_cancel_down_bits(rate, &unit);
		break;
	
	default:
		BUG();
	}

	return snprintf(buf, len, "%.2f%s/s", frac, unit);
}
Ejemplo n.º 7
0
static int tbf_dump_brief(struct rtnl_qdisc *qdisc, struct nl_dump_params *p,
                          int line)
{
    double r, rbit, lim;
    char *ru, *rubit, *limu;
    struct rtnl_tbf *tbf = tbf_qdisc(qdisc);

    if (!tbf)
        goto ignore;

    r = nl_cancel_down_bytes(tbf->qt_rate.rs_rate, &ru);
    rbit = nl_cancel_down_bits(tbf->qt_rate.rs_rate*8, &rubit);
    lim = nl_cancel_down_bytes(tbf->qt_limit, &limu);

    dp_dump(p, " rate %.2f%s/s (%.0f%s) limit %.2f%s",
            r, ru, rbit, rubit, lim, limu);

ignore:
    return line;
}