K 10 svn:author V 7 rwatson K 8 svn:date V 27 2009-05-18T17:08:57.265019Z K 7 svn:log V 1290 Further refinement of netisr2: - Add netisr2_getqlimit() and netisr2_setqlimit() interfaces to allow protocols to query and manipulate per-workstream queue depth limits. This is required for routing socket and IPv4 netisrs which currently offer this functionality. - Add netisr2_getqdrops() and netisr2_clearqdrops() interfaces to allow protocols to query drops across CPUs, as well as clear drop statistics. This is required for IPv4. - Use u_int64_t rather than u_int for stats. - Rather than passing in each parameter individually for netisr2_register(), netisr2_unregister(), define a public struct netisr_handler, with padding, to describe protocols. - Explicitly enumerate policies supported by netisr2, rather than deriving them from implemented function pointers; this allows multiple policies to depend on the same function pointers if desired. We implement three policies now: NETISR_POLICY_SOURCE, NETISR_POLICY_FLOW, NETISR_POLICY_CPU. - Now that we use swi's, we can acquire the netisr lock around processing runs, since the wakeup can be waited for without holding the workstream lock. - Garbage collect NWS_SWI_BOUND and manual binding with sched_bind(), use intr_event_bind() now that this is supported for software interrupt threads. END