Paul Mackerras wrote:
I needed to do something similar a while back and I took a very
different approach, which I think is more flexible. Rather than
implement a new round-robin scheduler I simply introduced a target
minimum fragment size into the fragment size calculation, as a per
bundle parameter that can be configured via a new ioctl. This
modifies the algorithm so that it tries to limit the number of
fragments such that each fragment is at least the minimum size. If
the minimum size is greater than the packet size it will not be
fragmented all but will instead just get sent down the next
available channel.
A pppd plugin generates the ioctl call allowing this to be tweaked
per connection. It is more flexible in that you can still have the
larger packets fragmented if you wish.
I like this a lot better than the other proposed patch. It adds less
code because it uses the fact that ppp_mp_explode() already has a
round-robin capability using the ppp->nxchan field, plus it provides a
way to control it per bundle via pppd.
If you fix up the indentation issues (2-space indent in some of the
added code -- if you're using emacs, set c-basic-offset to 8), I'll
ack it and hopefully DaveM will pick it up.
Okay, I'll fix it up when I'm back at work Tuesday and submit (today is
a UK public holiday) and also dig out and fix up the userspace code to
go with it.
Ben.
--
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html