/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos720 src/bos/kernel/sys/cdli_entuser.musent.h 1.3.1.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* Restricted Materials of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 2011,2013 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)73 1.3.1.1 src/bos/kernel/sys/cdli_entuser.musent.h, pcimusent, bos720 1/8/13 06:24:23 */ #ifndef _H_CDLI_ENTUSER_MUSENT #define _H_CDLI_ENTUSER_MUSENT /* * Miscellaneous definitions */ #define ENT_MU_JUMBO_MAX_MTU (9014) /* jumbo packet max data size */ #define ENT_MU_SX_PCI 0x00000001 /* Gigabit Ethernet-SX PCIe */ #define ENT_MU_SX_PCI1 0x00000002 /* Gigabit Ethernet-SX PCIe */ #define ENT_MU_SX_PCI2 0x00000004 /* Gigabit Ethernet-SX PCIe */ #define ENT_AU_SX_PCI 0x00000008 /* Gigabit Ethernet-SX PCIe */ /* * Gigabit Ethernet adapter (14101403) device specific ndd_flags bits */ #define NDD_MUSENT_32BIT (16*NDD_SPECFLAGS) /* running in a 32bit slot */ #define NDD_MUSENT_LINK_DOWN (32*NDD_SPECFLAGS) /* link is down */ #define NDD_MUSENT_AUTO_NEG (64*NDD_SPECFLAGS) /* establish(ed) link by */ /* on: autonegotiate link */ /* off: force gigabit and */ /* full duplex */ struct musent_txq_stats { uint64_t txq_ifOutUcastPkts; /* # of transmit unicast packets */ uint64_t txq_ifOutMcastPkts; /* # of transmit multicast packets */ uint64_t txq_ifOutBcastPkts; /* # of transmit broadcast packets */ uint64_t txq_opackets; /* # of transmit packets */ uint64_t txq_obytes; /* # of transmit bytes */ uint64_t txq_tcpseg_pkts; /* # of transmit TCP segmentation packets */ uint32_t txq_opackets_drop; /* # of transmit packets dropped */ uint32_t txq_xmitque_ovf; /* # of transmit queue overflows */ uint32_t txq_xmitque_max; /* maximum # of tranmit queue entries */ uint32_t txq_tcpseg_maxpkt; /* maximum TCP segmentation packet size */ uint32_t reserved[32]; /* reserved for future use */ }; typedef struct musent_txq_stats musent_txq_stats_t; struct musent_rxq_stats { uint64_t rxq_tcpaggr; /* # of large receive packets */ uint64_t rxq_tcpaggr_pktcount; /* # of RX TCP packets aggregated into * * large receive packets */ uint64_t rxq_tcpaggr_bytecount; /* # of RX TCP payload bytes aggregated * * aggregated into large receive packets */ uint64_t rxq_sys_mbufs; /* # of system mbufs allocated for receive*/ uint64_t rxq_recv_intrs; /* # of receive interrupts */ uint64_t rxq_ipackets; /* # of receive packets */ uint64_t rxq_ibytes; /* # of receive bytes */ uint64_t rxq_jumbo; /* # of receive jumbo packets */ uint64_t rxq_sys_jum_mbufs; /* # of system mbufs allocated for jumbo */ uint32_t rxq_ibadpackets; /* # of received bad packets */ uint32_t rxq_ipackets_drop; /* # of receive packets dropped */ uint32_t rxq_no_mbufs; /* # of mbuf allocation failures */ uint32_t rxq_hog; /* # of times rx_limit was reached */ uint32_t rxq_tcpaggr_maxpkt; /* maximum large receive packets */ uint32_t reserved[32]; /* reserved for future use */ }; typedef struct musent_rxq_stats musent_rxq_stats_t; /* * Gigabit Ethernet adapter (14101403) device specific statistics */ struct musent_stats { uint tx_timeout_rtn; /* # of entries to timeout routine */ uint link_negotiated; /* negotiated link status */ int coll_freq[16]; /* Frequency of no. of collisions */ uint speed_selected; /* Selected speed and mode */ uint device_type; /* Device type to display UTP */ /* or Fiber adapter statistics */ #define NDD_MUSENT_LNK_UP 0x80000000 /* link is operational */ #define NDD_MUSENT_LNK_ENABLE 0x40000000 /* enable link */ #define NDD_MUSENT_LNK_NEGOTIATE 0x20000000 /* enable autonegotiation */ #define NDD_MUSENT_LNK_RX_FLOW_CTL_Y 0x00800000 /* do RX flow control */ #define NDD_MUSENT_LNK_TX_FLOW_CTL_Y 0x00200000 /* do TX flow control */ #define NDD_MUSENT_LNK_HALF_DUPLEX 0x00100000 /* half duplex */ #define NDD_MUSENT_LNK_FULL_DUPLEX 0x00080000 /* full duplex */ #define NDD_MUSENT_LNK_1000MB 0x00040000 /* 1000 megabit data rate */ #define NDD_MUSENT_LNK_100MB 0x00020000 /* 100 megabit data rate */ #define NDD_MUSENT_LNK_10MB 0x00010000 /* 10 megabit data rate */ #ifndef MEDIA_10_HALF #define MEDIA_10_HALF (0) /* 10 Mbps Half Duplex */ #define MEDIA_10_FULL (1) /* 10 Mbps Full Duplex */ #define MEDIA_100_HALF (2) /* 100 Mbps Half Duplex */ #define MEDIA_100_FULL (3) /* 100 Mbps Full Duplex */ #define MEDIA_AUTO (4) /* Autonegotiation */ #define MEDIA_1000_FULL (5) /* 1000 Mbps Full Duplex*/ #endif uint functions; /* JUMBOF/TCPSEG */ uint xonrxc; /* # of XON packets received */ uint xontxc; /* # of XON packets transmitted */ uint xoffrxc; /* # of XOFF packets received */ uint xofftxc; /* # of XOFF packets transmitted */ uint64_t tx_tcpseg; /* # of TX TCP seg. offld packets */ uint32_t num_rx_queues; /* # of RX queues currently configured */ uint32_t num_tx_queues; /* # of TX queues currently configured */ uint32_t num_busintr; /* # of bus interrupts that should be displayed */ uint32_t busintr[8]; /* 8 value should be similar to MAX_BUS_INTERRUPTS */ musent_txq_stats_t txq[5]; /* array of per TXQ statistics structs */ musent_rxq_stats_t rxq[5]; /* array of per RXQ statistics structs */ uint32_t reserved[32]; /* reserved for future use */ }; typedef struct musent_stats musent_stats_t; struct musent_all_stats { struct ndd_genstats ent_ndd_stats; /* network generic stats */ struct ent_genstats ent_gen_stats; /* ethernet generic stats */ struct musent_stats musent_stats; /* device specific stats */ }; typedef struct musent_all_stats musent_all_stats_t; /* bitmaps for functions flag in musent_stats above */ #define JUMBOF (0x4) #define TCPAGGR (0x10) /* * Gigabit ethernet adapter (14101403) trace hook numbers */ #define HKWD_MUSENT_RECV 0x66400000 /* receive events */ #define HKWD_MUSENT_XMIT 0x66500000 /* transmit events */ #define HKWD_MUSENT_OTHER 0x66600000 /* other events */ #endif /* _H_CDLI_ENTUSER_MUSENT */