]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
tbf: support sending burst/mtu to kernel directly
authorYang Yingliang <yangyingliang@huawei.com>
Thu, 16 Jan 2014 03:09:13 +0000 (11:09 +0800)
committerStephen Hemminger <stephen@networkplumber.org>
Mon, 20 Jan 2014 20:32:14 +0000 (12:32 -0800)
To avoid loss when transforming burst to buffer in userspace, send
burst/mtu to kernel directly.

Kernel commit 2e04ad424b("sch_tbf: add TBF_BURST/TBF_PBURST attribute")
make it can handle burst/mtu.

Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
tc/q_tbf.c

index 2fbfd3b5fdf5b00da4fa488c2ae3313f3fa03c1d..f3022b65f76a9e8f1741781a7a372cd334e57789 100644 (file)
@@ -232,12 +232,14 @@ static int tbf_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nl
        tail = NLMSG_TAIL(n);
        addattr_l(n, 1024, TCA_OPTIONS, NULL, 0);
        addattr_l(n, 2024, TCA_TBF_PARMS, &opt, sizeof(opt));
+       addattr_l(n, 2124, TCA_TBF_BURST, &buffer, sizeof(buffer));
        if (rate64 >= (1ULL << 32))
                addattr_l(n, 2124, TCA_TBF_RATE64, &rate64, sizeof(rate64));
        addattr_l(n, 3024, TCA_TBF_RTAB, rtab, 1024);
        if (opt.peakrate.rate) {
                if (prate64 >= (1ULL << 32))
                        addattr_l(n, 3124, TCA_TBF_PRATE64, &prate64, sizeof(prate64));
+               addattr_l(n, 3224, TCA_TBF_PBURST, &mtu, sizeof(mtu));
                addattr_l(n, 4096, TCA_TBF_PTAB, ptab, 1024);
        }
        tail->rta_len = (void *) NLMSG_TAIL(n) - (void *) tail;