Commit 64cb6aad authored by Vladimir Oltean's avatar Vladimir Oltean Committed by Paolo Abeni

net/sched: taprio: dynamic max_sdu larger than the max_mtu is unlimited

It makes no sense to keep randomly large max_sdu values, especially if
larger than the device's max_mtu. These are visible in "tc qdisc show".
Such a max_sdu is practically unlimited and will cause no packets for
that traffic class to be dropped on enqueue.

Just set max_sdu_dynamic to U32_MAX, which in the logic below causes
taprio to save a max_frm_len of U32_MAX and a max_sdu presented to user
space of 0 (unlimited).
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent bdf366bd
...@@ -288,6 +288,8 @@ static void taprio_update_queue_max_sdu(struct taprio_sched *q, ...@@ -288,6 +288,8 @@ static void taprio_update_queue_max_sdu(struct taprio_sched *q,
dev->hard_header_len + 1); dev->hard_header_len + 1);
} }
max_sdu_dynamic = max_frm_len - dev->hard_header_len; max_sdu_dynamic = max_frm_len - dev->hard_header_len;
if (max_sdu_dynamic > dev->max_mtu)
max_sdu_dynamic = U32_MAX;
} }
max_sdu = min(max_sdu_dynamic, max_sdu_from_user); max_sdu = min(max_sdu_dynamic, max_sdu_from_user);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment