Message ID | 1360493539-14868-8-git-send-email-jiri@resnulli.us |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Hmm. I think that this approach might not be correct after all. This might break existing setups when user is taking gso into account and adjust mtu and burst accordingly. After more thorough study, I'm under impression that gso skbs should not be handled in any different way. Thoughts? Sun, Feb 10, 2013 at 11:52:15AM CET, jiri@resnulli.us wrote: >This check made bigger packets incorrectly dropped. Remove this >limitation for gso skbs. > >Signed-off-by: Jiri Pirko <jiri@resnulli.us> >Acked-by: Eric Dumazet <edumazet@google.com> >--- > net/sched/sch_tbf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c >index e05710a..dc562a8 100644 >--- a/net/sched/sch_tbf.c >+++ b/net/sched/sch_tbf.c >@@ -121,7 +121,7 @@ static int tbf_enqueue(struct sk_buff *skb, struct Qdisc *sch) > struct tbf_sched_data *q = qdisc_priv(sch); > int ret; > >- if (qdisc_pkt_len(skb) > q->max_size) >+ if (qdisc_pkt_len(skb) > q->max_size && !skb_is_gso(skb)) > return qdisc_reshape_fail(skb, sch); > > ret = qdisc_enqueue(skb, q->qdisc); >-- >1.8.1.2 > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Jiri Pirko <jiri@resnulli.us> Date: Mon, 11 Feb 2013 22:02:20 +0100 > Hmm. I think that this approach might not be correct after all. This > might break existing setups when user is taking gso into account and > adjust mtu and burst accordingly. After more thorough study, I'm under > impression that gso skbs should not be handled in any different way. > > Thoughts? I really think userspace should be ignorant of GSO to the maximum extent to which that is possible. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c index e05710a..dc562a8 100644 --- a/net/sched/sch_tbf.c +++ b/net/sched/sch_tbf.c @@ -121,7 +121,7 @@ static int tbf_enqueue(struct sk_buff *skb, struct Qdisc *sch) struct tbf_sched_data *q = qdisc_priv(sch); int ret; - if (qdisc_pkt_len(skb) > q->max_size) + if (qdisc_pkt_len(skb) > q->max_size && !skb_is_gso(skb)) return qdisc_reshape_fail(skb, sch); ret = qdisc_enqueue(skb, q->qdisc);