On Tue, 2009-07-21 at 09:43 -0700, Darren Reed wrote:
> I'm filing this as self sponsored fast track. This case seeks minor
> binding; there are no plans to backport it to an update release.

Regardless, the ipnet case itself (2006/475) has Patch binding, and it
would be silly to backport that without its kstats...  I'd suggest
declaring Patch binding on this case with a case dependency on 2006/475.

> Proposal
> --------
> This document proposes to add kstats to ipnet to provide statistics
> about how the ipnet module is performing. The statistics proposed at
> this stage are will be provided per stack instance and will be visible
> inside the respective zone.
> 
> duplicationFail - packet duplicate prior to dispatch failed
> dispatchOk - ddi_dispatch succeeded
> dispatchFail - ddi_dispatch failed

Do you mean ddi_taskq_dispatch?

> dispatchHeaderDrop - ipnet_addheader caused packet to be dropped
> dispatchPutDrop - packet dropped: cannot put packet on queue
> dispatchDupDrop - packet dropped: copymsg/dupmsg fail in ipnet_dispatch
> dispatchDeliver - packet delivered with putnext/putq

Packets are only delivered using putnext().  putq() is only used for
flow-control in ipnet's read-queue, and those packets are eventually
"devlivered" using putnext() in ipnet_rsrv().  So it would make more
semantic sense to only bump this for packets that are actually delivered
up to a consumer using putnext().

> acceptOk - accept packet filter function wants the packet
> acceptFail - accept packet filter function rejects the packet

You're defining these as Uncommitted Public interfaces, but I don't
think these can be publicly documented as-is (I'm guessing you're
documenting these in the ipnet(7D) man page).  For example, the "accept
packet filter function" is an ipnet.c implementation detail that is not
part of a public interface.  Same with the use of a taskq for various
purposes, which the dispatch* kstats you define are tied to.  If the
internal implementation of ipnet.c changes, these kstats will no longer
make sense.  So they can't be Uncommitted by definition.

I'd suggest either dropping this to Project-Private.

-Seb



Reply via email to