// // Copyright 1998-1999 Richard Pettit, All Rights Reserved // /* * Copyright (c) 1994 by Sun Microsystems, Inc. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ /* The copyright notice above does not evidence any */ /* actual or intended publication of such source code. */ /* * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * PROPRIETARY NOTICE (Combined) * * This source code is unpublished proprietary information * constituting, or derived under license from AT&T's UNIX(r) System V. * In addition, portions of such source code were derived from Berkeley * 4.3 BSD under license from the Regents of the University of * California. * * * * Copyright Notice * * Notice of copyright on this source code product does not indicate * publication. * * (c) 1986,1987,1988,1989 Sun Microsystems, Inc * (c) 1983,1984,1985,1986,1987,1988,1989 AT&T. * All rights reserved. * */ #ifndef _KSTAT_SE_ #define _KSTAT_SE_ // for SYS_NMLN #include /* These are the explicit declarations of kstat structure types that "se" * * knows about. * * * * IN ORDER TO USE THE KSTAT FEATURES OF "se", THIS FILE MUST BE INCLUDED. * * * * MODIFICATION OF THESE STRUCTURES WILL RESULT IN BOGUS RESULTS. * * * * Addition of new types with the "ks_" prefix is harmless. */ #if MINOR_VERSION >= 70 # define rfs_counter_t uint64_t #else # define rfs_counter_t uint32_t #endif kstat struct "rpc_client" ks_rpc_client { rfs_counter_t calls; rfs_counter_t badcalls; rfs_counter_t retrans; rfs_counter_t badxids; rfs_counter_t timeouts; rfs_counter_t newcreds; rfs_counter_t badverfs; rfs_counter_t timers; rfs_counter_t nomem; rfs_counter_t cantsend; }; kstat struct "rpc_server" ks_rpc_server { rfs_counter_t calls; rfs_counter_t badcalls; rfs_counter_t nullrecv; rfs_counter_t badlen; rfs_counter_t xdrcall; rfs_counter_t dupchecks; rfs_counter_t dupreqs; }; kstat struct "segmap" ks_segmap { ulong_t fault; ulong_t faulta; ulong_t getmap; ulong_t get_use; ulong_t get_reclaim; ulong_t get_reuse; ulong_t get_unused; ulong_t get_nofree; ulong_t rel_async; ulong_t rel_write; ulong_t rel_free; ulong_t rel_abort; ulong_t rel_dontneed; ulong_t release; ulong_t pagecreate; }; kstat struct "biostats" ks_biostats { uint32_t buffer_cache_lookups; uint32_t buffer_cache_hits; uint32_t new_buffer_requests; uint32_t waits_for_buffer_allocs; uint32_t buffers_locked_by_someone; uint32_t duplicate_buffers_found; }; kstat struct "system_misc" ks_system_misc { uint32_t ncpus; uint32_t lbolt; uint32_t deficit; uint32_t clk_intr; uint32_t vac; uint32_t nproc; uint32_t avenrun_1min; uint32_t avenrun_5min; uint32_t avenrun_15min; #if MINOR_VERSION >= 60 uint32_t boot_time; #endif }; kstat struct "system_pages" ks_system_pages { ulong_t physmem; ulong_t nalloc; ulong_t nfree; ulong_t nalloc_calls; ulong_t nfree_calls; ulong_t kernelbase; ulong_t econtig; ulong_t freemem; ulong_t availrmem; ulong_t lotsfree; ulong_t desfree; ulong_t minfree; ulong_t fastscan; ulong_t slowscan; ulong_t nscan; ulong_t desscan; ulong_t pp_kernel; ulong_t pagesfree; ulong_t pageslocked; ulong_t pagesio; ulong_t pagestotal; }; kstat struct "cpu_info:" ks_cpu_info { int number$; string name$; string state; ulong_t state_begin; string cpu_type; string fpu_type; ulong_t clock_MHz; }; #if MINOR_VERSION >= 60 kstat struct "segplckstat" ks_segplckstat { ulong_t cache_hit; ulong_t cache_miss; ulong_t active_pages; ulong_t cached_pages; ulong_t purge_count; }; kstat struct "zero_copy" ks_streams_zero_copy { ulong_t mapins; ulong_t pageflips; ulong_t misses; ulong_t kmapcaches; ulong_t cowfaults; ulong_t disabled; ulong_t busyslots; }; kstat struct "daderror:" ks_daderror { int number$; string name$; uint32_t "Soft Errors"; uint32_t "Hard Errors"; uint32_t "Transport Errors"; string Model; string Revision; string "Serial No"; uint64_t Size; uint32_t "Media Error"; uint32_t "Device Not Ready"; uint32_t "No Device"; uint32_t Recoverable; uint32_t "Illegal Request"; }; kstat struct "sderr:" ks_sderr { int number$; string name$; uint32_t "Soft Errors"; uint32_t "Hard Errors"; uint32_t "Transport Errors"; string Vendor; string Product; string Revision; string "Serial No"; uint64_t Size; uint32_t "Media Error"; uint32_t "Device Not Ready"; uint32_t "No Device"; uint32_t Recoverable; uint32_t "Illegal Request"; uint32_t "Predictive Failure Analysis"; }; kstat struct "*fhc" ks_fhc { int number$; string name$; uint32_t csr; uint32_t bsr; }; kstat struct "*address_controller" ks_address_controller { int number$; string name$; uint32_t acmemctl; uint32_t acmemdecode0; uint32_t acmemdecode1; uint32_t acmccr; uint32_t accounter; }; kstat struct "sysctrl" ks_sysctrl { uint32_t csr; uint32_t status1; uint32_t status2; uint32_t clk_freq2; uint32_t fan_status; uint32_t key_status; uint32_t power_status; }; kstat struct "kmem_default_backend" ks_kmem_default_backend { ulong_t memory_class; ulong_t active_clients; ulong_t page_size; ulong_t bytes_inuse; ulong_t alloc_8K; ulong_t inuse_8K; ulong_t alloc_16K; ulong_t inuse_16K; ulong_t alloc_32K; ulong_t inuse_32K; ulong_t alloc_64K; ulong_t inuse_64K; ulong_t alloc_128K; ulong_t inuse_128K; ulong_t alloc_256K; ulong_t inuse_256K; ulong_t alloc_512K; ulong_t inuse_512K; ulong_t alloc_1M; ulong_t inuse_1M; }; #endif // MINOR_VERSION >= 60 kstat struct "kmem_misc" ks_kmem_misc { ulong_t arena_size; #if MINOR_VERSION >= 60 ulong_t huge_size; #endif ulong_t huge_alloc; ulong_t huge_alloc_fail; ulong_t perm_size; ulong_t perm_alloc; ulong_t perm_alloc_fail; }; kstat struct "inode_cache" ks_inode_cache { ulong_t size; ulong_t maxsize; ulong_t hits; ulong_t misses; #if MINOR_VERSION < 60 ulong_t mallocs; ulong_t frees; #else ulong_t "kmem allocs"; ulong_t "kmem frees"; #endif ulong_t "maxsize reached"; ulong_t "puts at frontlist"; ulong_t "puts at backlist"; ulong_t "queues to free"; ulong_t scans; #if MINOR_VERSION >= 60 ulong_t "thread idles"; ulong_t "lookup idles"; ulong_t "vget idles"; ulong_t "cache allocs"; ulong_t "cache frees"; ulong_t "pushes at close"; #endif }; kstat struct "rpc_clts_client" ks_rpc_clts_client { rfs_counter_t calls; rfs_counter_t badcalls; rfs_counter_t retrans; rfs_counter_t badxids; rfs_counter_t timeouts; rfs_counter_t newcreds; rfs_counter_t badverfs; rfs_counter_t timers; rfs_counter_t nomem; rfs_counter_t cantsend; }; kstat struct "rpc_cots_client" ks_rpc_cots_client { rfs_counter_t calls; rfs_counter_t badcalls; rfs_counter_t badxids; rfs_counter_t timeouts; rfs_counter_t newcreds; rfs_counter_t badverfs; rfs_counter_t timers; rfs_counter_t cantconn; rfs_counter_t nomem; rfs_counter_t interrupts; }; kstat struct "rpc_clts_server" ks_rpc_clts_server { rfs_counter_t calls; rfs_counter_t badcalls; rfs_counter_t nullrecv; rfs_counter_t badlen; rfs_counter_t xdrcall; rfs_counter_t dupchecks; rfs_counter_t dupreqs; }; kstat struct "rpc_cots_server" ks_rpc_cots_server { rfs_counter_t calls; rfs_counter_t badcalls; rfs_counter_t nullrecv; rfs_counter_t badlen; rfs_counter_t xdrcall; rfs_counter_t dupchecks; rfs_counter_t dupreqs; }; kstat struct "rfsproccnt_v2" ks_rfs_proc_v2 { rfs_counter_t null; rfs_counter_t getattr; rfs_counter_t setattr; rfs_counter_t root; rfs_counter_t lookup; rfs_counter_t readlink; rfs_counter_t read; rfs_counter_t wrcache; rfs_counter_t write; rfs_counter_t create; rfs_counter_t remove; rfs_counter_t rename; rfs_counter_t link; rfs_counter_t symlink; rfs_counter_t mkdir; rfs_counter_t rmdir; rfs_counter_t readdir; rfs_counter_t statfs; }; kstat struct "rfsreqcnt_v2" ks_rfs_req_v2 { rfs_counter_t null; rfs_counter_t getattr; rfs_counter_t setattr; rfs_counter_t root; rfs_counter_t lookup; rfs_counter_t readlink; rfs_counter_t read; rfs_counter_t wrcache; rfs_counter_t write; rfs_counter_t create; rfs_counter_t remove; rfs_counter_t rename; rfs_counter_t link; rfs_counter_t symlink; rfs_counter_t mkdir; rfs_counter_t rmdir; rfs_counter_t readdir; rfs_counter_t statfs; }; kstat struct "nfs_client" ks_nfs_client { rfs_counter_t calls; rfs_counter_t badcalls; rfs_counter_t clgets; rfs_counter_t cltoomany; }; kstat struct "nfs_server" ks_nfs_server { rfs_counter_t calls; rfs_counter_t badcalls; }; kstat struct "lo0" ks_loopback { uint32_t ipackets; uint32_t opackets; }; kstat struct "aclproccnt_v2" ks_acl_proc_v2 { rfs_counter_t null; rfs_counter_t getacl; rfs_counter_t setacl; rfs_counter_t getattr; rfs_counter_t access; }; kstat struct "aclreqcnt_v2" ks_acl_req_v2 { rfs_counter_t null; rfs_counter_t getacl; rfs_counter_t setacl; rfs_counter_t getattr; rfs_counter_t access; }; kstat struct "rfsproccnt_v3" ks_rfs_proc_v3 { rfs_counter_t null; rfs_counter_t getattr; rfs_counter_t setattr; rfs_counter_t lookup; rfs_counter_t access; rfs_counter_t readlink; rfs_counter_t read; rfs_counter_t write; rfs_counter_t create; rfs_counter_t mkdir; rfs_counter_t symlink; rfs_counter_t mknod; rfs_counter_t remove; rfs_counter_t rmdir; rfs_counter_t rename; rfs_counter_t link; rfs_counter_t readdir; #if MINOR_VERSION < 60 rfs_counter_t "readdir+"; // becomes readdir_ #else rfs_counter_t readdirplus; #endif rfs_counter_t fsstat; rfs_counter_t fsinfo; rfs_counter_t pathconf; rfs_counter_t commit; }; kstat struct "rfsreqcnt_v3" ks_rfs_req_v3 { rfs_counter_t null; rfs_counter_t getattr; rfs_counter_t setattr; rfs_counter_t lookup; rfs_counter_t access; rfs_counter_t readlink; rfs_counter_t read; rfs_counter_t write; rfs_counter_t create; rfs_counter_t mkdir; rfs_counter_t symlink; rfs_counter_t mknod; rfs_counter_t remove; rfs_counter_t rmdir; rfs_counter_t rename; rfs_counter_t link; rfs_counter_t readdir; #if MINOR_VERSION < 60 rfs_counter_t "readdir+"; // becomes readdir_ #else rfs_counter_t readdirplus; #endif rfs_counter_t fsstat; rfs_counter_t fsinfo; rfs_counter_t pathconf; rfs_counter_t commit; }; #if MINOR_VERSION < 60 # define readdirplus readdir_ #endif kstat struct "aclproccnt_v3" ks_acl_proc_v3 { rfs_counter_t null; rfs_counter_t getacl; rfs_counter_t setacl; }; kstat struct "aclreqcnt_v3" ks_acl_req_v3 { rfs_counter_t null; rfs_counter_t getacl; rfs_counter_t setacl; }; #define _KMEM \ \ "*anon_cache:*anonmap_cache:*as_cache:*cred_cache:\ *ddi_callback_cache:*file_cache:*flk_edges:\ *fnode_cache:*kmem_alloc:*kmem_bufctl_cache:\ *kmem_magazine:*kmem_slab_cache:*linkinfo_cache:\ *lm_async:*lm_client:*lm_config:*lm_sleep:\ *lm_sysid:*lm_vnode:*lm_xprt:*lwp_cache:\ *pipe_cache:*prnode_cache:*qband_cache:*queue_cache:\ *rnode_cache:*seg_cache:*seg_skiplist_cache:\ *segvn_cache:*snode_cache:*stream_head_cache:\ *streams_msg:*strevent_cache:*syncq_cache:\ *thread_cache:*sfmmu:*streams_mblk:*streams_dblk:\ *physio_buf_cache:*ufs_inode_cache:*pln:*fas:*esp:\ *process_cache:*sock_cache:*exi_cache_handle:\ *directio_buf_cache" kstat struct _KMEM ks_cache { int number$; string name$; uint32_t buf_size; uint32_t align; uint32_t chunk_size; uint32_t slab_size; uint32_t alloc; uint32_t alloc_fail; uint32_t depot_alloc; uint32_t depot_free; uint32_t depot_contention; uint32_t global_alloc; #if MINOR_VERSION >= 60 uint32_t buf_constructed; #endif uint32_t buf_avail; uint32_t buf_total; uint32_t buf_max; uint32_t slab_create; uint32_t slab_destroy; #if MINOR_VERSION >= 60 uint32_t memory_class; #endif uint32_t hash_size; uint32_t hash_lookup_depth; uint32_t hash_rescale; uint32_t full_magazines; uint32_t empty_magazines; uint32_t magazine_size; uint32_t alloc_from_cpu0; uint32_t free_to_cpu0; uint32_t buf_avail_cpu0; /* to and from cpuN continues for each cpu... not supported */ }; // START OF NETIF STRUCTURES /* all of the types up to this point are KSTAT_TYPE_NAMED types. The * * ks_network type is also a named type, but refers to a class of * * records instead of one specific name=value record. The ks_interrupts * * type is a KSTAT_TYPE_INTR type and the ks_disks type is a * * KSTAT_TYPE_IO type. */ #if MINOR_VERSION > 60 # define HME_PATCH_IFSPEED #endif /* lance ethernet */ kstat struct "le:" ks_le_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t defer; ulong_t framing; ulong_t crc; ulong_t oflo; ulong_t uflo; ulong_t missed; ulong_t late_collisions; ulong_t retry_error; ulong_t nocarrier; ulong_t inits; ulong_t nocanput; ulong_t allocbfail; ulong_t rbytes; ulong_t obytes; ulong_t multircv; ulong_t multixmt; ulong_t brdcstrcv; ulong_t brdcstxmt; ulong_t norcvbuf; ulong_t noxmtbuf; }; /* intel ethernet */ kstat struct "ie:" ks_ie_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t defer; ulong_t crc; ulong_t oflo; ulong_t uflo; ulong_t missed; ulong_t late_collisions; ulong_t retry_error; ulong_t nocarrier; ulong_t inits; ulong_t nocanput; ulong_t allocbfail; ulong_t xmitunderrun; ulong_t recvoverrun; ulong_t align; ulong_t notcbs; ulong_t notbufs; ulong_t norbufs; }; #if MINOR_VERSION > 80 # define QE_PATCH_IFSPEED #endif /* quad ethernet */ kstat struct "qe:" ks_qe_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t rx_collisions; ulong_t excess_defer; ulong_t framming; ulong_t crc; #ifdef QE_PATCH_IFSPEED ulong_t ifspeed; #else ulong_t drop; #endif ulong_t buff; ulong_t oflo; ulong_t uflo; ulong_t missed; ulong_t tx_late_collisions; ulong_t retry_error; ulong_t nocarrier; ulong_t inits; ulong_t nocanput; ulong_t allocbfail; ulong_t runt; ulong_t jabber; ulong_t babble; ulong_t tmd_error; ulong_t late_error; ulong_t parity_error; ulong_t error_ack; ulong_t no_tmds; ulong_t no_tbufs; ulong_t no_rbufs; ulong_t rx_late_collisions; #if MINOR_VERSION >= 80 // Sean O'Neal (sean.oneill@commerceone.com) did this ulong_t rbytes; ulong_t obytes; ulong_t multircv; ulong_t multixmt; ulong_t brdcstrcv; ulong_t brdcstxmt; ulong_t norcvbuf; ulong_t noxmtbuf; #endif }; /* bigMAC ethernet - 100baseT */ kstat struct "be:" ks_be_network { int number$; string name$; ulong_t ipackets; /* packets received */ ulong_t ierrors; /* input errors */ ulong_t opackets; /* packets transmitted */ ulong_t oerrors; /* output errors */ ulong_t collisions; /* collisions encountered */ char missing1; /* slots deferred */ ulong_t framming; /* framing errors */ ulong_t crc; /* crc errors */ char missing2; /* missed/drop errors */ ulong_t buff; /* buff errors */ ulong_t oflo; /* overflow errors */ ulong_t uflo; /* underflow errors */ ulong_t missed; /* missed/dropped packets */ ulong_t tx_late_collisions; /* late collisions */ ulong_t retry_error; /* retry errors */ ulong_t nocarrier; /* no carrier */ ulong_t inits; /* initialization */ ulong_t nocanput; /* nocanput errors */ ulong_t allocbfail; /* allocb failures */ ulong_t runt; /* runt errors */ ulong_t jabber; /* jabber errors */ ulong_t babble; /* runt errors */ ulong_t tmd_error; /* tmd errors */ ulong_t late_error; /* late errors */ ulong_t parity_error; /* parity errors */ ulong_t error_ack; /* error acks */ ulong_t no_tmds; /* tmd errors */ ulong_t no_tbufs; /* tx buf errors */ ulong_t no_rbufs; /* rx buf errors */ ulong_t rx_late_collisions; /* clsn errors */ }; /* bf card */ kstat struct "bf:" ks_bf_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t tx_abort; ulong_t tx_uflo; ulong_t tx_full; ulong_t tx_notmds; ulong_t tx_notavail; ulong_t rx_frmerr; ulong_t rx_oflo; ulong_t rx_full; ulong_t rx_notavail; ulong_t missed; ulong_t inits; ulong_t nocanput; ulong_t allocbfail; }; #ifdef OLD_FDDI /* definition of pre-version-5 FDDI card. If you're using one, run * * the script with "se -DOLD_FDDI script-name". - Rich */ kstat struct "np-nf:nf" ks_nf_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t txunderruns; ulong_t rxoverruns; ulong_t cnf_invalids; ulong_t norxllcbufs; ulong_t norxsmtbufs; ulong_t cannotputs; ulong_t bsi_iar_exci0; ulong_t bsi_iar_exci1; ulong_t bsi_iar_exci2; }; #else /* nf card - net fiber I guess */ kstat struct "nf:" ks_nf_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t txunderruns0; ulong_t txunderruns1; ulong_t rxoverruns; ulong_t cnf_invalids0; ulong_t cnf_invalids1; ulong_t norxllcbufs; ulong_t norxsmtbufs; ulong_t cannotputs; ulong_t allocbfail; ulong_t bsi_iar_exci0; ulong_t bsi_iar_exci1; ulong_t bsi_iar_exci2; ulong_t no_copy_reqp0; ulong_t no_copy_reqp1; ulong_t no_reqp0; ulong_t no_reqp1; ulong_t pkt_toobig0; ulong_t pkt_toobig1; ulong_t tsync_underrun; ulong_t bad_fc; ulong_t invalid_idud_ch0; ulong_t invalid_idud_ch1; ulong_t invalid_idud_ch2; ulong_t nf_psp_on_loan; ulong_t invalid_frame; ulong_t nf_putbq; }; #endif /* OLD_FDDI */ /* token ring */ kstat struct "tr:" ks_tr_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t inits; ulong_t notmds; ulong_t notbufs; ulong_t norbufs; ulong_t nocanput; ulong_t noallocb; ulong_t sralloc; ulong_t srfree; ulong_t linerrors; ulong_t bursterrors; ulong_t arifcierrors; ulong_t lostframeerrors; ulong_t rxcongestion; ulong_t frmcopiederrors; ulong_t tokenerrors; ulong_t dmabuserrors; }; /* standard microsystems corp (western digital) */ kstat struct "smc:" ks_smc_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t nobuffer; ulong_t blocked; ulong_t blocked2; ulong_t multicast; ulong_t xbytes; char missing1; char missing2; ulong_t rbytes; ulong_t crc; ulong_t alignment; ulong_t fifoover; ulong_t lost; ulong_t intrs; ulong_t ovw; ulong_t watchdog; }; /* hme - electron */ kstat struct "hme:qfe" ks_hme_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t defer; ulong_t framing; ulong_t crc; ulong_t sqe; ulong_t code_violations; ulong_t len_errors; #ifdef HME_PATCH_IFSPEED ulong_t ifspeed; #else ulong_t drop; #endif ulong_t buff; ulong_t oflo; ulong_t uflo; ulong_t missed; ulong_t tx_late_collisions; ulong_t retry_error; ulong_t first_collisions; ulong_t nocarrier; ulong_t inits; ulong_t nocanput; ulong_t allocbfail; ulong_t runt; ulong_t jabber; ulong_t babble; ulong_t tmd_error; ulong_t tx_late_error; ulong_t rx_late_error; ulong_t slv_parity_error; ulong_t tx_parity_error; ulong_t rx_parity_error; ulong_t slv_error_ack; ulong_t tx_error_ack; ulong_t rx_error_ack; ulong_t tx_tag_error; ulong_t rx_tag_error; ulong_t eop_error; ulong_t no_tmds; ulong_t no_tbufs; ulong_t no_rbufs; ulong_t rx_late_collisions; ulong_t rbytes; ulong_t obytes; ulong_t multircv; ulong_t multixmt; ulong_t brdcstrcv; ulong_t brdcstxmt; ulong_t norcvbuf; ulong_t noxmtbuf; }; /* SAHI ATM */ kstat struct "sa:" ks_sa_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t inits; ulong_t nocanput; ulong_t allocbfail; ulong_t badcrc; ulong_t rxoverflow; ulong_t interrupts; ulong_t outofrbuf; ulong_t outoftbuf; ulong_t vc_noreceiver; ulong_t bufdrop; }; // ieef: Intel ether-express flash // 3com 3c503, 3com etherlink 3 (elx) // also novell card - x86 // also Compaq NetFlex 10Base-T // also Intel D100 Pro-B // // Note: "el" aka 3c503 (8 bit *ANCIENT* card) has been deleted // see ks_el_network (Fore) below kstat struct "ieef:elx:pcelx:nei:cnft:iprb" ks_ieef_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t opackets; ulong_t ipackets; ulong_t oerrors; ulong_t ierrors; ulong_t collisions; ulong_t obytes; ulong_t rbytes; long multixmt; long multircv; long brdcstxmt; long brdcstrcv; long blocked; ulong_t excollisions; ulong_t defer; ulong_t framing; ulong_t crc; ulong_t oflo; ulong_t uflo; ulong_t SYM_short; ulong_t missed; ulong_t late_collisions; ulong_t nocarrier; long noxmtbuf; long norcvbuf; long intr; long xmtretry; }; #define ks_elx_network ks_ieef_network #define ks_pcelx_network ks_ieef_network #define ks_nei_network ks_ieef_network #define ks_cnft_network ks_ieef_network #define ks_iprb_network ks_ieef_network // 3com 3c90x XL 10 and 10/100 kstat struct "elxl:" ks_elxl_network { int number$; /* linear interface number */ string name$; /* name of the interface */ uint32_t opackets; uint32_t ipackets; uint32_t oerrors; uint32_t ierrors; uint32_t collisions; uint32_t obytes; uint32_t rbytes; uint32_t multixmt; uint32_t multircv; uint32_t brdcstxmt; uint32_t brdcstrcv; uint32_t unknowns; uint32_t blocked; uint32_t ex_collisions; uint32_t defer_xmts; uint32_t align_errors; uint32_t fcs_errors; uint32_t oflo; uint32_t uflo; uint32_t runt_errors; uint32_t missed; uint32_t tx_late_collisions; uint32_t carrier_errors; uint32_t noxmtbuf; uint32_t norcvbuf; uint32_t xmt_badinterp; uint32_t rcv_badinterp; uint32_t intr; uint32_t xmtretry; uint64_t opackets64; uint64_t ipackets64; uint64_t obytes64; uint64_t rbytes64; uint64_t ifspeed; string duplex; string media; string promisc; uint32_t first_collisions; uint32_t multi_collisions; uint32_t sqe_errors; uint32_t macxmt_errors; uint32_t toolong_errors; uint32_t macrcv_errors; }; // Fore ATM cards kstat struct "el:fa:qaa" ks_el_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; // there *must* be more members than this, right? }; /* fddi/cddi card */ kstat struct "fddi:" ks_fddi_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t ioctets; ulong_t ooctets; ulong_t inits; ulong_t nocanput; ulong_t allocbfail; ulong_t interrupts; ulong_t ringup; ulong_t ringups; ulong_t ringdowns; ulong_t cLOANS; ulong_t tLOANS; ulong_t mLOANS; ulong_t burst; ulong_t aerr; ulong_t qerr; ulong_t cstyerr; ulong_t rsrcerr; ulong_t giants; ulong_t runts; ulong_t finvalid; ulong_t fabort; ulong_t fseac_e; ulong_t fsfrmerr; ulong_t txringfull; ulong_t npalive; ulong_t diag_tests; ulong_t nprxhangs; ulong_t npresets; ulong_t ga_rev; ulong_t nfddi2txbufs; ulong_t nfddi2rxbufs; ulong_t fddixdonecnt; ulong_t fddimaxcopysz; ulong_t fddimaxloanlt; }; /* IP Dialup Point-to-point */ kstat struct "ipdptp:" ks_ppp_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t nocanput; ulong_t allocbfail; }; // Hey Alteon! STOP CHANGING YOUR KSTATS!!! #if ALTEON_VERSION < 4 /* gigabit e-net card */ kstat struct "vge:" ks_vge_network { int number$; // linear interface number string name$; // name of the interface ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t dot3StatsAlignmentErrors; ulong_t dot3StatsFCSErrors; ulong_t dot3StatsSingleCollisionFrames; ulong_t dot3StatsMultipleCollisionFram; ulong_t dot3StatsSQETestErrors; ulong_t dot3StatsDeferredTransmissions; ulong_t dot3StatsLateCollisions; ulong_t dot3StatsExcessiveCollisions; ulong_t dot3StatsInternalMacTransmitEr; ulong_t dot3StatsCarrierSenseErrors; ulong_t dot3StatsFrameTooLongs; ulong_t dot3StatsInternalMacReceiveErr; ulong_t ifIndex; ulong_t ifType; ulong_t ifMtu; ulong_t ifSpeed; ulong_t ifAdminStatus; ulong_t ifOperStatus; ulong_t ifLastChange; ulong_t ifInOctets; ulong_t ifInUcastPkts; ulong_t ifInNUcastPkts; ulong_t ifInDiscards; ulong_t ifInErrors; ulong_t ifInUnknownProtos; ulong_t ifOutOctets; ulong_t ifOutUcastPkts; ulong_t ifOutNUcastPkts; ulong_t ifOutDiscards; ulong_t ifOutErrors; ulong_t ifOutQLen; string ifPhysAddress; string "ifDescr (part 1)"; // ifDescr__part_1_ string "ifDescr (part 2)"; // ifDescr__part_2_ ulong_t nicCmdsSetSendProdIndex; ulong_t nicCmdsSetRecvProdIndex; ulong_t nicCmdsUpdateSendRCBFlags; ulong_t nicCmdsUpdateRecvRCBFlags; ulong_t nicCmdsSetMulticastMode; ulong_t nicCmdsClearStats; ulong_t nicCmdsAddMCastAddr; ulong_t nicCmdsDelMCastAddr; ulong_t nicCmdsSetPromiscMode; ulong_t nicCmdsSetMACAddr; ulong_t nicCmdsHostState; ulong_t nicCmdsUnknown; ulong_t nicEventsNICFirmwareOperationa; ulong_t nicEventsSetSendConsIndex; ulong_t nicEventsSetRecvConsIndex; ulong_t nicEventsStatsUpdated; ulong_t nicEventsLinkStateChanged; ulong_t nicEventsError; ulong_t nicEventsMCastListUpdated; ulong_t nicInterrupts; ulong_t nicAvoidedInterrupts; ulong_t nicEventThresholdHit; ulong_t nicSendThresholdHit; ulong_t nicRecvThresholdHit; ulong_t nicDmaRdOverrun; ulong_t nicDmaRdUnderrun; ulong_t nicDmaWrOverrun; ulong_t nicDmaWrUnderrun; ulong_t nicDmaWrMasterAborts; ulong_t nicDmaRdMasterAborts; ulong_t "nicDmaWriteRingFull "; // nicDmaWriteRingFull_ ulong_t nicDmaReadRingFull; ulong_t nicEventRingFull; ulong_t nicEventProducerRingFull; ulong_t nicTxMacDescrRingFull; ulong_t nicOutOfTxBufSpaceFrameRetry; ulong_t nicNoMoreWrDMADescriptors; ulong_t nicNoMoreRxBDs; ulong_t nicRecvBDs; ulong_t nicMacRxLateColls; ulong_t nicMacRxLinkLostDuringPkt; ulong_t nicMacRxPhyDecodeErr; ulong_t nicMacRxMacAbort; ulong_t nicMacRxTruncNoResources; ulong_t nicMacRxDropUla; ulong_t nicMacRxDropMcast; ulong_t nicMacRxFlowControl; ulong_t nicMacRxDropSpace; ulong_t nicMacRxColls; ulong_t nicMacRxTotalAttns; ulong_t nicMacRxLinkAttns; ulong_t nicMacRxSyncAttns; ulong_t nicMacRxConfigAttns; ulong_t nicMacReset; ulong_t "nicMacTxCollisionHistogram[0]"; // nicMacTxCollisionHistogram_0_ ulong_t "nicMacTxCollisionHistogram[1]"; // nicMacTxCollisionHistogram_1_ ulong_t "nicMacTxCollisionHistogram[2]"; // nicMacTxCollisionHistogram_2_ ulong_t "nicMacTxCollisionHistogram[3]"; // nicMacTxCollisionHistogram_3_ ulong_t "nicMacTxCollisionHistogram[4]"; // nicMacTxCollisionHistogram_4_ ulong_t "nicMacTxCollisionHistogram[5]"; // nicMacTxCollisionHistogram_5_ ulong_t "nicMacTxCollisionHistogram[6]"; // nicMacTxCollisionHistogram_6_ ulong_t "nicMacTxCollisionHistogram[7]"; // nicMacTxCollisionHistogram_7_ ulong_t "nicMacTxCollisionHistogram[8]"; // nicMacTxCollisionHistogram_8_ ulong_t "nicMacTxCollisionHistogram[9]"; // nicMacTxCollisionHistogram_9_ ulong_t "nicMacTxCollisionHistogram[10]"; // nicMacTxCollisionHistogram_10_ ulong_t "nicMacTxCollisionHistogram[11]"; // nicMacTxCollisionHistogram_11_ ulong_t "nicMacTxCollisionHistogram[12]"; // nicMacTxCollisionHistogram_12_ ulong_t "nicMacTxCollisionHistogram[13]"; // nicMacTxCollisionHistogram_13_ ulong_t "nicMacTxCollisionHistogram[14]"; // nicMacTxCollisionHistogram_14_ ulong_t nicMacTxTotalAttns; }; #endif // this will probably change to == 4 and then == 5 and then ... #if ALTEON_VERSION >= 4 kstat struct "vge:" ks_vge_network { int number$; // linear interface number string name$; // name of the interface ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t defer; ulong_t dot3StatsAlignmentErrors; ulong_t dot3StatsFCSErrors; ulong_t dot3StatsSingleCollisionFrames; ulong_t dot3StatsMultipleCollisionFram; ulong_t dot3StatsSQETestErrors; ulong_t dot3StatsDeferredTransmissions; ulong_t dot3StatsLateCollisions; ulong_t dot3StatsExcessiveCollisions; ulong_t dot3StatsInternalMacTransmitEr; ulong_t dot3StatsCarrierSenseErrors; ulong_t dot3StatsFrameTooLongs; ulong_t dot3StatsInternalMacReceiveErr; ulong_t ifIndex; ulong_t ifType; ulong_t ifMtu; ulong_t ifSpeed; ulong_t ifAdminStatus; ulong_t ifOperStatus; ulong_t ifLastChange; uint64_t ifHCInOctets; uint64_t ifHCInUcastPkts; uint64_t ifHCInMulticastPkts; uint64_t ifHCInBroadcastPkts; ulong_t ifInDiscards; ulong_t ifInErrors; ulong_t ifInUnknownProtos; uint64_t ifHCOutOctets; uint64_t ifHCOutUcastPkts; uint64_t ifHCOutMulticastPkts; uint64_t ifHCOutBroadcastPkts; ulong_t ifOutDiscards; ulong_t ifOutErrors; ulong_t ifOutQLen; string ifPhysAddress; string "ifDescr (part 1)"; // ifDescr__part_1_ string "ifDescr (part 2)"; // ifDescr__part_2_ ulong_t ifLinkUpDownTrapEnable; ulong_t ifHighSpeed; ulong_t ifPromiscuousMode; ulong_t ifConnectorPresent; ulong_t nicCmdsSetSendProdIndex; ulong_t nicCmdsSetRecvProdIndex; ulong_t nicCmdsSetRecvJumboProdIndex; ulong_t nicCmdsUpdateSendRCBFlags; ulong_t nicCmdsUpdateRecvRCBFlags; ulong_t nicCmdsAddMCastAddr; ulong_t nicCmdsDelMCastAddr; ulong_t nicCmdsSetMulticastMode; ulong_t nicCmdsClearStats; ulong_t nicCmdsSetPromiscMode; ulong_t nicCmdsSetMACAddr; ulong_t nicCmdsHostState; ulong_t nicCmdsFdrFiltering; ulong_t nicCmdsUnknown; ulong_t nicEventsNICFirmwareOperationa; ulong_t nicEventsSetSendConsIndex; ulong_t nicEventsSetRecvConsIndex; ulong_t nicEventsStatsUpdated; ulong_t nicEventsLinkStateChanged; ulong_t nicEventsError; ulong_t nicEventsMCastListUpdated; ulong_t nicInterrupts; ulong_t nicAvoidedInterrupts; ulong_t nicEventThresholdHit; ulong_t nicSendThresholdHit; ulong_t nicRecvThresholdHit; ulong_t nicDmaRdOverrun; ulong_t nicDmaRdUnderrun; ulong_t nicDmaWrOverrun; ulong_t nicDmaWrUnderrun; ulong_t nicDmaWrMasterAborts; ulong_t nicDmaRdMasterAborts; ulong_t "nicDmaWriteRingFull "; // nicDmaWriteRingFull_ ulong_t nicDmaReadRingFull; ulong_t nicEventRingFull; ulong_t nicEventProducerRingFull; ulong_t nicTxMacDescrRingFull; ulong_t nicOutOfTxBufSpaceFrameRetry; ulong_t nicNoMoreWrDMADescriptors; ulong_t nicNoMoreRxBDs; ulong_t nicNoSpaceInReturnRing; ulong_t nicRecvBDs; ulong_t nicJumboRecvBDs; ulong_t nicTotalRecvBDs; ulong_t nicJumboSpillOver; ulong_t nicSbusHangCleared; ulong_t nicMacRxLateColls; ulong_t nicMacRxLinkLostDuringPkt; ulong_t nicMacRxPhyDecodeErr; ulong_t nicMacRxMacAbort; ulong_t nicMacRxTruncNoResources; ulong_t nicMacRxDropUla; ulong_t nicMacRxDropMcast; ulong_t nicMacRxFlowControl; ulong_t nicMacRxDropSpace; ulong_t nicMacRxColls; ulong_t nicMacRxTotalAttns; ulong_t nicMacRxLinkAttns; ulong_t nicMacRxSyncAttns; ulong_t nicMacRxConfigAttns; ulong_t nicMacReset; ulong_t nicMacRxBufDescrAttns; ulong_t nicMacRxBufAttns; ulong_t nicMacRxZeroFrameCleanup; ulong_t nicMacRxOneFrameCleanup; ulong_t nicMacRxMultipleFrameCleanup; ulong_t nicMacRxTimerCleanup; ulong_t nicMacRxDmaCleanup; ulong_t "nicMacTxCollisionHistogram[0]"; // nicMacTxCollisionHistogram_0_ ulong_t "nicMacTxCollisionHistogram[1]"; // nicMacTxCollisionHistogram_1_ ulong_t "nicMacTxCollisionHistogram[2]"; // nicMacTxCollisionHistogram_2_ ulong_t "nicMacTxCollisionHistogram[3]"; // nicMacTxCollisionHistogram_3_ ulong_t "nicMacTxCollisionHistogram[4]"; // nicMacTxCollisionHistogram_4_ ulong_t "nicMacTxCollisionHistogram[5]"; // nicMacTxCollisionHistogram_5_ ulong_t "nicMacTxCollisionHistogram[6]"; // nicMacTxCollisionHistogram_6_ ulong_t "nicMacTxCollisionHistogram[7]"; // nicMacTxCollisionHistogram_7_ ulong_t "nicMacTxCollisionHistogram[8]"; // nicMacTxCollisionHistogram_8_ ulong_t "nicMacTxCollisionHistogram[9]"; // nicMacTxCollisionHistogram_9_ ulong_t "nicMacTxCollisionHistogram[10]"; // nicMacTxCollisionHistogram_10_ ulong_t "nicMacTxCollisionHistogram[11]"; // nicMacTxCollisionHistogram_11_ ulong_t "nicMacTxCollisionHistogram[12]"; // nicMacTxCollisionHistogram_12_ ulong_t "nicMacTxCollisionHistogram[13]"; // nicMacTxCollisionHistogram_13_ ulong_t "nicMacTxCollisionHistogram[14]"; // nicMacTxCollisionHistogram_14_ ulong_t nicMacTxTotalAttns; }; #endif /* ATM / ELane - vjamet */ kstat struct "lane:" ks_lane_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t nocanput; ulong_t allocbfail; }; /* ftSPARC net interface */ kstat struct "FTnet:" ks_ft_network { int number$; /* linear interface number */ string name$; /* name of the interface */ ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t no_tx_bufs; ulong_t no_rx_bufs; ulong_t allocb_fails; ulong_t nocanputs; }; // Xircom PE2/3 - added by Paul van der Zwan kstat struct "pe:" ks_pe_network { int number$; /* linear interface number */ string name$; /* name of the interface */ uint32_t opackets; uint32_t ipackets; uint32_t oerrors; uint32_t ierrors; uint32_t collisions; uint32_t obytes; uint32_t rbytes; uint32_t multixmt; uint32_t multircv; uint32_t brdcstxmt; uint32_t brdcstrcv; uint32_t unknowns; uint32_t blocked; uint32_t ex_collisions; uint32_t defer_xmts; uint32_t align_errors; uint32_t fcs_errors; uint32_t oflo; uint32_t uflo; uint32_t runt_errors; uint32_t missed; uint32_t tx_late_collisions; uint32_t carrier_errors; uint32_t noxmtbuf; uint32_t norcvbuf; uint32_t xmt_badinterp; uint32_t rcv_badinterp; uint32_t intr; uint32_t xmtretry; uint64_t opackets64; uint64_t ipackets64; uint64_t obytes64; uint64_t rbytes64; uint64_t ifspeed; }; /* SAHI-2 ATM - jan */ kstat struct "ba:" ks_ba_network { int number$; /* linear interface number */ string name$; /* name of the interface */ uint32_t inits; uint32_t nocanput; uint32_t allocbfail; uint32_t badcrc; uint32_t rxoverflow; uint32_t interrupts; uint32_t outofrbuf; uint32_t outoftbuf; uint32_t vc_noreceiver; uint64_t ifspeed; uint64_t rbytes64; uint64_t obytes64; uint32_t rbytes; uint32_t obytes; uint64_t ipackets64; uint64_t opackets64; uint32_t ipackets; uint32_t opackets; uint32_t multircv; uint32_t brdcstrcv; uint32_t multixmt; uint32_t brdcstxmt; uint32_t norcvbuf; uint32_t ierrors; uint32_t unknowns; uint32_t noxmtbuf; uint32_t oerrors; uint32_t collisions; }; kstat struct "ge:" ks_ge_network { int number$; string name$; ulong_t ipackets; ulong_t ierrors; ulong_t opackets; ulong_t oerrors; ulong_t collisions; ulong_t ifspeed; string missing1; ulong_t rbytes; ulong_t obytes; ulong_t multircv; ulong_t multixmt; ulong_t brdcstrcv; ulong_t brdcstxmt; ulong_t norcvbuf; ulong_t noxmtbuf; ulong_t inits; ulong_t mac_mode; ulong_t xmit_dma_mode; ulong_t rcv_dma_mode; ulong_t nocarrier; ulong_t nocanput; ulong_t allocbfail; ulong_t pause_rcv_cnt; ulong_t pause_on_cnt; ulong_t pause_off_cnt; ulong_t pause_time_cnt; ulong_t txmac_urun; ulong_t txmac_maxpkt_err; ulong_t excessive_coll; ulong_t late_coll; ulong_t first_coll; ulong_t defer_timer_exp; ulong_t peak_attempt_cnt; ulong_t jabber; ulong_t no_tmds; ulong_t txinits; ulong_t drop; ulong_t rxinits; ulong_t no_free_rx_desc; ulong_t rx_overflow; ulong_t rx_hang; ulong_t rxtag_error; ulong_t rx_align_err; ulong_t rx_crc_err; ulong_t rx_length_err; ulong_t rx_code_viol_err; ulong_t pci_badack; ulong_t pci_dtrto; ulong_t pci_data_parity_err; ulong_t pci_signal_target_abort; ulong_t pci_rcvd_target_abort; ulong_t pci_rcvd_master_abort; ulong_t pci_signal_system_err; ulong_t pci_det_parity_err; ulong_t pci_bus_speed; ulong_t pci_bus_width; ulong_t tx_late_error; ulong_t rx_late_error; ulong_t slv_parity_error; ulong_t tx_parity_error; ulong_t rx_parity_error; ulong_t slv_error_ack; ulong_t tx_error_ack; ulong_t rx_error_ack; uint64_t ipackets64; uint64_t opackets64; uint64_t rbytes64; uint64_t obytes64; ulong_t align_errors; ulong_t fcs_errors; string missing2; ulong_t sqe_errors; ulong_t defer_xmts; ulong_t ex_collisions; ulong_t macxmt_errors; ulong_t carrier_errors; ulong_t toolong_errors; ulong_t macrcv_errors; ulong_t ge_csumerr; ulong_t ge_queue_cnt; ulong_t ge_queue_full_cnt; }; // Digital NIC - added by pel kstat struct "dnet:" ks_dnet_network { int number$; string name$; uint32_t opackets; uint32_t ipackets; uint32_t oerrors; uint32_t ierrors; uint32_t collisions; uint32_t obytes; uint32_t rbytes; uint32_t multixmt; uint32_t multircv; uint32_t brdcstxmt; uint32_t brdcstrcv; uint32_t unknowns; uint32_t blocked; uint32_t ex_collisions; uint32_t defer_xmts; uint32_t align_errors; uint32_t fcs_errors; uint32_t oflo; uint32_t uflo; uint32_t runt_errors; uint32_t missed; uint32_t tx_late_collisions; uint32_t carrier_errors; uint32_t noxmtbuf; uint32_t norcvbuf; uint32_t xmt_badinterp; uint32_t rcv_badinterp; uint32_t intr; uint32_t xmtretry; uint64_t opackets64; uint64_t ipackets64; uint64_t obytes64; uint64_t rbytes64; uint64_t ifspeed; string missing1; string media; string promisc; string missing2; string missing3; string missing4; string missing5; string missing6; string missing7; }; // pci fddi kstat struct "pf:" ks_pf_network { int number$; /* linear interface number */ string name$; /* name of the interface */ uint32_t ipackets; uint32_t ierrors; uint32_t opackets; uint32_t oerrors; uint32_t outsmt; uint32_t macstate; uint32_t llcstate; uint32_t notxbufs; uint32_t notmds; uint32_t notxsmtbufs; uint32_t txsetuperr; uint32_t insmt; uint32_t indiscards; uint32_t norxbufs; uint32_t rxpfail; uint32_t rxefail; uint32_t rxdupfail; uint32_t nocanputs; uint32_t badfc; uint32_t intrs; uint32_t reset; }; kstat struct "dmfe:" ks_dmfe_network { int number$; /* linear interface number */ string name$; /* name of the interface */ uint32_t opackets; uint32_t ipackets; uint64_t oerrors; uint64_t ierrors; uint64_t collisions; uint32_t obytes; uint32_t rbytes; uint64_t multixmt; uint64_t multircv; uint64_t brdcstxmt; uint64_t brdcstrcv; uint64_t unknowns; uint64_t blocked; uint64_t ex_collisions; uint64_t defer_xmts; uint64_t align_errors; uint64_t fcs_errors; uint64_t oflo; uint64_t uflo; uint64_t runt_errors; uint64_t missed; uint64_t tx_late_collisions; uint64_t carrier_errors; uint64_t noxmtbuf; uint64_t norcvbuf; uint32_t xmt_badinterp; uint32_t rcv_badinterp; uint64_t intr; uint64_t xmtretry; uint64_t opackets64; uint64_t ipackets64; uint64_t obytes64; uint64_t rbytes64; uint64_t ifspeed; }; /* eri - Added CDT for UltraSparc III systems */ kstat struct "eri:" ks_eri_network { int number$; /* linear interface number */ string name$; /* name of the interface */ uint64_t ipackets; uint64_t ierrors; uint64_t opackets; uint64_t oerrors; uint64_t collisions; uint64_t ifspeed; uint64_t rbytes; uint64_t obytes; uint64_t multircv; uint64_t multixmt; uint64_t brdcstrcv; uint64_t brdcstxmt; uint64_t norcvbuf; uint64_t noxmtbuf; uint64_t inits; uint64_t rx_inits; uint64_t tx_inits; uint64_t nocarrier; uint64_t nocanput; uint64_t allocbfail; uint64_t drop; uint64_t pasue_rcv_cnt; uint64_t pasue_on_cnt; uint64_t pasue_off_cnt; uint64_t pasue_time_cnt; uint64_t txmac_urun; uint64_t txmac_maxpkt_err; uint64_t excessive_coll; uint64_t late_coll; uint64_t first_coll; uint64_t defer_timer_exp; uint64_t peak_attempt_cnt; uint64_t jabber; uint64_t no_tmds; uint64_t tx_hang; uint64_t rx_corr; uint64_t no_free_rx_desc; uint64_t rx_overflow; uint64_t rx_hang; uint64_t rx_align_err; uint64_t rx_crc_err; uint64_t rx_length_err; uint64_t rx_code_viol_err; uint64_t bad_pkts; uint64_t runt; uint64_t toolong_pkts; uint64_t rxtag_error; uint64_t parity_error; uint64_t pci_error_interrupt; uint64_t unknown_fatal; uint64_t pci_data_parity_err; uint64_t pci_signal_target_abort; uint64_t pci_rcvd_target_abort; uint64_t pci_rcvd_master_abort; uint64_t pci_signal_system_err; uint64_t pci_det_parity_err; uint64_t ipackets64; uint64_t opackets64; uint64_t rbytes64; uint64_t obytes64; uint64_t pmcap; }; /* Sysconnekt gigabit e-net card */ kstat struct "skge:" ks_skge_network { int number$; /* linear interface number */ string name$; /* name of the interface */ uint_t ipackets; uint_t opackets; uint_t ierrors; uint_t oerrors; uint_t collisions; ulong_t obytes; ulong_t rbytes; ulong_t multixmt; ulong_t multircv; ulong_t brdcstxmit; ulong_t brdcstrcv; ulong_t blocked; ulong_t noxmtbuf; ulong_t norcvbuf; ulong_t xmtretry; ulong_t intr; ulong_t nocarrier; ulong_t defer; ulong_t framing; ulong_t crc; ulong_t oflo; ulong_t uflo; ulong_t missed; ulong_t rxtoolong; ulong_t inrangeerr; ulong_t late_collisions; ulong_t SYM_short; ulong_t excollisions; ulong_t ifspeed; ulong_t conmode; }; // END OF NETIF STRUCTURES struct ks_interrupts { int number$; /* linear device number */ string name$; /* name of the device */ uint32_t hard; uint32_t soft; /* these members are arranged in order according */ uint32_t watchdog; /* to the definitions of the KSTAT_INTR values in */ uint32_t spurious; /* sys/ksth. Changing the order of these */ uint32_t multsvc; /* members will have silly results. */ }; struct ks_disks { int number$; /* linear disk number */ string name$; /* name of the device */ uint64_t nread; uint64_t nwritten; /* these members are arranged in the same order */ uint32_t reads; /* as they appear in the kstat_io_t structure in */ uint32_t writes; /* sys/kstat.h. Changing the order of these */ int64_t wtime; /* members will have silly results. */ int64_t wlentime; int64_t wlastupdate; int64_t rtime; int64_t rlentime; int64_t rlastupdate; uint32_t wcnt; uint32_t rcnt; }; /* begin KSTAT_TYPE_RAW types */ struct ks_sysinfo { /* (update frequency) update action */ uint32_t updates; /* (1 sec) ++ */ uint32_t runque; /* (1 sec) += num runnable procs */ uint32_t runocc; /* (1 sec) ++ if num runnable procs > 0 */ uint32_t swpque; /* (1 sec) += num swapped procs */ uint32_t swpocc; /* (1 sec) ++ if num swapped procs > 0 */ uint32_t waiting; /* (1 sec) += jobs waiting for I/O */ }; struct ks_vminfo { uint64_t freemem; /* (1 sec) += freemem in pages */ uint64_t swap_resv; /* (1 sec) += reserved swap in pages */ uint64_t swap_alloc; /* (1 sec) += allocated swap in pages */ uint64_t swap_avail; /* (1 sec) += unreserved swap in pages */ uint64_t swap_free; /* (1 sec) += unallocated swap in pages */ }; /* see /usr/include/sys/dnlc.h */ struct ks_ncstats { int32_t hits; /* hits that we can really use */ int32_t misses; /* cache misses */ int32_t enters; /* number of enters done */ int32_t dbl_enters; /* number of enters tried when already cached */ int32_t long_enter; /* long names tried to enter */ int32_t long_look; /* long names tried to look up */ int32_t move_to_front; /* entry moved to front of hash chain */ int32_t purges; /* number of purges of cache */ }; /* see /usr/include/sys/vmmeter.h */ struct ks_flushmeter { uint32_t f_ctx; /* No. of context flushes */ uint32_t f_segment; /* No. of segment flushes */ uint32_t f_page; /* No. of complete page flushes */ uint32_t f_partial; /* No. of partial page flushes */ uint32_t f_usr; /* No. of non-supervisor flushes */ uint32_t f_region; /* No. of region flushes */ }; /* see /usr/include/sys/var.h */ struct ks_var { int32_t v_buf; /* Nbr of I/O buffers. */ int32_t v_call; /* Nbr of callout (timeout) entries. */ int32_t v_proc; /* Max nbr of processes system wide */ int32_t v_maxupttl; /* Max user processes system wide */ int32_t v_nglobpris; /* Nbr of global sched prios configured */ int32_t v_maxsyspri; /* Max global pri used by sys class. */ int32_t v_clist; /* Nbr of clists allocated. */ int32_t v_maxup; /* Max number of processes per user. */ int32_t v_hbuf; /* Nbr of hash buffers to allocate. */ int32_t v_hmask; /* Hash mask for buffers. */ int32_t v_pbuf; /* Nbr of physical I/O buffers. */ int32_t v_sptmap; /* Size of system virtual space */ /* allocation map. */ int32_t v_maxpmem; /* The maximum physical memory to use. */ /* If v_maxpmem == 0, then use all */ /* available physical memory. */ /* Otherwise, value is amount of mem to */ /* use specified in pages. */ int32_t v_autoup; /* The age a delayed-write buffer must */ /* be in seconds before bdflush will */ /* write it out. */ int32_t v_bufhwm; /* high-water-mark of buffer cache */ /* memory usage, in units of K Bytes */ #if MINOR_VERSION < 70 int32_t v_xsdsegs; /* Number of XENIX shared data segs */ int32_t v_xsdslots; /* Number of slots in xsdtab[] per segment */ #endif }; /* structures contained in the cpu_stat_t type. These all have the name * * and number members since they're per-cpu structures. */ #define CPU_IDLE 0 #define CPU_USER 1 #define CPU_KERNEL 2 #define CPU_WAIT 3 #define CPU_STATES 4 #define W_IO 0 #define W_SWAP 1 #define W_PIO 2 #define W_STATES 3 /* see /usr/include/sys/sysinfo.h */ struct ks_cpu_sysinfo { int number$; /* linear cpu number */ string name$; /* name of the cpu */ int instance; /* actual instance number from kernel */ uint32_t cpu[CPU_STATES]; /* CPU utilization */ uint32_t wait[W_STATES]; /* CPU wait time breakdown */ uint32_t bread; /* physical block reads */ uint32_t bwrite; /* physical block writes (sync+async) */ uint32_t lread; /* logical block reads */ uint32_t lwrite; /* logical block writes */ uint32_t phread; /* raw I/O reads */ uint32_t phwrite; /* raw I/O writes */ uint32_t pswitch; /* context switches */ uint32_t trap; /* traps */ uint32_t intr; /* device interrupts */ uint32_t syscall; /* system calls */ uint32_t sysread; /* read() + readv() system calls */ uint32_t syswrite; /* write() + writev() system calls */ uint32_t sysfork; /* forks */ uint32_t sysvfork; /* vforks */ uint32_t sysexec; /* execs */ uint32_t readch; /* bytes read by rdwr() */ uint32_t writech; /* bytes written by rdwr() */ uint32_t rcvint; /* XXX: UNUSED */ uint32_t xmtint; /* XXX: UNUSED */ uint32_t mdmint; /* XXX: UNUSED */ uint32_t rawch; /* terminal input characters */ uint32_t canch; /* chars handled in canonical mode */ uint32_t outch; /* terminal output characters */ uint32_t msg; /* msg count (msgrcv()+msgsnd() calls) */ uint32_t sema; /* semaphore ops count (semop() calls) */ uint32_t namei; /* pathname lookups */ uint32_t ufsiget; /* ufs_iget() calls */ uint32_t ufsdirblk; /* directory blocks read */ uint32_t ufsipage; /* inodes taken with attached pages */ uint32_t ufsinopage; /* inodes taked with no attached pages */ uint32_t inodeovf; /* inode table overflows */ uint32_t fileovf; /* file table overflows */ uint32_t procovf; /* proc table overflows */ uint32_t intrthread; /* interrupts as threads (below clock) */ uint32_t intrblk; /* intrs blkd/prempted/released (swtch) */ uint32_t idlethread; /* times idle thread scheduled */ uint32_t inv_swtch; /* involuntary context switches */ uint32_t nthreads; /* thread_create()s */ uint32_t cpumigrate; /* cpu migrations by threads */ uint32_t xcalls; /* xcalls to other cpus */ uint32_t mutex_adenters; /* failed mutex enters (adaptive) */ uint32_t rw_rdfails; /* rw reader failures */ uint32_t rw_wrfails; /* rw writer failures */ uint32_t modload; /* times loadable module loaded */ uint32_t modunload; /* times loadable module unloaded */ uint32_t bawrite; /* physical block writes (async) */ /* Following are gathered only under #ifdef STATISTICS in source */ uint32_t rw_enters; /* tries to acquire rw lock */ uint32_t win_uo_cnt; /* reg window user overflows */ uint32_t win_uu_cnt; /* reg window user underflows */ uint32_t win_so_cnt; /* reg window system overflows */ uint32_t win_su_cnt; /* reg window system underflows */ uint32_t win_suo_cnt; /* reg window system user overflows */ }; struct ks_cpu_syswait { int number$; /* linear cpu number */ string name$; /* name of the cpu */ int instance; /* actual instance number from kernel */ int32_t iowait; /* procs waiting for block I/O */ int32_t swap; /* XXX: UNUSED */ int32_t physio; /* XXX: UNUSED */ }; struct ks_cpu_vminfo { int number$; /* linear cpu number */ string name$; /* name of the cpu */ int instance; /* actual instance number from kernel */ uint32_t pgrec; /* page reclaims (includes pageout) */ uint32_t pgfrec; /* page reclaims from free list */ uint32_t pgin; /* pageins */ uint32_t pgpgin; /* pages paged in */ uint32_t pgout; /* pageouts */ uint32_t pgpgout; /* pages paged out */ uint32_t swapin; /* swapins */ uint32_t pgswapin; /* pages swapped in */ uint32_t swapout; /* swapouts */ uint32_t pgswapout; /* pages swapped out */ uint32_t zfod; /* pages zero filled on demand */ uint32_t dfree; /* pages freed by daemon or auto */ uint32_t scan; /* pages examined by pageout daemon */ uint32_t rev; /* revolutions of the page daemon hand */ uint32_t hat_fault; /* minor page faults via hat_fault() */ uint32_t as_fault; /* minor page faults via as_fault() */ uint32_t maj_fault; /* major page faults */ uint32_t cow_fault; /* copy-on-write faults */ uint32_t prot_fault; /* protection faults */ uint32_t softlock; /* faults due to software locking req */ uint32_t kernel_asflt; /* as_fault()s in kernel addr space */ uint32_t pgrrun; /* times pager scheduled */ }; struct ks_cachefs { int number$; string name$; string cfs_mount_point; string cfs_back_fs; string cfs_cache_dir; string cfs_cache_id; uint32_t cfs_hits; uint32_t cfs_misses; uint32_t cfs_passes; uint32_t cfs_fails; uint32_t cfs_modifies; uint32_t cfs_gc_count; int32_t cfs_gc_time; int32_t cfs_gc_before_atime; int32_t cfs_gc_after_atime; }; #define KNC_STRSIZE 128 // maximum length of knetconfig struct ks_nfs_mount { // the first three members are added by the interpreter int number$; // linear mount index string name$; // name from kstat int instance; // mnttab::dev= & 0xFFFF // these are from nfs/nfs_clnt.h char mik_proto[KNC_STRSIZE]; uint32_t mik_vers; uint_t mik_flags; uint_t mik_secmod; uint32_t mik_curread; uint32_t mik_curwrite; int mik_retrans; uint32_t lookup_srtt; // These 12 members are represented uint32_t lookup_deviate; // as an array of structures in nfs_clnt.h. uint32_t lookup_rtxcur; // If I did it this way, I'd have to uint32_t read_srtt; // rewrite the kstat handling code in uint32_t read_deviate; // the interpreter. And I don't have the uint32_t read_rtxcur; // time to do that. uint32_t write_srtt; uint32_t write_deviate; uint32_t write_rtxcur; uint32_t all_srtt; // smoothed round trip time uint32_t all_deviate; // estimated deviation uint32_t all_rtxcur; // current backed-off retransmission uint32_t mik_noresponse; uint32_t mik_failover; uint32_t mik_remap; char mik_curserver[SYS_NMLN]; }; #endif /* _KSTAT_SE_ */