I just dumped a large number of issues for today's inception review
into the 'issues' file. I've copied the list below in case you want
to discuss before the meeting or otherwise comment on them.
I have to apologize to the project team for this. It's no good
excuse, but I've been tied up elsewhere for a while, and I've been
missing out on a lot of the details with this project. Obviously, if
I'd been more engaged, I would have given you more notice of these
issues and would have asked questions and discussed these things
before this review.
The good news is that this is just an inception, so there's no pass or
fail grade involved. Better now than at commitment time. :-/
jdc-1 3.1.1: why doesn't create-if automatically do what up-if does?
Doesn't that defeat the purpose of having a permanent store?
(If "create-if" is done implicitly by some of the other
commands, such as "create-addr", does this mean that "up-if"
is skipped? Or does it implicitly do both?)
jdc-2 What is the difference between "delete-if -t foo0" and
"down-if foo0"?
jdc-3 4.1: why do temporary addresses on permanent interfaces
generate a warning? Isn't that the most likely usage?
(Similar comment in 4.2 about deleting a temporary address on
a permanent interface.)
jdc-4 4.1: how do I manipulate static addresses that are configured
in symbolic (name) form?
jdc-5 4.1: if I don't use "/n" (CIDR notation), what happens? Error
or netmask lookup?
jdc-6 Is create-ipv6addrs for IPv6 and create-dhcp for IPv4 really
the best factoring? How would IPv4 link locals fit into such
a scheme? Why is DHCPv6 not administered using the *-dhcp
commands?
jdc-7 5.1: why not have labels for both static and automatic
addresses?
jdc-8 It would be good to see some more worked examples. I *think*
that in order to create an IPv6 static address, I need to do
something like this:
ipadm create-if -f inet6 bge0
ipadm up-if -f inet6 bge0
ipadm create-ipv6addrs -i bge0 myv6local
ipadm create-addr -i bge0 2005::1/64
rather than this:
ifconfig bge0 inet6 plumb up
ifconfig bge0 inet6 addif 2005::1/64 up
Is that right?
jdc-9 What's the difference between "tentative" and "optimistic"
DAD? And where do the IFA_* flags come from?
jdc-10 I love the idea of getifaddrs(), but object to putting it in
libipadm. We don't need that barrier to portability. This
belongs in libsocket/libxnet or (feeling optimistic for the
future) libc. Plus, a Committed interface floating in the
middle of a Consolidation Private library sounds like a
mistake.
(In the description of this call, you say ~IFF_UP, but I think
you mean that only IFF_UP addresses are returned.)
jdc-11 How will the overlap between 'ipmpstat' and 'ipadm show-ipmp'
be handled?
jdc-12 14.2: why not just have persistent data loaded automatically
(per jdc-1) and allow legacy methods (if used at all) to
override? The conditional logic described here sounds hard to
use (and implement).
jdc-13 How does DR interface with this? (Is there a DR rewrite?)
What becomes of "ifconfig configinfo"?
jdc-14 Is there a separate project to update Sun Cluster to use the
new interfaces?
jdc-15 The new "state" property seems to involve partial success and
partial failure semantics. What happens if I set "up" but not
all of the addresses come up? If some or all have failed DAD,
what state do I see when I read that property? (This looks
like an attempt to recapture BSD semantics, but I'm unsure if
it works ...)
jdc-16 Using the name "routing" for the IP forwarding control is very
confusing. Either use "router" (to align with IFF_ROUTER) or
use "forwarding" (to align with routeadm). (I prefer the
latter, but pick one.)
jdc-17 How does "icmp_respond" work? Can I control just one type or
are there multiple instances of this parameter on an
interface? (If there are multiple instances, then how do I
refer to each instance?)
jdc-18 Why are some parameters (forward{,6}_src_routed) broken out
for v4 and v6, while others (icmp_err_interval) are not?
jdc-19 I suggest leaving out "multidata_outbound" and "lso_outbound"
as examples of those corner case tweaks that needn't be in the
committed set of properties. "Real" LSO should just work, and
shouldn't need administrative fiddling. Such fiddling is
really an internal design matter, and not (as with the other
controls) a matter of on-the-wire behavior.
jdc-99 Nit: subcommands listed in 20q don't seem to match design
document.
--
James Carlson, Solaris Networking <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677