Peter Memishian writes:
> First, thanks to all who came to the kick-off meeting.  For those unable
> to attend, everything you need is linked from the code review webrev at:
> 
>      http://cr.opensolaris.org/~meem/clearview-ipmp-cr/

Next batch; one more section covered.  I'll be going over the
responses to the previous batch soon, and finishing up the review.

General:

  Do you need to modify SNMP as well?  It looks to me like that should
  be using LIFC_UNDER_IPMP, because it's an administrative utility.
  What else (possibly outside of ON) should use that flag?

+++ IPMP-aware userland changes

usr/src/cmd/cmd-inet/sbin/dhcpagent/agent.c

  Reviewed; no comments.

usr/src/cmd/cmd-inet/sbin/dhcpagent/bound.c

  360: what happens if the IPMP test addresses handed out via DHCP are
  on a separate subnet and thus need a separate set of probe targets
  (i.e., "routers")?  One of the weird IPMP things we still do is that
  we use the gateway addresses as probe targets, and this code will
  limit the source of that information.

usr/src/cmd/cmd-inet/sbin/dhcpagent/interface.c

  740: logic to handle IFF_DUPLICATE and user manipulation of IFF_UP
  seems to be gone.  (I know we talked about this in the past ... but
  I'm not sure what the strategy is here.)

usr/src/cmd/cmd-inet/sbin/dhcpagent/interface.h
usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c

  Reviewed; no comments.

usr/src/cmd/cmd-inet/sbin/dhcpagent/request.c

  1010: nit: is the test of pif_under_ipmp needed here?

usr/src/cmd/cmd-inet/sbin/dhcpagent/states.c

  958: this looks like a policy decision to me.  For IPMP test
  addresses acquired by DHCP, this code says that we must not use the
  interface's hardware address as a client identifier.  The
  higher-level choice is that we're letting test addresses 'float'
  among the physical interfaces at the MAC address level.

  I think the comment here should say something about avoiding using
  the hardware address for the client identifier (even though that
  disables server-side duplicate checks) on IPMP test addresses so
  that we don't need a special escape mechanism to send DHCP messages
  on a "failed" interface.

usr/src/cmd/cmd-inet/sbin/ifparse/ifparse.c

  185: I think this should be PARSELOG0 instead of PARSENOW.  It's
  only valid on logical interface 0 (the "physical" interface), right?

usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c

  Reviewed; no comments.

usr/src/cmd/cmd-inet/usr.lib/in.ndpd/main.c

  151: could possibly check here that this doesn't blow off the end of
  the buffer that holds optp->nd_opt_lla_hdw_addr.

  179: nit: stray extra space here.

  237: I don't think this works.  It's adding in sizeof (*ra) twice,
  and I suspect it's sending out malformed packets.  The code should
  instead look like this:

        optlen = add_opt_lla(pi, (struct nd_opt_lla *)pptr);
        packetlen += optlen;
        pptr += optlen;

usr/src/cmd/cmd-inet/usr.lib/in.ndpd/ndp.c

  Reviewed; no comments.

usr/src/cmd/cmd-inet/usr.lib/in.ndpd/tables.c

  622: nit: probably not needed.

usr/src/cmd/cmd-inet/usr.lib/in.ndpd/tables.h
usr/src/cmd/cmd-inet/usr.lib/mdnsd/mDNSUNP.c
usr/src/cmd/cmd-inet/usr.sbin/in.routed/defs.h
usr/src/cmd/cmd-inet/usr.sbin/in.routed/trace.c
usr/src/cmd/cmd-inet/usr.sbin/ping/ping.c

  Reviewed; no comments.

usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_capture.c

  142: does snoop support for the IPMP virtual interfaces arrive in
  some separate project?  (I'm not clear on how IPMP rearchitecture
  and Clearview observability relate.)

usr/src/cmd/cmd-inet/usr.sbin/traceroute/traceroute.c

  Reviewed; no comments.

usr/src/cmd/nscd/nscd_frontend.c

  1461: what does nscd do (or need to do) to be "aware" of IPMP
  interfaces?  It looks like this just injects the underlying
  interfaces into the sorting rules, but do we really want to do that?
  Why should IPMP test addresses get preferential treatment during the
  sort?

usr/src/cmd/rcm_daemon/common/ip_anon_rcm.c

  Reviewed; no comments.

usr/src/cmd/zoneadmd/vplat.c

  2515: nit: s/netmask interface/netmask the interface/

usr/src/lib/libbsm/common/adt.c
usr/src/lib/libinetcfg/common/inetcfg.c
usr/src/lib/libinetutil/common/ifaddrlist.c

  Reviewed; no comments.

usr/src/lib/libinetutil/common/ifaddrlistx.c

  79: not that I care much, but why alloca here?  I thought most
  avoided it unless it was needed or obviously safe.

  98: leaks 's'.

usr/src/lib/libinetutil/common/inetutil.c

  Reviewed; no comments.

usr/src/lib/libinetutil/common/libinetutil.h

  59-61: the arguments could be const; the functions don't modify
  storage.

  96: s/third/fourth/

  98: this whole `ifaddrlist' thing seems unwise to me.  If we're
  going to use BSD functions, we need to follow the BSD definitions of
  those functions.  Otherwise, we need to come up with our own names.
  Having a function with the same name as something in BSD but having
  a different set of arguments and different functionality looks like
  a recipe for disaster to me.

usr/src/lib/libinetutil/common/mapfile-vers
usr/src/lib/libnsl/nss/netdir_inet_sundry.c

  Reviewed; no comments.

usr/src/lib/libsocket/inet/interface_id.c

  147: while here, please fix this; bump the count up and (if
  possible) add the redo logic.  I doubt anyone's going to touch this
  stuff again soon.

usr/src/lib/smbsrv/libsmbns/common/smbns_dyndns.c

  Reviewed; no comments.

-- 
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