Responding separately regarding ipadm interfaces.
On 01/14/10 11:04 AM, Kacheong Poon wrote:
>
> Is there a need to have a set-cong-prop command to change
> some cc algorithm's behavior? For example, we may want to
> be able to change max increment of cwnd for CUBIC. If we
> have set-cong-prop, we should have show-cong-prop and reset-..
I thought about that. Given our past experiences with private driver
properties (which this is quite similar to), I came to the conclusion
that it might not be worth the effort. That is, the usefulness of having
stable administrative interfaces for private cong module properties is
overweighted by the cost of implementation and ongoing maintenance. I
figure that folks wanting such low level of control wouldn't mind
setting tunables directly (via mdb or /etc/system).
On 01/15/10 07:02 AM, sowmini.varad...@sun.com wrote:
To add to this further, I think the proposal in Section 2 is a
significant departure from the <verb>-<object> syntax that is
being carefully enforced for all the other dladm/ipadm sub-commands.
"cong" is used as an object-type in the proposed "ipadm add-cong"
syntax, and it is used as a property in the "ipadm set-prop -p cong=.."
syntax. We've got to go with one or the other.
Hmm, I haven't thought of it that way. It's nice to consider more than
one point of view.
Further, could you please clarify exactly what the registration
process in "add-cong" does, esp if (as the subsequent paragraph documents)
all congestion algorithm are automatically registered?
As I noted previously, modules are not automatically registered by
placing them in /kernel/tcpcong. add-cong is supposed to be invoked as
part of package installation, just like add_drv(1M) is invoked when
driver packages is installed. And therefore there is no "-t" problem
either, algorithm registration is always persistent.
perhaps it would be simpler to add one extra property:
ipadm set-prop -p cong+=algorithm protocol # adds algorithm to existing set
"cong" right now means the default algorithm, so this specifically
wouldn't work, since there can only be one default. But I get your idea
to use a string-array property for registered algorithms, e.g.:
ipadm set-prop -p cong_all+=algorithm protocol
ipadm set-prop -p cong_default=algorithm protocol
It is definitely worth consideration. I need to think a bit and verify
whether this is functionally equivalent to the <verb>-cong scheme, and
if it is, I'd have no problem switching to your scheme. You know I'm all
about making everyone around me happy :)
One other question that I had when reading the document- Section 1 states
that "there is no one algorithm that will work well for every possible
network". So would the algorithm choice then depend on the outgoing
interface? the outgoing gateway? the connection destination?
(since the actual path taken to the destination is non-deterministic,
I can see all of the above as impacting factors that an admin might
want to use as constraints)
Yes, I can think of various heuristics for the system to select an
algorithm automatically. Right now we only provide the per-zone
granularity, but foresee further improvements in the future. This is
more of a project management decision than an architectural, we just
want to get this out there ASAP, so we can start collecting feedback
from the users with a variety of links and workloads; we can only go so
far with lab simulations. Note however, that this is only a limitation
for congestion-unaware applications - each process is free to switch
between algorithms arbitrarily using the {TCP,SCTP}_CONGESTION socket
option.
-Artem
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org