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

Reply via email to