Re: [RFC] batched tc to improve change throughput
From: Werner Almesberger <hidden>
Date: 2005-01-19 16:45:38
jamal wrote:
As Lennert was saying, puke whatever the kernel said and allow for rollback. i.e undo the first one if it succeeded for example.
How about this: you have a shadow configuration tree on each ingress and egress point (i.e. two per interface). An update generates the shadow tree. If done, you commit the shadow tree to become the new config, and then you can quietly dismantle the old config. If you didn't like the changes, you kill the shadow tree, without committing it. To preserve queue content and element state (e.g. policer state), you'd also have to have a means to tell where to take things from, e.g. "shadow" qdisc X inherits the packets from "real" qdisc Y. All this could be checked for consistency at setup time. There are of course limitations, e.g. when you merge or split flows. As an optimization, you could have some "lazy copy": instead of creating new qdisc "inheriting" from some other, you just move it from the old to the new tree. - Werner -- _________________________________________________________________________ / Werner Almesberger, Buenos Aires, Argentina werner@almesberger.net / /_http://www.almesberger.net/____________________________________________/