One question that has frequently been raised in previous
is: "why don't we create many, if not all, of our IP 
tunables to be per-interface?"

At least most of the tunables listed in 'ndd -get /dev/ip \?'
look like they should really be tuned per-interface, 
but we instead have the global tunable for the entire IP
module".

The ipadm command discussed earlier has the facility to
set/get these tunables per interface, but when we start
thinking bout the issue of ndd compatibility, one issue
that came up in hallway discussion: if we have
a per-interface version of some prop (say ip_icmp_err_interval
or ip_send_redirects), and the value for that prop has
been set to different value for each interface using ipadm,
what should '/sbin/ndd -get ..' print for that prop?

some possibilities that came to mind:

1. remove the support from ndd and support it only in ipadm-
   this solution provides no compatibility at all, and would
   totally break any existing script that uses ndd.

2. change the output of 'ndd -get /dev/ip <prop>'- instead 
   of printing a single int, it will have to print something 
   like (<intf>, <value>) pairs. This is also not ideal,
   since the output of ndd is affected, and any script
   that was parsing this prop would now be affected.

3. provide per-interface prop support in ipadm and leave the
   "global" setting alone. In addition to complicating our 
   kernel tremendously, I don't even see how this would work. 
   E.g. if the "prop" is some thing like a rate-limit parameter,
   and the value is different for each interface, then what would 
   the global value be?

4. dont provide per-interface props in ipadm when the prop is
   already there in ndd (not a good solution- this makes ndd
   Stable through some sort of Common Law).

None of these solutions is ideal, but I am thinking that #2 
may be the best-of-the-bad.. thoughts?

--Sowmini


  


   


Reply via email to