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