From: Yang Yingliang Date: Thu, 16 Jan 2014 03:09:13 +0000 (+0800) Subject: tbf: support sending burst/mtu to kernel directly X-Git-Tag: v3.14.0~27^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a01de0a336d96b74810f0e544a40983012aaee81;p=thirdparty%2Fiproute2.git tbf: support sending burst/mtu to kernel directly 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 Signed-off-by: Yang Yingliang --- diff --git a/tc/q_tbf.c b/tc/q_tbf.c index 2fbfd3b5f..f3022b65f 100644 --- a/tc/q_tbf.c +++ b/tc/q_tbf.c @@ -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;