18c2ecf20Sopenharmony_ci/****************************************************************************** 28c2ecf20Sopenharmony_ci * This software may be used and distributed according to the terms of 38c2ecf20Sopenharmony_ci * the GNU General Public License (GPL), incorporated herein by reference. 48c2ecf20Sopenharmony_ci * Drivers based on or derived from this code fall under the GPL and must 58c2ecf20Sopenharmony_ci * retain the authorship, copyright and license notice. This file is not 68c2ecf20Sopenharmony_ci * a complete program and may only be used when the entire operating 78c2ecf20Sopenharmony_ci * system is licensed under the GPL. 88c2ecf20Sopenharmony_ci * See the file COPYING in this distribution for more information. 98c2ecf20Sopenharmony_ci * 108c2ecf20Sopenharmony_ci * vxge-traffic.h: Driver for Exar Corp's X3100 Series 10GbE PCIe I/O 118c2ecf20Sopenharmony_ci * Virtualized Server Adapter. 128c2ecf20Sopenharmony_ci * Copyright(c) 2002-2010 Exar Corp. 138c2ecf20Sopenharmony_ci ******************************************************************************/ 148c2ecf20Sopenharmony_ci#ifndef VXGE_TRAFFIC_H 158c2ecf20Sopenharmony_ci#define VXGE_TRAFFIC_H 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#include "vxge-reg.h" 188c2ecf20Sopenharmony_ci#include "vxge-version.h" 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci#define VXGE_HW_DTR_MAX_T_CODE 16 218c2ecf20Sopenharmony_ci#define VXGE_HW_ALL_FOXES 0xFFFFFFFFFFFFFFFFULL 228c2ecf20Sopenharmony_ci#define VXGE_HW_INTR_MASK_ALL 0xFFFFFFFFFFFFFFFFULL 238c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_VIRTUAL_PATHS 17 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci#define VXGE_HW_MAC_MAX_MAC_PORT_ID 2 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci#define VXGE_HW_DEFAULT_32 0xffffffff 288c2ecf20Sopenharmony_ci/* frames sizes */ 298c2ecf20Sopenharmony_ci#define VXGE_HW_HEADER_802_2_SIZE 3 308c2ecf20Sopenharmony_ci#define VXGE_HW_HEADER_SNAP_SIZE 5 318c2ecf20Sopenharmony_ci#define VXGE_HW_HEADER_VLAN_SIZE 4 328c2ecf20Sopenharmony_ci#define VXGE_HW_MAC_HEADER_MAX_SIZE \ 338c2ecf20Sopenharmony_ci (ETH_HLEN + \ 348c2ecf20Sopenharmony_ci VXGE_HW_HEADER_802_2_SIZE + \ 358c2ecf20Sopenharmony_ci VXGE_HW_HEADER_VLAN_SIZE + \ 368c2ecf20Sopenharmony_ci VXGE_HW_HEADER_SNAP_SIZE) 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci/* 32bit alignments */ 398c2ecf20Sopenharmony_ci#define VXGE_HW_HEADER_ETHERNET_II_802_3_ALIGN 2 408c2ecf20Sopenharmony_ci#define VXGE_HW_HEADER_802_2_SNAP_ALIGN 2 418c2ecf20Sopenharmony_ci#define VXGE_HW_HEADER_802_2_ALIGN 3 428c2ecf20Sopenharmony_ci#define VXGE_HW_HEADER_SNAP_ALIGN 1 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci#define VXGE_HW_L3_CKSUM_OK 0xFFFF 458c2ecf20Sopenharmony_ci#define VXGE_HW_L4_CKSUM_OK 0xFFFF 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci/* Forward declarations */ 488c2ecf20Sopenharmony_cistruct __vxge_hw_device; 498c2ecf20Sopenharmony_cistruct __vxge_hw_vpath_handle; 508c2ecf20Sopenharmony_cistruct vxge_hw_vp_config; 518c2ecf20Sopenharmony_cistruct __vxge_hw_virtualpath; 528c2ecf20Sopenharmony_cistruct __vxge_hw_channel; 538c2ecf20Sopenharmony_cistruct __vxge_hw_fifo; 548c2ecf20Sopenharmony_cistruct __vxge_hw_ring; 558c2ecf20Sopenharmony_cistruct vxge_hw_ring_attr; 568c2ecf20Sopenharmony_cistruct vxge_hw_mempool; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci#ifndef TRUE 598c2ecf20Sopenharmony_ci#define TRUE 1 608c2ecf20Sopenharmony_ci#endif 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci#ifndef FALSE 638c2ecf20Sopenharmony_ci#define FALSE 0 648c2ecf20Sopenharmony_ci#endif 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci/*VXGE_HW_STATUS_H*/ 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci#define VXGE_HW_EVENT_BASE 0 698c2ecf20Sopenharmony_ci#define VXGE_LL_EVENT_BASE 100 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci/** 728c2ecf20Sopenharmony_ci * enum vxge_hw_event- Enumerates slow-path HW events. 738c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_UNKNOWN: Unknown (and invalid) event. 748c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_SERR: Serious vpath hardware error event. 758c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_ECCERR: vpath ECC error event. 768c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_VPATH_ERR: Error local to the respective vpath 778c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_FIFO_ERR: FIFO Doorbell fifo error. 788c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_SRPCIM_SERR: srpcim hardware error event. 798c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_MRPCIM_SERR: mrpcim hardware error event. 808c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_MRPCIM_ECCERR: mrpcim ecc error event. 818c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_RESET_START: Privileged entity is starting device reset 828c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_RESET_COMPLETE: Device reset has been completed 838c2ecf20Sopenharmony_ci * @VXGE_HW_EVENT_SLOT_FREEZE: Slot-freeze event. Driver tries to distinguish 848c2ecf20Sopenharmony_ci * slot-freeze from the rest critical events (e.g. ECC) when it is 858c2ecf20Sopenharmony_ci * impossible to PIO read "through" the bus, i.e. when getting all-foxes. 868c2ecf20Sopenharmony_ci * 878c2ecf20Sopenharmony_ci * enum vxge_hw_event enumerates slow-path HW eventis. 888c2ecf20Sopenharmony_ci * 898c2ecf20Sopenharmony_ci * See also: struct vxge_hw_uld_cbs{}, vxge_uld_link_up_f{}, 908c2ecf20Sopenharmony_ci * vxge_uld_link_down_f{}. 918c2ecf20Sopenharmony_ci */ 928c2ecf20Sopenharmony_cienum vxge_hw_event { 938c2ecf20Sopenharmony_ci VXGE_HW_EVENT_UNKNOWN = 0, 948c2ecf20Sopenharmony_ci /* HW events */ 958c2ecf20Sopenharmony_ci VXGE_HW_EVENT_RESET_START = VXGE_HW_EVENT_BASE + 1, 968c2ecf20Sopenharmony_ci VXGE_HW_EVENT_RESET_COMPLETE = VXGE_HW_EVENT_BASE + 2, 978c2ecf20Sopenharmony_ci VXGE_HW_EVENT_LINK_DOWN = VXGE_HW_EVENT_BASE + 3, 988c2ecf20Sopenharmony_ci VXGE_HW_EVENT_LINK_UP = VXGE_HW_EVENT_BASE + 4, 998c2ecf20Sopenharmony_ci VXGE_HW_EVENT_ALARM_CLEARED = VXGE_HW_EVENT_BASE + 5, 1008c2ecf20Sopenharmony_ci VXGE_HW_EVENT_ECCERR = VXGE_HW_EVENT_BASE + 6, 1018c2ecf20Sopenharmony_ci VXGE_HW_EVENT_MRPCIM_ECCERR = VXGE_HW_EVENT_BASE + 7, 1028c2ecf20Sopenharmony_ci VXGE_HW_EVENT_FIFO_ERR = VXGE_HW_EVENT_BASE + 8, 1038c2ecf20Sopenharmony_ci VXGE_HW_EVENT_VPATH_ERR = VXGE_HW_EVENT_BASE + 9, 1048c2ecf20Sopenharmony_ci VXGE_HW_EVENT_CRITICAL_ERR = VXGE_HW_EVENT_BASE + 10, 1058c2ecf20Sopenharmony_ci VXGE_HW_EVENT_SERR = VXGE_HW_EVENT_BASE + 11, 1068c2ecf20Sopenharmony_ci VXGE_HW_EVENT_SRPCIM_SERR = VXGE_HW_EVENT_BASE + 12, 1078c2ecf20Sopenharmony_ci VXGE_HW_EVENT_MRPCIM_SERR = VXGE_HW_EVENT_BASE + 13, 1088c2ecf20Sopenharmony_ci VXGE_HW_EVENT_SLOT_FREEZE = VXGE_HW_EVENT_BASE + 14, 1098c2ecf20Sopenharmony_ci}; 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci#define VXGE_HW_SET_LEVEL(a, b) (((a) > (b)) ? (a) : (b)) 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci/* 1148c2ecf20Sopenharmony_ci * struct vxge_hw_mempool_dma - Represents DMA objects passed to the 1158c2ecf20Sopenharmony_ci caller. 1168c2ecf20Sopenharmony_ci */ 1178c2ecf20Sopenharmony_cistruct vxge_hw_mempool_dma { 1188c2ecf20Sopenharmony_ci dma_addr_t addr; 1198c2ecf20Sopenharmony_ci struct pci_dev *handle; 1208c2ecf20Sopenharmony_ci struct pci_dev *acc_handle; 1218c2ecf20Sopenharmony_ci}; 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci/* 1248c2ecf20Sopenharmony_ci * vxge_hw_mempool_item_f - Mempool item alloc/free callback 1258c2ecf20Sopenharmony_ci * @mempoolh: Memory pool handle. 1268c2ecf20Sopenharmony_ci * @memblock: Address of memory block 1278c2ecf20Sopenharmony_ci * @memblock_index: Index of memory block 1288c2ecf20Sopenharmony_ci * @item: Item that gets allocated or freed. 1298c2ecf20Sopenharmony_ci * @index: Item's index in the memory pool. 1308c2ecf20Sopenharmony_ci * @is_last: True, if this item is the last one in the pool; false - otherwise. 1318c2ecf20Sopenharmony_ci * userdata: Per-pool user context. 1328c2ecf20Sopenharmony_ci * 1338c2ecf20Sopenharmony_ci * Memory pool allocation/deallocation callback. 1348c2ecf20Sopenharmony_ci */ 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci/* 1378c2ecf20Sopenharmony_ci * struct vxge_hw_mempool - Memory pool. 1388c2ecf20Sopenharmony_ci */ 1398c2ecf20Sopenharmony_cistruct vxge_hw_mempool { 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci void (*item_func_alloc)( 1428c2ecf20Sopenharmony_ci struct vxge_hw_mempool *mempoolh, 1438c2ecf20Sopenharmony_ci u32 memblock_index, 1448c2ecf20Sopenharmony_ci struct vxge_hw_mempool_dma *dma_object, 1458c2ecf20Sopenharmony_ci u32 index, 1468c2ecf20Sopenharmony_ci u32 is_last); 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci void *userdata; 1498c2ecf20Sopenharmony_ci void **memblocks_arr; 1508c2ecf20Sopenharmony_ci void **memblocks_priv_arr; 1518c2ecf20Sopenharmony_ci struct vxge_hw_mempool_dma *memblocks_dma_arr; 1528c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh; 1538c2ecf20Sopenharmony_ci u32 memblock_size; 1548c2ecf20Sopenharmony_ci u32 memblocks_max; 1558c2ecf20Sopenharmony_ci u32 memblocks_allocated; 1568c2ecf20Sopenharmony_ci u32 item_size; 1578c2ecf20Sopenharmony_ci u32 items_max; 1588c2ecf20Sopenharmony_ci u32 items_initial; 1598c2ecf20Sopenharmony_ci u32 items_current; 1608c2ecf20Sopenharmony_ci u32 items_per_memblock; 1618c2ecf20Sopenharmony_ci void **items_arr; 1628c2ecf20Sopenharmony_ci u32 items_priv_size; 1638c2ecf20Sopenharmony_ci}; 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_INTR_PER_VP 4 1668c2ecf20Sopenharmony_ci#define VXGE_HW_VPATH_INTR_TX 0 1678c2ecf20Sopenharmony_ci#define VXGE_HW_VPATH_INTR_RX 1 1688c2ecf20Sopenharmony_ci#define VXGE_HW_VPATH_INTR_EINTA 2 1698c2ecf20Sopenharmony_ci#define VXGE_HW_VPATH_INTR_BMAP 3 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci#define VXGE_HW_BLOCK_SIZE 4096 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci/** 1748c2ecf20Sopenharmony_ci * struct vxge_hw_tim_intr_config - Titan Tim interrupt configuration. 1758c2ecf20Sopenharmony_ci * @intr_enable: Set to 1, if interrupt is enabled. 1768c2ecf20Sopenharmony_ci * @btimer_val: Boundary Timer Initialization value in units of 272 ns. 1778c2ecf20Sopenharmony_ci * @timer_ac_en: Timer Automatic Cancel. 1 : Automatic Canceling Enable: when 1788c2ecf20Sopenharmony_ci * asserted, other interrupt-generating entities will cancel the 1798c2ecf20Sopenharmony_ci * scheduled timer interrupt. 1808c2ecf20Sopenharmony_ci * @timer_ci_en: Timer Continuous Interrupt. 1 : Continuous Interrupting Enable: 1818c2ecf20Sopenharmony_ci * When asserted, an interrupt will be generated every time the 1828c2ecf20Sopenharmony_ci * boundary timer expires, even if no traffic has been transmitted 1838c2ecf20Sopenharmony_ci * on this interrupt. 1848c2ecf20Sopenharmony_ci * @timer_ri_en: Timer Consecutive (Re-) Interrupt 1 : Consecutive 1858c2ecf20Sopenharmony_ci * (Re-) Interrupt Enable: When asserted, an interrupt will be 1868c2ecf20Sopenharmony_ci * generated the next time the timer expires, even if no traffic has 1878c2ecf20Sopenharmony_ci * been transmitted on this interrupt. (This will only happen once 1888c2ecf20Sopenharmony_ci * each time that this value is written to the TIM.) This bit is 1898c2ecf20Sopenharmony_ci * cleared by H/W at the end of the current-timer-interval when 1908c2ecf20Sopenharmony_ci * the interrupt is triggered. 1918c2ecf20Sopenharmony_ci * @rtimer_val: Restriction Timer Initialization value in units of 272 ns. 1928c2ecf20Sopenharmony_ci * @util_sel: Utilization Selector. Selects which of the workload approximations 1938c2ecf20Sopenharmony_ci * to use (e.g. legacy Tx utilization, Tx/Rx utilization, host 1948c2ecf20Sopenharmony_ci * specified utilization etc.), selects one of 1958c2ecf20Sopenharmony_ci * the 17 host configured values. 1968c2ecf20Sopenharmony_ci * 0-Virtual Path 0 1978c2ecf20Sopenharmony_ci * 1-Virtual Path 1 1988c2ecf20Sopenharmony_ci * ... 1998c2ecf20Sopenharmony_ci * 16-Virtual Path 17 2008c2ecf20Sopenharmony_ci * 17-Legacy Tx network utilization, provided by TPA 2018c2ecf20Sopenharmony_ci * 18-Legacy Rx network utilization, provided by FAU 2028c2ecf20Sopenharmony_ci * 19-Average of legacy Rx and Tx utilization calculated from link 2038c2ecf20Sopenharmony_ci * utilization values. 2048c2ecf20Sopenharmony_ci * 20-31-Invalid configurations 2058c2ecf20Sopenharmony_ci * 32-Host utilization for Virtual Path 0 2068c2ecf20Sopenharmony_ci * 33-Host utilization for Virtual Path 1 2078c2ecf20Sopenharmony_ci * ... 2088c2ecf20Sopenharmony_ci * 48-Host utilization for Virtual Path 17 2098c2ecf20Sopenharmony_ci * 49-Legacy Tx network utilization, provided by TPA 2108c2ecf20Sopenharmony_ci * 50-Legacy Rx network utilization, provided by FAU 2118c2ecf20Sopenharmony_ci * 51-Average of legacy Rx and Tx utilization calculated from 2128c2ecf20Sopenharmony_ci * link utilization values. 2138c2ecf20Sopenharmony_ci * 52-63-Invalid configurations 2148c2ecf20Sopenharmony_ci * @ltimer_val: Latency Timer Initialization Value in units of 272 ns. 2158c2ecf20Sopenharmony_ci * @txd_cnt_en: TxD Return Event Count Enable. This configuration bit when set 2168c2ecf20Sopenharmony_ci * to 1 enables counting of TxD0 returns (signalled by PCC's), 2178c2ecf20Sopenharmony_ci * towards utilization event count values. 2188c2ecf20Sopenharmony_ci * @urange_a: Defines the upper limit (in percent) for this utilization range 2198c2ecf20Sopenharmony_ci * to be active. This range is considered active 2208c2ecf20Sopenharmony_ci * if 0 = UTIL = URNG_A 2218c2ecf20Sopenharmony_ci * and the UEC_A field (below) is non-zero. 2228c2ecf20Sopenharmony_ci * @uec_a: Utilization Event Count A. If this range is active, the adapter will 2238c2ecf20Sopenharmony_ci * wait until UEC_A events have occurred on the interrupt before 2248c2ecf20Sopenharmony_ci * generating an interrupt. 2258c2ecf20Sopenharmony_ci * @urange_b: Link utilization range B. 2268c2ecf20Sopenharmony_ci * @uec_b: Utilization Event Count B. 2278c2ecf20Sopenharmony_ci * @urange_c: Link utilization range C. 2288c2ecf20Sopenharmony_ci * @uec_c: Utilization Event Count C. 2298c2ecf20Sopenharmony_ci * @urange_d: Link utilization range D. 2308c2ecf20Sopenharmony_ci * @uec_d: Utilization Event Count D. 2318c2ecf20Sopenharmony_ci * Traffic Interrupt Controller Module interrupt configuration. 2328c2ecf20Sopenharmony_ci */ 2338c2ecf20Sopenharmony_cistruct vxge_hw_tim_intr_config { 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ci u32 intr_enable; 2368c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_INTR_ENABLE 1 2378c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_INTR_DISABLE 0 2388c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_INTR_DEFAULT 0 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci u32 btimer_val; 2418c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_BTIMER_VAL 0 2428c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_BTIMER_VAL 67108864 2438c2ecf20Sopenharmony_ci#define VXGE_HW_USE_FLASH_DEFAULT (~0) 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ci u32 timer_ac_en; 2468c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_TIMER_AC_ENABLE 1 2478c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_TIMER_AC_DISABLE 0 2488c2ecf20Sopenharmony_ci 2498c2ecf20Sopenharmony_ci u32 timer_ci_en; 2508c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_TIMER_CI_ENABLE 1 2518c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_TIMER_CI_DISABLE 0 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci u32 timer_ri_en; 2548c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_TIMER_RI_ENABLE 1 2558c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_TIMER_RI_DISABLE 0 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci u32 rtimer_val; 2588c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_RTIMER_VAL 0 2598c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_RTIMER_VAL 67108864 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci u32 util_sel; 2628c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_UTIL_SEL_LEGACY_TX_NET_UTIL 17 2638c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_UTIL_SEL_LEGACY_RX_NET_UTIL 18 2648c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_UTIL_SEL_LEGACY_TX_RX_AVE_NET_UTIL 19 2658c2ecf20Sopenharmony_ci#define VXGE_HW_TIM_UTIL_SEL_PER_VPATH 63 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci u32 ltimer_val; 2688c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_LTIMER_VAL 0 2698c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_LTIMER_VAL 67108864 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_ci /* Line utilization interrupts */ 2728c2ecf20Sopenharmony_ci u32 urange_a; 2738c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_URANGE_A 0 2748c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_URANGE_A 100 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ci u32 uec_a; 2778c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_UEC_A 0 2788c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_UEC_A 65535 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ci u32 urange_b; 2818c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_URANGE_B 0 2828c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_URANGE_B 100 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ci u32 uec_b; 2858c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_UEC_B 0 2868c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_UEC_B 65535 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_ci u32 urange_c; 2898c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_URANGE_C 0 2908c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_URANGE_C 100 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci u32 uec_c; 2938c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_UEC_C 0 2948c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_UEC_C 65535 2958c2ecf20Sopenharmony_ci 2968c2ecf20Sopenharmony_ci u32 uec_d; 2978c2ecf20Sopenharmony_ci#define VXGE_HW_MIN_TIM_UEC_D 0 2988c2ecf20Sopenharmony_ci#define VXGE_HW_MAX_TIM_UEC_D 65535 2998c2ecf20Sopenharmony_ci}; 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_OP_READ 0 3028c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_OP_CLEAR_STAT 1 3038c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_OP_CLEAR_ALL_VPATH_STATS 2 3048c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_OP_CLEAR_ALL_STATS_OF_LOC 2 3058c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_OP_CLEAR_ALL_STATS 3 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_LOC_AGGR 17 3088c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_AGGRn_OFFSET 0x00720 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_VPATH_TX_OFFSET 0x0 3118c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_VPATH_RX_OFFSET 0x00090 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_VPATH_PROG_EVENT_VNUM0_OFFSET (0x001d0 >> 3) 3148c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_GET_VPATH_PROG_EVENT_VNUM0(bits) \ 3158c2ecf20Sopenharmony_ci vxge_bVALn(bits, 0, 32) 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_GET_VPATH_PROG_EVENT_VNUM1(bits) \ 3188c2ecf20Sopenharmony_ci vxge_bVALn(bits, 32, 32) 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_VPATH_PROG_EVENT_VNUM2_OFFSET (0x001d8 >> 3) 3218c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_GET_VPATH_PROG_EVENT_VNUM2(bits) \ 3228c2ecf20Sopenharmony_ci vxge_bVALn(bits, 0, 32) 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci#define VXGE_HW_STATS_GET_VPATH_PROG_EVENT_VNUM3(bits) \ 3258c2ecf20Sopenharmony_ci vxge_bVALn(bits, 32, 32) 3268c2ecf20Sopenharmony_ci 3278c2ecf20Sopenharmony_ci/** 3288c2ecf20Sopenharmony_ci * struct vxge_hw_xmac_aggr_stats - Per-Aggregator XMAC Statistics 3298c2ecf20Sopenharmony_ci * 3308c2ecf20Sopenharmony_ci * @tx_frms: Count of data frames transmitted on this Aggregator on all 3318c2ecf20Sopenharmony_ci * its Aggregation ports. Does not include LACPDUs or Marker PDUs. 3328c2ecf20Sopenharmony_ci * However, does include frames discarded by the Distribution 3338c2ecf20Sopenharmony_ci * function. 3348c2ecf20Sopenharmony_ci * @tx_data_octets: Count of data and padding octets of frames transmitted 3358c2ecf20Sopenharmony_ci * on this Aggregator on all its Aggregation ports. Does not include 3368c2ecf20Sopenharmony_ci * octets of LACPDUs or Marker PDUs. However, does include octets of 3378c2ecf20Sopenharmony_ci * frames discarded by the Distribution function. 3388c2ecf20Sopenharmony_ci * @tx_mcast_frms: Count of data frames transmitted (to a group destination 3398c2ecf20Sopenharmony_ci * address other than the broadcast address) on this Aggregator on 3408c2ecf20Sopenharmony_ci * all its Aggregation ports. Does not include LACPDUs or Marker 3418c2ecf20Sopenharmony_ci * PDUs. However, does include frames discarded by the Distribution 3428c2ecf20Sopenharmony_ci * function. 3438c2ecf20Sopenharmony_ci * @tx_bcast_frms: Count of broadcast data frames transmitted on this Aggregator 3448c2ecf20Sopenharmony_ci * on all its Aggregation ports. Does not include LACPDUs or Marker 3458c2ecf20Sopenharmony_ci * PDUs. However, does include frames discarded by the Distribution 3468c2ecf20Sopenharmony_ci * function. 3478c2ecf20Sopenharmony_ci * @tx_discarded_frms: Count of data frames to be transmitted on this Aggregator 3488c2ecf20Sopenharmony_ci * that are discarded by the Distribution function. This occurs when 3498c2ecf20Sopenharmony_ci * conversation are allocated to different ports and have to be 3508c2ecf20Sopenharmony_ci * flushed on old ports 3518c2ecf20Sopenharmony_ci * @tx_errored_frms: Count of data frames transmitted on this Aggregator that 3528c2ecf20Sopenharmony_ci * experience transmission errors on its Aggregation ports. 3538c2ecf20Sopenharmony_ci * @rx_frms: Count of data frames received on this Aggregator on all its 3548c2ecf20Sopenharmony_ci * Aggregation ports. Does not include LACPDUs or Marker PDUs. 3558c2ecf20Sopenharmony_ci * Also, does not include frames discarded by the Collection 3568c2ecf20Sopenharmony_ci * function. 3578c2ecf20Sopenharmony_ci * @rx_data_octets: Count of data and padding octets of frames received on this 3588c2ecf20Sopenharmony_ci * Aggregator on all its Aggregation ports. Does not include octets 3598c2ecf20Sopenharmony_ci * of LACPDUs or Marker PDUs. Also, does not include 3608c2ecf20Sopenharmony_ci * octets of frames 3618c2ecf20Sopenharmony_ci * discarded by the Collection function. 3628c2ecf20Sopenharmony_ci * @rx_mcast_frms: Count of data frames received (from a group destination 3638c2ecf20Sopenharmony_ci * address other than the broadcast address) on this Aggregator on 3648c2ecf20Sopenharmony_ci * all its Aggregation ports. Does not include LACPDUs or Marker 3658c2ecf20Sopenharmony_ci * PDUs. Also, does not include frames discarded by the Collection 3668c2ecf20Sopenharmony_ci * function. 3678c2ecf20Sopenharmony_ci * @rx_bcast_frms: Count of broadcast data frames received on this Aggregator on 3688c2ecf20Sopenharmony_ci * all its Aggregation ports. Does not include LACPDUs or Marker 3698c2ecf20Sopenharmony_ci * PDUs. Also, does not include frames discarded by the Collection 3708c2ecf20Sopenharmony_ci * function. 3718c2ecf20Sopenharmony_ci * @rx_discarded_frms: Count of data frames received on this Aggregator that are 3728c2ecf20Sopenharmony_ci * discarded by the Collection function because the Collection 3738c2ecf20Sopenharmony_ci * function was disabled on the port which the frames are received. 3748c2ecf20Sopenharmony_ci * @rx_errored_frms: Count of data frames received on this Aggregator that are 3758c2ecf20Sopenharmony_ci * discarded by its Aggregation ports, or are discarded by the 3768c2ecf20Sopenharmony_ci * Collection function of the Aggregator, or that are discarded by 3778c2ecf20Sopenharmony_ci * the Aggregator due to detection of an illegal Slow Protocols PDU. 3788c2ecf20Sopenharmony_ci * @rx_unknown_slow_proto_frms: Count of data frames received on this Aggregator 3798c2ecf20Sopenharmony_ci * that are discarded by its Aggregation ports due to detection of 3808c2ecf20Sopenharmony_ci * an unknown Slow Protocols PDU. 3818c2ecf20Sopenharmony_ci * 3828c2ecf20Sopenharmony_ci * Per aggregator XMAC RX statistics. 3838c2ecf20Sopenharmony_ci */ 3848c2ecf20Sopenharmony_cistruct vxge_hw_xmac_aggr_stats { 3858c2ecf20Sopenharmony_ci/*0x000*/ u64 tx_frms; 3868c2ecf20Sopenharmony_ci/*0x008*/ u64 tx_data_octets; 3878c2ecf20Sopenharmony_ci/*0x010*/ u64 tx_mcast_frms; 3888c2ecf20Sopenharmony_ci/*0x018*/ u64 tx_bcast_frms; 3898c2ecf20Sopenharmony_ci/*0x020*/ u64 tx_discarded_frms; 3908c2ecf20Sopenharmony_ci/*0x028*/ u64 tx_errored_frms; 3918c2ecf20Sopenharmony_ci/*0x030*/ u64 rx_frms; 3928c2ecf20Sopenharmony_ci/*0x038*/ u64 rx_data_octets; 3938c2ecf20Sopenharmony_ci/*0x040*/ u64 rx_mcast_frms; 3948c2ecf20Sopenharmony_ci/*0x048*/ u64 rx_bcast_frms; 3958c2ecf20Sopenharmony_ci/*0x050*/ u64 rx_discarded_frms; 3968c2ecf20Sopenharmony_ci/*0x058*/ u64 rx_errored_frms; 3978c2ecf20Sopenharmony_ci/*0x060*/ u64 rx_unknown_slow_proto_frms; 3988c2ecf20Sopenharmony_ci} __packed; 3998c2ecf20Sopenharmony_ci 4008c2ecf20Sopenharmony_ci/** 4018c2ecf20Sopenharmony_ci * struct vxge_hw_xmac_port_stats - XMAC Port Statistics 4028c2ecf20Sopenharmony_ci * 4038c2ecf20Sopenharmony_ci * @tx_ttl_frms: Count of successfully transmitted MAC frames 4048c2ecf20Sopenharmony_ci * @tx_ttl_octets: Count of total octets of transmitted frames, not including 4058c2ecf20Sopenharmony_ci * framing characters (i.e. less framing bits). To determine the 4068c2ecf20Sopenharmony_ci * total octets of transmitted frames, including framing characters, 4078c2ecf20Sopenharmony_ci * multiply PORTn_TX_TTL_FRMS by 8 and add it to this stat (unless 4088c2ecf20Sopenharmony_ci * otherwise configured, this stat only counts frames that have 4098c2ecf20Sopenharmony_ci * 8 bytes of preamble for each frame). This stat can be configured 4108c2ecf20Sopenharmony_ci * (see XMAC_STATS_GLOBAL_CFG.TTL_FRMS_HANDLING) to count everything 4118c2ecf20Sopenharmony_ci * including the preamble octets. 4128c2ecf20Sopenharmony_ci * @tx_data_octets: Count of data and padding octets of successfully transmitted 4138c2ecf20Sopenharmony_ci * frames. 4148c2ecf20Sopenharmony_ci * @tx_mcast_frms: Count of successfully transmitted frames to a group address 4158c2ecf20Sopenharmony_ci * other than the broadcast address. 4168c2ecf20Sopenharmony_ci * @tx_bcast_frms: Count of successfully transmitted frames to the broadcast 4178c2ecf20Sopenharmony_ci * group address. 4188c2ecf20Sopenharmony_ci * @tx_ucast_frms: Count of transmitted frames containing a unicast address. 4198c2ecf20Sopenharmony_ci * Includes discarded frames that are not sent to the network. 4208c2ecf20Sopenharmony_ci * @tx_tagged_frms: Count of transmitted frames containing a VLAN tag. 4218c2ecf20Sopenharmony_ci * @tx_vld_ip: Count of transmitted IP datagrams that are passed to the network. 4228c2ecf20Sopenharmony_ci * @tx_vld_ip_octets: Count of total octets of transmitted IP datagrams that 4238c2ecf20Sopenharmony_ci * are passed to the network. 4248c2ecf20Sopenharmony_ci * @tx_icmp: Count of transmitted ICMP messages. Includes messages not sent 4258c2ecf20Sopenharmony_ci * due to problems within ICMP. 4268c2ecf20Sopenharmony_ci * @tx_tcp: Count of transmitted TCP segments. Does not include segments 4278c2ecf20Sopenharmony_ci * containing retransmitted octets. 4288c2ecf20Sopenharmony_ci * @tx_rst_tcp: Count of transmitted TCP segments containing the RST flag. 4298c2ecf20Sopenharmony_ci * @tx_udp: Count of transmitted UDP datagrams. 4308c2ecf20Sopenharmony_ci * @tx_parse_error: Increments when the TPA is unable to parse a packet. This 4318c2ecf20Sopenharmony_ci * generally occurs when a packet is corrupt somehow, including 4328c2ecf20Sopenharmony_ci * packets that have IP version mismatches, invalid Layer 2 control 4338c2ecf20Sopenharmony_ci * fields, etc. L3/L4 checksums are not offloaded, but the packet 4348c2ecf20Sopenharmony_ci * is still be transmitted. 4358c2ecf20Sopenharmony_ci * @tx_unknown_protocol: Increments when the TPA encounters an unknown 4368c2ecf20Sopenharmony_ci * protocol, such as a new IPv6 extension header, or an unsupported 4378c2ecf20Sopenharmony_ci * Routing Type. The packet still has a checksum calculated but it 4388c2ecf20Sopenharmony_ci * may be incorrect. 4398c2ecf20Sopenharmony_ci * @tx_pause_ctrl_frms: Count of MAC PAUSE control frames that are transmitted. 4408c2ecf20Sopenharmony_ci * Since, the only control frames supported by this device are 4418c2ecf20Sopenharmony_ci * PAUSE frames, this register is a count of all transmitted MAC 4428c2ecf20Sopenharmony_ci * control frames. 4438c2ecf20Sopenharmony_ci * @tx_marker_pdu_frms: Count of Marker PDUs transmitted 4448c2ecf20Sopenharmony_ci * on this Aggregation port. 4458c2ecf20Sopenharmony_ci * @tx_lacpdu_frms: Count of LACPDUs transmitted on this Aggregation port. 4468c2ecf20Sopenharmony_ci * @tx_drop_ip: Count of transmitted IP datagrams that could not be passed to 4478c2ecf20Sopenharmony_ci * the network. Increments because of: 4488c2ecf20Sopenharmony_ci * 1) An internal processing error 4498c2ecf20Sopenharmony_ci * (such as an uncorrectable ECC error). 2) A frame parsing error 4508c2ecf20Sopenharmony_ci * during IP checksum calculation. 4518c2ecf20Sopenharmony_ci * @tx_marker_resp_pdu_frms: Count of Marker Response PDUs transmitted on this 4528c2ecf20Sopenharmony_ci * Aggregation port. 4538c2ecf20Sopenharmony_ci * @tx_xgmii_char2_match: Maintains a count of the number of transmitted XGMII 4548c2ecf20Sopenharmony_ci * characters that match a pattern that is programmable through 4558c2ecf20Sopenharmony_ci * register XMAC_STATS_TX_XGMII_CHAR_PORTn. By default, the pattern 4568c2ecf20Sopenharmony_ci * is set to /T/ (i.e. the terminate character), thus the statistic 4578c2ecf20Sopenharmony_ci * tracks the number of transmitted Terminate characters. 4588c2ecf20Sopenharmony_ci * @tx_xgmii_char1_match: Maintains a count of the number of transmitted XGMII 4598c2ecf20Sopenharmony_ci * characters that match a pattern that is programmable through 4608c2ecf20Sopenharmony_ci * register XMAC_STATS_TX_XGMII_CHAR_PORTn. By default, the pattern 4618c2ecf20Sopenharmony_ci * is set to /S/ (i.e. the start character), 4628c2ecf20Sopenharmony_ci * thus the statistic tracks 4638c2ecf20Sopenharmony_ci * the number of transmitted Start characters. 4648c2ecf20Sopenharmony_ci * @tx_xgmii_column2_match: Maintains a count of the number of transmitted XGMII 4658c2ecf20Sopenharmony_ci * columns that match a pattern that is programmable through register 4668c2ecf20Sopenharmony_ci * XMAC_STATS_TX_XGMII_COLUMN2_PORTn. By default, the pattern is set 4678c2ecf20Sopenharmony_ci * to 4 x /E/ (i.e. a column containing all error characters), thus 4688c2ecf20Sopenharmony_ci * the statistic tracks the number of Error columns transmitted at 4698c2ecf20Sopenharmony_ci * any time. If XMAC_STATS_TX_XGMII_BEHAV_COLUMN2_PORTn.NEAR_COL1 is 4708c2ecf20Sopenharmony_ci * set to 1, then this stat increments when COLUMN2 is found within 4718c2ecf20Sopenharmony_ci * 'n' clocks after COLUMN1. Here, 'n' is defined by 4728c2ecf20Sopenharmony_ci * XMAC_STATS_TX_XGMII_BEHAV_COLUMN2_PORTn.NUM_COL (if 'n' is set 4738c2ecf20Sopenharmony_ci * to 0, then it means to search anywhere for COLUMN2). 4748c2ecf20Sopenharmony_ci * @tx_xgmii_column1_match: Maintains a count of the number of transmitted XGMII 4758c2ecf20Sopenharmony_ci * columns that match a pattern that is programmable through register 4768c2ecf20Sopenharmony_ci * XMAC_STATS_TX_XGMII_COLUMN1_PORTn. By default, the pattern is set 4778c2ecf20Sopenharmony_ci * to 4 x /I/ (i.e. a column containing all idle characters), 4788c2ecf20Sopenharmony_ci * thus the statistic tracks the number of transmitted Idle columns. 4798c2ecf20Sopenharmony_ci * @tx_any_err_frms: Count of transmitted frames containing any error that 4808c2ecf20Sopenharmony_ci * prevents them from being passed to the network. Increments if 4818c2ecf20Sopenharmony_ci * there is an ECC while reading the frame out of the transmit 4828c2ecf20Sopenharmony_ci * buffer. Also increments if the transmit protocol assist (TPA) 4838c2ecf20Sopenharmony_ci * block determines that the frame should not be sent. 4848c2ecf20Sopenharmony_ci * @tx_drop_frms: Count of frames that could not be sent for no other reason 4858c2ecf20Sopenharmony_ci * than internal MAC processing. Increments once whenever the 4868c2ecf20Sopenharmony_ci * transmit buffer is flushed (due to an ECC error on a memory 4878c2ecf20Sopenharmony_ci * descriptor). 4888c2ecf20Sopenharmony_ci * @rx_ttl_frms: Count of total received MAC frames, including frames received 4898c2ecf20Sopenharmony_ci * with frame-too-long, FCS, or length errors. This stat can be 4908c2ecf20Sopenharmony_ci * configured (see XMAC_STATS_GLOBAL_CFG.TTL_FRMS_HANDLING) to count 4918c2ecf20Sopenharmony_ci * everything, even "frames" as small one byte of preamble. 4928c2ecf20Sopenharmony_ci * @rx_vld_frms: Count of successfully received MAC frames. Does not include 4938c2ecf20Sopenharmony_ci * frames received with frame-too-long, FCS, or length errors. 4948c2ecf20Sopenharmony_ci * @rx_offload_frms: Count of offloaded received frames that are passed to 4958c2ecf20Sopenharmony_ci * the host. 4968c2ecf20Sopenharmony_ci * @rx_ttl_octets: Count of total octets of received frames, not including 4978c2ecf20Sopenharmony_ci * framing characters (i.e. less framing bits). To determine the 4988c2ecf20Sopenharmony_ci * total octets of received frames, including framing characters, 4998c2ecf20Sopenharmony_ci * multiply PORTn_RX_TTL_FRMS by 8 and add it to this stat (unless 5008c2ecf20Sopenharmony_ci * otherwise configured, this stat only counts frames that have 8 5018c2ecf20Sopenharmony_ci * bytes of preamble for each frame). This stat can be configured 5028c2ecf20Sopenharmony_ci * (see XMAC_STATS_GLOBAL_CFG.TTL_FRMS_HANDLING) to count everything, 5038c2ecf20Sopenharmony_ci * even the preamble octets of "frames" as small one byte of preamble 5048c2ecf20Sopenharmony_ci * @rx_data_octets: Count of data and padding octets of successfully received 5058c2ecf20Sopenharmony_ci * frames. Does not include frames received with frame-too-long, 5068c2ecf20Sopenharmony_ci * FCS, or length errors. 5078c2ecf20Sopenharmony_ci * @rx_offload_octets: Count of total octets, not including framing 5088c2ecf20Sopenharmony_ci * characters, of offloaded received frames that are passed 5098c2ecf20Sopenharmony_ci * to the host. 5108c2ecf20Sopenharmony_ci * @rx_vld_mcast_frms: Count of successfully received MAC frames containing a 5118c2ecf20Sopenharmony_ci * nonbroadcast group address. Does not include frames received 5128c2ecf20Sopenharmony_ci * with frame-too-long, FCS, or length errors. 5138c2ecf20Sopenharmony_ci * @rx_vld_bcast_frms: Count of successfully received MAC frames containing 5148c2ecf20Sopenharmony_ci * the broadcast group address. Does not include frames received 5158c2ecf20Sopenharmony_ci * with frame-too-long, FCS, or length errors. 5168c2ecf20Sopenharmony_ci * @rx_accepted_ucast_frms: Count of successfully received frames containing 5178c2ecf20Sopenharmony_ci * a unicast address. Only includes frames that are passed to 5188c2ecf20Sopenharmony_ci * the system. 5198c2ecf20Sopenharmony_ci * @rx_accepted_nucast_frms: Count of successfully received frames containing 5208c2ecf20Sopenharmony_ci * a non-unicast (broadcast or multicast) address. Only includes 5218c2ecf20Sopenharmony_ci * frames that are passed to the system. Could include, for instance, 5228c2ecf20Sopenharmony_ci * non-unicast frames that contain FCS errors if the MAC_ERROR_CFG 5238c2ecf20Sopenharmony_ci * register is set to pass FCS-errored frames to the host. 5248c2ecf20Sopenharmony_ci * @rx_tagged_frms: Count of received frames containing a VLAN tag. 5258c2ecf20Sopenharmony_ci * @rx_long_frms: Count of received frames that are longer than RX_MAX_PYLD_LEN 5268c2ecf20Sopenharmony_ci * + 18 bytes (+ 22 bytes if VLAN-tagged). 5278c2ecf20Sopenharmony_ci * @rx_usized_frms: Count of received frames of length (including FCS, but not 5288c2ecf20Sopenharmony_ci * framing bits) less than 64 octets, that are otherwise well-formed. 5298c2ecf20Sopenharmony_ci * In other words, counts runts. 5308c2ecf20Sopenharmony_ci * @rx_osized_frms: Count of received frames of length (including FCS, but not 5318c2ecf20Sopenharmony_ci * framing bits) more than 1518 octets, that are otherwise 5328c2ecf20Sopenharmony_ci * well-formed. Note: If register XMAC_STATS_GLOBAL_CFG.VLAN_HANDLING 5338c2ecf20Sopenharmony_ci * is set to 1, then "more than 1518 octets" becomes "more than 1518 5348c2ecf20Sopenharmony_ci * (1522 if VLAN-tagged) octets". 5358c2ecf20Sopenharmony_ci * @rx_frag_frms: Count of received frames of length (including FCS, but not 5368c2ecf20Sopenharmony_ci * framing bits) less than 64 octets that had bad FCS. In other 5378c2ecf20Sopenharmony_ci * words, counts fragments. 5388c2ecf20Sopenharmony_ci * @rx_jabber_frms: Count of received frames of length (including FCS, but not 5398c2ecf20Sopenharmony_ci * framing bits) more than 1518 octets that had bad FCS. In other 5408c2ecf20Sopenharmony_ci * words, counts jabbers. Note: If register 5418c2ecf20Sopenharmony_ci * XMAC_STATS_GLOBAL_CFG.VLAN_HANDLING is set to 1, then "more than 5428c2ecf20Sopenharmony_ci * 1518 octets" becomes "more than 1518 (1522 if VLAN-tagged) 5438c2ecf20Sopenharmony_ci * octets". 5448c2ecf20Sopenharmony_ci * @rx_ttl_64_frms: Count of total received MAC frames with length (including 5458c2ecf20Sopenharmony_ci * FCS, but not framing bits) of exactly 64 octets. Includes frames 5468c2ecf20Sopenharmony_ci * received with frame-too-long, FCS, or length errors. 5478c2ecf20Sopenharmony_ci * @rx_ttl_65_127_frms: Count of total received MAC frames with length 5488c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 65 and 127 5498c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 5508c2ecf20Sopenharmony_ci * FCS, or length errors. 5518c2ecf20Sopenharmony_ci * @rx_ttl_128_255_frms: Count of total received MAC frames with length 5528c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 128 and 255 5538c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 5548c2ecf20Sopenharmony_ci * FCS, or length errors. 5558c2ecf20Sopenharmony_ci * @rx_ttl_256_511_frms: Count of total received MAC frames with length 5568c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 256 and 511 5578c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 5588c2ecf20Sopenharmony_ci * FCS, or length errors. 5598c2ecf20Sopenharmony_ci * @rx_ttl_512_1023_frms: Count of total received MAC frames with length 5608c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 512 and 1023 5618c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 5628c2ecf20Sopenharmony_ci * FCS, or length errors. 5638c2ecf20Sopenharmony_ci * @rx_ttl_1024_1518_frms: Count of total received MAC frames with length 5648c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 1024 and 1518 5658c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 5668c2ecf20Sopenharmony_ci * FCS, or length errors. 5678c2ecf20Sopenharmony_ci * @rx_ttl_1519_4095_frms: Count of total received MAC frames with length 5688c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 1519 and 4095 5698c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 5708c2ecf20Sopenharmony_ci * FCS, or length errors. 5718c2ecf20Sopenharmony_ci * @rx_ttl_4096_8191_frms: Count of total received MAC frames with length 5728c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 4096 and 8191 5738c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 5748c2ecf20Sopenharmony_ci * FCS, or length errors. 5758c2ecf20Sopenharmony_ci * @rx_ttl_8192_max_frms: Count of total received MAC frames with length 5768c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 8192 and 5778c2ecf20Sopenharmony_ci * RX_MAX_PYLD_LEN+18 octets inclusive. Includes frames received 5788c2ecf20Sopenharmony_ci * with frame-too-long, FCS, or length errors. 5798c2ecf20Sopenharmony_ci * @rx_ttl_gt_max_frms: Count of total received MAC frames with length 5808c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) exceeding 5818c2ecf20Sopenharmony_ci * RX_MAX_PYLD_LEN+18 (+22 bytes if VLAN-tagged) octets inclusive. 5828c2ecf20Sopenharmony_ci * Includes frames received with frame-too-long, 5838c2ecf20Sopenharmony_ci * FCS, or length errors. 5848c2ecf20Sopenharmony_ci * @rx_ip: Count of received IP datagrams. Includes errored IP datagrams. 5858c2ecf20Sopenharmony_ci * @rx_accepted_ip: Count of received IP datagrams that 5868c2ecf20Sopenharmony_ci * are passed to the system. 5878c2ecf20Sopenharmony_ci * @rx_ip_octets: Count of number of octets in received IP datagrams. Includes 5888c2ecf20Sopenharmony_ci * errored IP datagrams. 5898c2ecf20Sopenharmony_ci * @rx_err_ip: Count of received IP datagrams containing errors. For example, 5908c2ecf20Sopenharmony_ci * bad IP checksum. 5918c2ecf20Sopenharmony_ci * @rx_icmp: Count of received ICMP messages. Includes errored ICMP messages. 5928c2ecf20Sopenharmony_ci * @rx_tcp: Count of received TCP segments. Includes errored TCP segments. 5938c2ecf20Sopenharmony_ci * Note: This stat contains a count of all received TCP segments, 5948c2ecf20Sopenharmony_ci * regardless of whether or not they pertain to an established 5958c2ecf20Sopenharmony_ci * connection. 5968c2ecf20Sopenharmony_ci * @rx_udp: Count of received UDP datagrams. 5978c2ecf20Sopenharmony_ci * @rx_err_tcp: Count of received TCP segments containing errors. For example, 5988c2ecf20Sopenharmony_ci * bad TCP checksum. 5998c2ecf20Sopenharmony_ci * @rx_pause_count: Count of number of pause quanta that the MAC has been in 6008c2ecf20Sopenharmony_ci * the paused state. Recall, one pause quantum equates to 512 6018c2ecf20Sopenharmony_ci * bit times. 6028c2ecf20Sopenharmony_ci * @rx_pause_ctrl_frms: Count of received MAC PAUSE control frames. 6038c2ecf20Sopenharmony_ci * @rx_unsup_ctrl_frms: Count of received MAC control frames that do not 6048c2ecf20Sopenharmony_ci * contain the PAUSE opcode. The sum of RX_PAUSE_CTRL_FRMS and 6058c2ecf20Sopenharmony_ci * this register is a count of all received MAC control frames. 6068c2ecf20Sopenharmony_ci * Note: This stat may be configured to count all layer 2 errors 6078c2ecf20Sopenharmony_ci * (i.e. length errors and FCS errors). 6088c2ecf20Sopenharmony_ci * @rx_fcs_err_frms: Count of received MAC frames that do not pass FCS. Does 6098c2ecf20Sopenharmony_ci * not include frames received with frame-too-long or 6108c2ecf20Sopenharmony_ci * frame-too-short error. 6118c2ecf20Sopenharmony_ci * @rx_in_rng_len_err_frms: Count of received frames with a length/type field 6128c2ecf20Sopenharmony_ci * value between 46 (42 for VLAN-tagged frames) and 1500 (also 1500 6138c2ecf20Sopenharmony_ci * for VLAN-tagged frames), inclusive, that does not match the 6148c2ecf20Sopenharmony_ci * number of data octets (including pad) received. Also contains 6158c2ecf20Sopenharmony_ci * a count of received frames with a length/type field less than 6168c2ecf20Sopenharmony_ci * 46 (42 for VLAN-tagged frames) and the number of data octets 6178c2ecf20Sopenharmony_ci * (including pad) received is greater than 46 (42 for VLAN-tagged 6188c2ecf20Sopenharmony_ci * frames). 6198c2ecf20Sopenharmony_ci * @rx_out_rng_len_err_frms: Count of received frames with length/type field 6208c2ecf20Sopenharmony_ci * between 1501 and 1535 decimal, inclusive. 6218c2ecf20Sopenharmony_ci * @rx_drop_frms: Count of received frames that could not be passed to the host. 6228c2ecf20Sopenharmony_ci * See PORTn_RX_L2_MGMT_DISCARD, PORTn_RX_RPA_DISCARD, 6238c2ecf20Sopenharmony_ci * PORTn_RX_TRASH_DISCARD, PORTn_RX_RTS_DISCARD, PORTn_RX_RED_DISCARD 6248c2ecf20Sopenharmony_ci * for a list of reasons. Because the RMAC drops one frame at a time, 6258c2ecf20Sopenharmony_ci * this stat also indicates the number of drop events. 6268c2ecf20Sopenharmony_ci * @rx_discarded_frms: Count of received frames containing 6278c2ecf20Sopenharmony_ci * any error that prevents 6288c2ecf20Sopenharmony_ci * them from being passed to the system. See PORTn_RX_FCS_DISCARD, 6298c2ecf20Sopenharmony_ci * PORTn_RX_LEN_DISCARD, and PORTn_RX_SWITCH_DISCARD for a list of 6308c2ecf20Sopenharmony_ci * reasons. 6318c2ecf20Sopenharmony_ci * @rx_drop_ip: Count of received IP datagrams that could not be passed to the 6328c2ecf20Sopenharmony_ci * host. See PORTn_RX_DROP_FRMS for a list of reasons. 6338c2ecf20Sopenharmony_ci * @rx_drop_udp: Count of received UDP datagrams that are not delivered to the 6348c2ecf20Sopenharmony_ci * host. See PORTn_RX_DROP_FRMS for a list of reasons. 6358c2ecf20Sopenharmony_ci * @rx_marker_pdu_frms: Count of valid Marker PDUs received on this Aggregation 6368c2ecf20Sopenharmony_ci * port. 6378c2ecf20Sopenharmony_ci * @rx_lacpdu_frms: Count of valid LACPDUs received on this Aggregation port. 6388c2ecf20Sopenharmony_ci * @rx_unknown_pdu_frms: Count of received frames (on this Aggregation port) 6398c2ecf20Sopenharmony_ci * that carry the Slow Protocols EtherType, but contain an unknown 6408c2ecf20Sopenharmony_ci * PDU. Or frames that contain the Slow Protocols group MAC address, 6418c2ecf20Sopenharmony_ci * but do not carry the Slow Protocols EtherType. 6428c2ecf20Sopenharmony_ci * @rx_marker_resp_pdu_frms: Count of valid Marker Response PDUs received on 6438c2ecf20Sopenharmony_ci * this Aggregation port. 6448c2ecf20Sopenharmony_ci * @rx_fcs_discard: Count of received frames that are discarded because the 6458c2ecf20Sopenharmony_ci * FCS check failed. 6468c2ecf20Sopenharmony_ci * @rx_illegal_pdu_frms: Count of received frames (on this Aggregation port) 6478c2ecf20Sopenharmony_ci * that carry the Slow Protocols EtherType, but contain a badly 6488c2ecf20Sopenharmony_ci * formed PDU. Or frames that carry the Slow Protocols EtherType, 6498c2ecf20Sopenharmony_ci * but contain an illegal value of Protocol Subtype. 6508c2ecf20Sopenharmony_ci * @rx_switch_discard: Count of received frames that are discarded by the 6518c2ecf20Sopenharmony_ci * internal switch because they did not have an entry in the 6528c2ecf20Sopenharmony_ci * Filtering Database. This includes frames that had an invalid 6538c2ecf20Sopenharmony_ci * destination MAC address or VLAN ID. It also includes frames are 6548c2ecf20Sopenharmony_ci * discarded because they did not satisfy the length requirements 6558c2ecf20Sopenharmony_ci * of the target VPATH. 6568c2ecf20Sopenharmony_ci * @rx_len_discard: Count of received frames that are discarded because of an 6578c2ecf20Sopenharmony_ci * invalid frame length (includes fragments, oversized frames and 6588c2ecf20Sopenharmony_ci * mismatch between frame length and length/type field). This stat 6598c2ecf20Sopenharmony_ci * can be configured 6608c2ecf20Sopenharmony_ci * (see XMAC_STATS_GLOBAL_CFG.LEN_DISCARD_HANDLING). 6618c2ecf20Sopenharmony_ci * @rx_rpa_discard: Count of received frames that were discarded because the 6628c2ecf20Sopenharmony_ci * receive protocol assist (RPA) discovered and error in the frame 6638c2ecf20Sopenharmony_ci * or was unable to parse the frame. 6648c2ecf20Sopenharmony_ci * @rx_l2_mgmt_discard: Count of Layer 2 management frames (eg. pause frames, 6658c2ecf20Sopenharmony_ci * Link Aggregation Control Protocol (LACP) frames, etc.) that are 6668c2ecf20Sopenharmony_ci * discarded. 6678c2ecf20Sopenharmony_ci * @rx_rts_discard: Count of received frames that are discarded by the receive 6688c2ecf20Sopenharmony_ci * traffic steering (RTS) logic. Includes those frame discarded 6698c2ecf20Sopenharmony_ci * because the SSC response contradicted the switch table, because 6708c2ecf20Sopenharmony_ci * the SSC timed out, or because the target queue could not fit the 6718c2ecf20Sopenharmony_ci * frame. 6728c2ecf20Sopenharmony_ci * @rx_trash_discard: Count of received frames that are discarded because 6738c2ecf20Sopenharmony_ci * receive traffic steering (RTS) steered the frame to the trash 6748c2ecf20Sopenharmony_ci * queue. 6758c2ecf20Sopenharmony_ci * @rx_buff_full_discard: Count of received frames that are discarded because 6768c2ecf20Sopenharmony_ci * internal buffers are full. Includes frames discarded because the 6778c2ecf20Sopenharmony_ci * RTS logic is waiting for an SSC lookup that has no timeout bound. 6788c2ecf20Sopenharmony_ci * Also, includes frames that are dropped because the MAC2FAU buffer 6798c2ecf20Sopenharmony_ci * is nearly full -- this can happen if the external receive buffer 6808c2ecf20Sopenharmony_ci * is full and the receive path is backing up. 6818c2ecf20Sopenharmony_ci * @rx_red_discard: Count of received frames that are discarded because of RED 6828c2ecf20Sopenharmony_ci * (Random Early Discard). 6838c2ecf20Sopenharmony_ci * @rx_xgmii_ctrl_err_cnt: Maintains a count of unexpected or misplaced control 6848c2ecf20Sopenharmony_ci * characters occurring between times of normal data transmission 6858c2ecf20Sopenharmony_ci * (i.e. not included in RX_XGMII_DATA_ERR_CNT). This counter is 6868c2ecf20Sopenharmony_ci * incremented when either - 6878c2ecf20Sopenharmony_ci * 1) The Reconciliation Sublayer (RS) is expecting one control 6888c2ecf20Sopenharmony_ci * character and gets another (i.e. is expecting a Start 6898c2ecf20Sopenharmony_ci * character, but gets another control character). 6908c2ecf20Sopenharmony_ci * 2) Start control character is not in lane 0 6918c2ecf20Sopenharmony_ci * Only increments the count by one for each XGMII column. 6928c2ecf20Sopenharmony_ci * @rx_xgmii_data_err_cnt: Maintains a count of unexpected control characters 6938c2ecf20Sopenharmony_ci * during normal data transmission. If the Reconciliation Sublayer 6948c2ecf20Sopenharmony_ci * (RS) receives a control character, other than a terminate control 6958c2ecf20Sopenharmony_ci * character, during receipt of data octets then this register is 6968c2ecf20Sopenharmony_ci * incremented. Also increments if the start frame delimiter is not 6978c2ecf20Sopenharmony_ci * found in the correct location. Only increments the count by one 6988c2ecf20Sopenharmony_ci * for each XGMII column. 6998c2ecf20Sopenharmony_ci * @rx_xgmii_char1_match: Maintains a count of the number of XGMII characters 7008c2ecf20Sopenharmony_ci * that match a pattern that is programmable through register 7018c2ecf20Sopenharmony_ci * XMAC_STATS_RX_XGMII_CHAR_PORTn. By default, the pattern is set 7028c2ecf20Sopenharmony_ci * to /E/ (i.e. the error character), thus the statistic tracks the 7038c2ecf20Sopenharmony_ci * number of Error characters received at any time. 7048c2ecf20Sopenharmony_ci * @rx_xgmii_err_sym: Count of the number of symbol errors in the received 7058c2ecf20Sopenharmony_ci * XGMII data (i.e. PHY indicates "Receive Error" on the XGMII). 7068c2ecf20Sopenharmony_ci * Only includes symbol errors that are observed between the XGMII 7078c2ecf20Sopenharmony_ci * Start Frame Delimiter and End Frame Delimiter, inclusive. And 7088c2ecf20Sopenharmony_ci * only increments the count by one for each frame. 7098c2ecf20Sopenharmony_ci * @rx_xgmii_column1_match: Maintains a count of the number of XGMII columns 7108c2ecf20Sopenharmony_ci * that match a pattern that is programmable through register 7118c2ecf20Sopenharmony_ci * XMAC_STATS_RX_XGMII_COLUMN1_PORTn. By default, the pattern is set 7128c2ecf20Sopenharmony_ci * to 4 x /E/ (i.e. a column containing all error characters), thus 7138c2ecf20Sopenharmony_ci * the statistic tracks the number of Error columns received at any 7148c2ecf20Sopenharmony_ci * time. 7158c2ecf20Sopenharmony_ci * @rx_xgmii_char2_match: Maintains a count of the number of XGMII characters 7168c2ecf20Sopenharmony_ci * that match a pattern that is programmable through register 7178c2ecf20Sopenharmony_ci * XMAC_STATS_RX_XGMII_CHAR_PORTn. By default, the pattern is set 7188c2ecf20Sopenharmony_ci * to /E/ (i.e. the error character), thus the statistic tracks the 7198c2ecf20Sopenharmony_ci * number of Error characters received at any time. 7208c2ecf20Sopenharmony_ci * @rx_local_fault: Maintains a count of the number of times that link 7218c2ecf20Sopenharmony_ci * transitioned from "up" to "down" due to a local fault. 7228c2ecf20Sopenharmony_ci * @rx_xgmii_column2_match: Maintains a count of the number of XGMII columns 7238c2ecf20Sopenharmony_ci * that match a pattern that is programmable through register 7248c2ecf20Sopenharmony_ci * XMAC_STATS_RX_XGMII_COLUMN2_PORTn. By default, the pattern is set 7258c2ecf20Sopenharmony_ci * to 4 x /E/ (i.e. a column containing all error characters), thus 7268c2ecf20Sopenharmony_ci * the statistic tracks the number of Error columns received at any 7278c2ecf20Sopenharmony_ci * time. If XMAC_STATS_RX_XGMII_BEHAV_COLUMN2_PORTn.NEAR_COL1 is set 7288c2ecf20Sopenharmony_ci * to 1, then this stat increments when COLUMN2 is found within 'n' 7298c2ecf20Sopenharmony_ci * clocks after COLUMN1. Here, 'n' is defined by 7308c2ecf20Sopenharmony_ci * XMAC_STATS_RX_XGMII_BEHAV_COLUMN2_PORTn.NUM_COL (if 'n' is set to 7318c2ecf20Sopenharmony_ci * 0, then it means to search anywhere for COLUMN2). 7328c2ecf20Sopenharmony_ci * @rx_jettison: Count of received frames that are jettisoned because internal 7338c2ecf20Sopenharmony_ci * buffers are full. 7348c2ecf20Sopenharmony_ci * @rx_remote_fault: Maintains a count of the number of times that link 7358c2ecf20Sopenharmony_ci * transitioned from "up" to "down" due to a remote fault. 7368c2ecf20Sopenharmony_ci * 7378c2ecf20Sopenharmony_ci * XMAC Port Statistics. 7388c2ecf20Sopenharmony_ci */ 7398c2ecf20Sopenharmony_cistruct vxge_hw_xmac_port_stats { 7408c2ecf20Sopenharmony_ci/*0x000*/ u64 tx_ttl_frms; 7418c2ecf20Sopenharmony_ci/*0x008*/ u64 tx_ttl_octets; 7428c2ecf20Sopenharmony_ci/*0x010*/ u64 tx_data_octets; 7438c2ecf20Sopenharmony_ci/*0x018*/ u64 tx_mcast_frms; 7448c2ecf20Sopenharmony_ci/*0x020*/ u64 tx_bcast_frms; 7458c2ecf20Sopenharmony_ci/*0x028*/ u64 tx_ucast_frms; 7468c2ecf20Sopenharmony_ci/*0x030*/ u64 tx_tagged_frms; 7478c2ecf20Sopenharmony_ci/*0x038*/ u64 tx_vld_ip; 7488c2ecf20Sopenharmony_ci/*0x040*/ u64 tx_vld_ip_octets; 7498c2ecf20Sopenharmony_ci/*0x048*/ u64 tx_icmp; 7508c2ecf20Sopenharmony_ci/*0x050*/ u64 tx_tcp; 7518c2ecf20Sopenharmony_ci/*0x058*/ u64 tx_rst_tcp; 7528c2ecf20Sopenharmony_ci/*0x060*/ u64 tx_udp; 7538c2ecf20Sopenharmony_ci/*0x068*/ u32 tx_parse_error; 7548c2ecf20Sopenharmony_ci/*0x06c*/ u32 tx_unknown_protocol; 7558c2ecf20Sopenharmony_ci/*0x070*/ u64 tx_pause_ctrl_frms; 7568c2ecf20Sopenharmony_ci/*0x078*/ u32 tx_marker_pdu_frms; 7578c2ecf20Sopenharmony_ci/*0x07c*/ u32 tx_lacpdu_frms; 7588c2ecf20Sopenharmony_ci/*0x080*/ u32 tx_drop_ip; 7598c2ecf20Sopenharmony_ci/*0x084*/ u32 tx_marker_resp_pdu_frms; 7608c2ecf20Sopenharmony_ci/*0x088*/ u32 tx_xgmii_char2_match; 7618c2ecf20Sopenharmony_ci/*0x08c*/ u32 tx_xgmii_char1_match; 7628c2ecf20Sopenharmony_ci/*0x090*/ u32 tx_xgmii_column2_match; 7638c2ecf20Sopenharmony_ci/*0x094*/ u32 tx_xgmii_column1_match; 7648c2ecf20Sopenharmony_ci/*0x098*/ u32 unused1; 7658c2ecf20Sopenharmony_ci/*0x09c*/ u16 tx_any_err_frms; 7668c2ecf20Sopenharmony_ci/*0x09e*/ u16 tx_drop_frms; 7678c2ecf20Sopenharmony_ci/*0x0a0*/ u64 rx_ttl_frms; 7688c2ecf20Sopenharmony_ci/*0x0a8*/ u64 rx_vld_frms; 7698c2ecf20Sopenharmony_ci/*0x0b0*/ u64 rx_offload_frms; 7708c2ecf20Sopenharmony_ci/*0x0b8*/ u64 rx_ttl_octets; 7718c2ecf20Sopenharmony_ci/*0x0c0*/ u64 rx_data_octets; 7728c2ecf20Sopenharmony_ci/*0x0c8*/ u64 rx_offload_octets; 7738c2ecf20Sopenharmony_ci/*0x0d0*/ u64 rx_vld_mcast_frms; 7748c2ecf20Sopenharmony_ci/*0x0d8*/ u64 rx_vld_bcast_frms; 7758c2ecf20Sopenharmony_ci/*0x0e0*/ u64 rx_accepted_ucast_frms; 7768c2ecf20Sopenharmony_ci/*0x0e8*/ u64 rx_accepted_nucast_frms; 7778c2ecf20Sopenharmony_ci/*0x0f0*/ u64 rx_tagged_frms; 7788c2ecf20Sopenharmony_ci/*0x0f8*/ u64 rx_long_frms; 7798c2ecf20Sopenharmony_ci/*0x100*/ u64 rx_usized_frms; 7808c2ecf20Sopenharmony_ci/*0x108*/ u64 rx_osized_frms; 7818c2ecf20Sopenharmony_ci/*0x110*/ u64 rx_frag_frms; 7828c2ecf20Sopenharmony_ci/*0x118*/ u64 rx_jabber_frms; 7838c2ecf20Sopenharmony_ci/*0x120*/ u64 rx_ttl_64_frms; 7848c2ecf20Sopenharmony_ci/*0x128*/ u64 rx_ttl_65_127_frms; 7858c2ecf20Sopenharmony_ci/*0x130*/ u64 rx_ttl_128_255_frms; 7868c2ecf20Sopenharmony_ci/*0x138*/ u64 rx_ttl_256_511_frms; 7878c2ecf20Sopenharmony_ci/*0x140*/ u64 rx_ttl_512_1023_frms; 7888c2ecf20Sopenharmony_ci/*0x148*/ u64 rx_ttl_1024_1518_frms; 7898c2ecf20Sopenharmony_ci/*0x150*/ u64 rx_ttl_1519_4095_frms; 7908c2ecf20Sopenharmony_ci/*0x158*/ u64 rx_ttl_4096_8191_frms; 7918c2ecf20Sopenharmony_ci/*0x160*/ u64 rx_ttl_8192_max_frms; 7928c2ecf20Sopenharmony_ci/*0x168*/ u64 rx_ttl_gt_max_frms; 7938c2ecf20Sopenharmony_ci/*0x170*/ u64 rx_ip; 7948c2ecf20Sopenharmony_ci/*0x178*/ u64 rx_accepted_ip; 7958c2ecf20Sopenharmony_ci/*0x180*/ u64 rx_ip_octets; 7968c2ecf20Sopenharmony_ci/*0x188*/ u64 rx_err_ip; 7978c2ecf20Sopenharmony_ci/*0x190*/ u64 rx_icmp; 7988c2ecf20Sopenharmony_ci/*0x198*/ u64 rx_tcp; 7998c2ecf20Sopenharmony_ci/*0x1a0*/ u64 rx_udp; 8008c2ecf20Sopenharmony_ci/*0x1a8*/ u64 rx_err_tcp; 8018c2ecf20Sopenharmony_ci/*0x1b0*/ u64 rx_pause_count; 8028c2ecf20Sopenharmony_ci/*0x1b8*/ u64 rx_pause_ctrl_frms; 8038c2ecf20Sopenharmony_ci/*0x1c0*/ u64 rx_unsup_ctrl_frms; 8048c2ecf20Sopenharmony_ci/*0x1c8*/ u64 rx_fcs_err_frms; 8058c2ecf20Sopenharmony_ci/*0x1d0*/ u64 rx_in_rng_len_err_frms; 8068c2ecf20Sopenharmony_ci/*0x1d8*/ u64 rx_out_rng_len_err_frms; 8078c2ecf20Sopenharmony_ci/*0x1e0*/ u64 rx_drop_frms; 8088c2ecf20Sopenharmony_ci/*0x1e8*/ u64 rx_discarded_frms; 8098c2ecf20Sopenharmony_ci/*0x1f0*/ u64 rx_drop_ip; 8108c2ecf20Sopenharmony_ci/*0x1f8*/ u64 rx_drop_udp; 8118c2ecf20Sopenharmony_ci/*0x200*/ u32 rx_marker_pdu_frms; 8128c2ecf20Sopenharmony_ci/*0x204*/ u32 rx_lacpdu_frms; 8138c2ecf20Sopenharmony_ci/*0x208*/ u32 rx_unknown_pdu_frms; 8148c2ecf20Sopenharmony_ci/*0x20c*/ u32 rx_marker_resp_pdu_frms; 8158c2ecf20Sopenharmony_ci/*0x210*/ u32 rx_fcs_discard; 8168c2ecf20Sopenharmony_ci/*0x214*/ u32 rx_illegal_pdu_frms; 8178c2ecf20Sopenharmony_ci/*0x218*/ u32 rx_switch_discard; 8188c2ecf20Sopenharmony_ci/*0x21c*/ u32 rx_len_discard; 8198c2ecf20Sopenharmony_ci/*0x220*/ u32 rx_rpa_discard; 8208c2ecf20Sopenharmony_ci/*0x224*/ u32 rx_l2_mgmt_discard; 8218c2ecf20Sopenharmony_ci/*0x228*/ u32 rx_rts_discard; 8228c2ecf20Sopenharmony_ci/*0x22c*/ u32 rx_trash_discard; 8238c2ecf20Sopenharmony_ci/*0x230*/ u32 rx_buff_full_discard; 8248c2ecf20Sopenharmony_ci/*0x234*/ u32 rx_red_discard; 8258c2ecf20Sopenharmony_ci/*0x238*/ u32 rx_xgmii_ctrl_err_cnt; 8268c2ecf20Sopenharmony_ci/*0x23c*/ u32 rx_xgmii_data_err_cnt; 8278c2ecf20Sopenharmony_ci/*0x240*/ u32 rx_xgmii_char1_match; 8288c2ecf20Sopenharmony_ci/*0x244*/ u32 rx_xgmii_err_sym; 8298c2ecf20Sopenharmony_ci/*0x248*/ u32 rx_xgmii_column1_match; 8308c2ecf20Sopenharmony_ci/*0x24c*/ u32 rx_xgmii_char2_match; 8318c2ecf20Sopenharmony_ci/*0x250*/ u32 rx_local_fault; 8328c2ecf20Sopenharmony_ci/*0x254*/ u32 rx_xgmii_column2_match; 8338c2ecf20Sopenharmony_ci/*0x258*/ u32 rx_jettison; 8348c2ecf20Sopenharmony_ci/*0x25c*/ u32 rx_remote_fault; 8358c2ecf20Sopenharmony_ci} __packed; 8368c2ecf20Sopenharmony_ci 8378c2ecf20Sopenharmony_ci/** 8388c2ecf20Sopenharmony_ci * struct vxge_hw_xmac_vpath_tx_stats - XMAC Vpath Tx Statistics 8398c2ecf20Sopenharmony_ci * 8408c2ecf20Sopenharmony_ci * @tx_ttl_eth_frms: Count of successfully transmitted MAC frames. 8418c2ecf20Sopenharmony_ci * @tx_ttl_eth_octets: Count of total octets of transmitted frames, 8428c2ecf20Sopenharmony_ci * not including framing characters (i.e. less framing bits). 8438c2ecf20Sopenharmony_ci * To determine the total octets of transmitted frames, including 8448c2ecf20Sopenharmony_ci * framing characters, multiply TX_TTL_ETH_FRMS by 8 and add it to 8458c2ecf20Sopenharmony_ci * this stat (the device always prepends 8 bytes of preamble for 8468c2ecf20Sopenharmony_ci * each frame) 8478c2ecf20Sopenharmony_ci * @tx_data_octets: Count of data and padding octets of successfully transmitted 8488c2ecf20Sopenharmony_ci * frames. 8498c2ecf20Sopenharmony_ci * @tx_mcast_frms: Count of successfully transmitted frames to a group address 8508c2ecf20Sopenharmony_ci * other than the broadcast address. 8518c2ecf20Sopenharmony_ci * @tx_bcast_frms: Count of successfully transmitted frames to the broadcast 8528c2ecf20Sopenharmony_ci * group address. 8538c2ecf20Sopenharmony_ci * @tx_ucast_frms: Count of transmitted frames containing a unicast address. 8548c2ecf20Sopenharmony_ci * Includes discarded frames that are not sent to the network. 8558c2ecf20Sopenharmony_ci * @tx_tagged_frms: Count of transmitted frames containing a VLAN tag. 8568c2ecf20Sopenharmony_ci * @tx_vld_ip: Count of transmitted IP datagrams that are passed to the network. 8578c2ecf20Sopenharmony_ci * @tx_vld_ip_octets: Count of total octets of transmitted IP datagrams that 8588c2ecf20Sopenharmony_ci * are passed to the network. 8598c2ecf20Sopenharmony_ci * @tx_icmp: Count of transmitted ICMP messages. Includes messages not sent due 8608c2ecf20Sopenharmony_ci * to problems within ICMP. 8618c2ecf20Sopenharmony_ci * @tx_tcp: Count of transmitted TCP segments. Does not include segments 8628c2ecf20Sopenharmony_ci * containing retransmitted octets. 8638c2ecf20Sopenharmony_ci * @tx_rst_tcp: Count of transmitted TCP segments containing the RST flag. 8648c2ecf20Sopenharmony_ci * @tx_udp: Count of transmitted UDP datagrams. 8658c2ecf20Sopenharmony_ci * @tx_unknown_protocol: Increments when the TPA encounters an unknown protocol, 8668c2ecf20Sopenharmony_ci * such as a new IPv6 extension header, or an unsupported Routing 8678c2ecf20Sopenharmony_ci * Type. The packet still has a checksum calculated but it may be 8688c2ecf20Sopenharmony_ci * incorrect. 8698c2ecf20Sopenharmony_ci * @tx_lost_ip: Count of transmitted IP datagrams that could not be passed 8708c2ecf20Sopenharmony_ci * to the network. Increments because of: 1) An internal processing 8718c2ecf20Sopenharmony_ci * error (such as an uncorrectable ECC error). 2) A frame parsing 8728c2ecf20Sopenharmony_ci * error during IP checksum calculation. 8738c2ecf20Sopenharmony_ci * @tx_parse_error: Increments when the TPA is unable to parse a packet. This 8748c2ecf20Sopenharmony_ci * generally occurs when a packet is corrupt somehow, including 8758c2ecf20Sopenharmony_ci * packets that have IP version mismatches, invalid Layer 2 control 8768c2ecf20Sopenharmony_ci * fields, etc. L3/L4 checksums are not offloaded, but the packet 8778c2ecf20Sopenharmony_ci * is still be transmitted. 8788c2ecf20Sopenharmony_ci * @tx_tcp_offload: For frames belonging to offloaded sessions only, a count 8798c2ecf20Sopenharmony_ci * of transmitted TCP segments. Does not include segments containing 8808c2ecf20Sopenharmony_ci * retransmitted octets. 8818c2ecf20Sopenharmony_ci * @tx_retx_tcp_offload: For frames belonging to offloaded sessions only, the 8828c2ecf20Sopenharmony_ci * total number of segments retransmitted. Retransmitted segments 8838c2ecf20Sopenharmony_ci * that are sourced by the host are counted by the host. 8848c2ecf20Sopenharmony_ci * @tx_lost_ip_offload: For frames belonging to offloaded sessions only, a count 8858c2ecf20Sopenharmony_ci * of transmitted IP datagrams that could not be passed to the 8868c2ecf20Sopenharmony_ci * network. 8878c2ecf20Sopenharmony_ci * 8888c2ecf20Sopenharmony_ci * XMAC Vpath TX Statistics. 8898c2ecf20Sopenharmony_ci */ 8908c2ecf20Sopenharmony_cistruct vxge_hw_xmac_vpath_tx_stats { 8918c2ecf20Sopenharmony_ci u64 tx_ttl_eth_frms; 8928c2ecf20Sopenharmony_ci u64 tx_ttl_eth_octets; 8938c2ecf20Sopenharmony_ci u64 tx_data_octets; 8948c2ecf20Sopenharmony_ci u64 tx_mcast_frms; 8958c2ecf20Sopenharmony_ci u64 tx_bcast_frms; 8968c2ecf20Sopenharmony_ci u64 tx_ucast_frms; 8978c2ecf20Sopenharmony_ci u64 tx_tagged_frms; 8988c2ecf20Sopenharmony_ci u64 tx_vld_ip; 8998c2ecf20Sopenharmony_ci u64 tx_vld_ip_octets; 9008c2ecf20Sopenharmony_ci u64 tx_icmp; 9018c2ecf20Sopenharmony_ci u64 tx_tcp; 9028c2ecf20Sopenharmony_ci u64 tx_rst_tcp; 9038c2ecf20Sopenharmony_ci u64 tx_udp; 9048c2ecf20Sopenharmony_ci u32 tx_unknown_protocol; 9058c2ecf20Sopenharmony_ci u32 tx_lost_ip; 9068c2ecf20Sopenharmony_ci u32 unused1; 9078c2ecf20Sopenharmony_ci u32 tx_parse_error; 9088c2ecf20Sopenharmony_ci u64 tx_tcp_offload; 9098c2ecf20Sopenharmony_ci u64 tx_retx_tcp_offload; 9108c2ecf20Sopenharmony_ci u64 tx_lost_ip_offload; 9118c2ecf20Sopenharmony_ci} __packed; 9128c2ecf20Sopenharmony_ci 9138c2ecf20Sopenharmony_ci/** 9148c2ecf20Sopenharmony_ci * struct vxge_hw_xmac_vpath_rx_stats - XMAC Vpath RX Statistics 9158c2ecf20Sopenharmony_ci * 9168c2ecf20Sopenharmony_ci * @rx_ttl_eth_frms: Count of successfully received MAC frames. 9178c2ecf20Sopenharmony_ci * @rx_vld_frms: Count of successfully received MAC frames. Does not include 9188c2ecf20Sopenharmony_ci * frames received with frame-too-long, FCS, or length errors. 9198c2ecf20Sopenharmony_ci * @rx_offload_frms: Count of offloaded received frames that are passed to 9208c2ecf20Sopenharmony_ci * the host. 9218c2ecf20Sopenharmony_ci * @rx_ttl_eth_octets: Count of total octets of received frames, not including 9228c2ecf20Sopenharmony_ci * framing characters (i.e. less framing bits). Only counts octets 9238c2ecf20Sopenharmony_ci * of frames that are at least 14 bytes (18 bytes for VLAN-tagged) 9248c2ecf20Sopenharmony_ci * before FCS. To determine the total octets of received frames, 9258c2ecf20Sopenharmony_ci * including framing characters, multiply RX_TTL_ETH_FRMS by 8 and 9268c2ecf20Sopenharmony_ci * add it to this stat (the stat RX_TTL_ETH_FRMS only counts frames 9278c2ecf20Sopenharmony_ci * that have the required 8 bytes of preamble). 9288c2ecf20Sopenharmony_ci * @rx_data_octets: Count of data and padding octets of successfully received 9298c2ecf20Sopenharmony_ci * frames. Does not include frames received with frame-too-long, 9308c2ecf20Sopenharmony_ci * FCS, or length errors. 9318c2ecf20Sopenharmony_ci * @rx_offload_octets: Count of total octets, not including framing characters, 9328c2ecf20Sopenharmony_ci * of offloaded received frames that are passed to the host. 9338c2ecf20Sopenharmony_ci * @rx_vld_mcast_frms: Count of successfully received MAC frames containing a 9348c2ecf20Sopenharmony_ci * nonbroadcast group address. Does not include frames received with 9358c2ecf20Sopenharmony_ci * frame-too-long, FCS, or length errors. 9368c2ecf20Sopenharmony_ci * @rx_vld_bcast_frms: Count of successfully received MAC frames containing the 9378c2ecf20Sopenharmony_ci * broadcast group address. Does not include frames received with 9388c2ecf20Sopenharmony_ci * frame-too-long, FCS, or length errors. 9398c2ecf20Sopenharmony_ci * @rx_accepted_ucast_frms: Count of successfully received frames containing 9408c2ecf20Sopenharmony_ci * a unicast address. Only includes frames that are passed to the 9418c2ecf20Sopenharmony_ci * system. 9428c2ecf20Sopenharmony_ci * @rx_accepted_nucast_frms: Count of successfully received frames containing 9438c2ecf20Sopenharmony_ci * a non-unicast (broadcast or multicast) address. Only includes 9448c2ecf20Sopenharmony_ci * frames that are passed to the system. Could include, for instance, 9458c2ecf20Sopenharmony_ci * non-unicast frames that contain FCS errors if the MAC_ERROR_CFG 9468c2ecf20Sopenharmony_ci * register is set to pass FCS-errored frames to the host. 9478c2ecf20Sopenharmony_ci * @rx_tagged_frms: Count of received frames containing a VLAN tag. 9488c2ecf20Sopenharmony_ci * @rx_long_frms: Count of received frames that are longer than RX_MAX_PYLD_LEN 9498c2ecf20Sopenharmony_ci * + 18 bytes (+ 22 bytes if VLAN-tagged). 9508c2ecf20Sopenharmony_ci * @rx_usized_frms: Count of received frames of length (including FCS, but not 9518c2ecf20Sopenharmony_ci * framing bits) less than 64 octets, that are otherwise well-formed. 9528c2ecf20Sopenharmony_ci * In other words, counts runts. 9538c2ecf20Sopenharmony_ci * @rx_osized_frms: Count of received frames of length (including FCS, but not 9548c2ecf20Sopenharmony_ci * framing bits) more than 1518 octets, that are otherwise 9558c2ecf20Sopenharmony_ci * well-formed. 9568c2ecf20Sopenharmony_ci * @rx_frag_frms: Count of received frames of length (including FCS, but not 9578c2ecf20Sopenharmony_ci * framing bits) less than 64 octets that had bad FCS. 9588c2ecf20Sopenharmony_ci * In other words, counts fragments. 9598c2ecf20Sopenharmony_ci * @rx_jabber_frms: Count of received frames of length (including FCS, but not 9608c2ecf20Sopenharmony_ci * framing bits) more than 1518 octets that had bad FCS. In other 9618c2ecf20Sopenharmony_ci * words, counts jabbers. 9628c2ecf20Sopenharmony_ci * @rx_ttl_64_frms: Count of total received MAC frames with length (including 9638c2ecf20Sopenharmony_ci * FCS, but not framing bits) of exactly 64 octets. Includes frames 9648c2ecf20Sopenharmony_ci * received with frame-too-long, FCS, or length errors. 9658c2ecf20Sopenharmony_ci * @rx_ttl_65_127_frms: Count of total received MAC frames 9668c2ecf20Sopenharmony_ci * with length (including 9678c2ecf20Sopenharmony_ci * FCS, but not framing bits) of between 65 and 127 octets inclusive. 9688c2ecf20Sopenharmony_ci * Includes frames received with frame-too-long, FCS, 9698c2ecf20Sopenharmony_ci * or length errors. 9708c2ecf20Sopenharmony_ci * @rx_ttl_128_255_frms: Count of total received MAC frames with length 9718c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) 9728c2ecf20Sopenharmony_ci * of between 128 and 255 octets 9738c2ecf20Sopenharmony_ci * inclusive. Includes frames received with frame-too-long, FCS, 9748c2ecf20Sopenharmony_ci * or length errors. 9758c2ecf20Sopenharmony_ci * @rx_ttl_256_511_frms: Count of total received MAC frames with length 9768c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) 9778c2ecf20Sopenharmony_ci * of between 256 and 511 octets 9788c2ecf20Sopenharmony_ci * inclusive. Includes frames received with frame-too-long, FCS, or 9798c2ecf20Sopenharmony_ci * length errors. 9808c2ecf20Sopenharmony_ci * @rx_ttl_512_1023_frms: Count of total received MAC frames with length 9818c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 512 and 1023 9828c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 9838c2ecf20Sopenharmony_ci * FCS, or length errors. 9848c2ecf20Sopenharmony_ci * @rx_ttl_1024_1518_frms: Count of total received MAC frames with length 9858c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 1024 and 1518 9868c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 9878c2ecf20Sopenharmony_ci * FCS, or length errors. 9888c2ecf20Sopenharmony_ci * @rx_ttl_1519_4095_frms: Count of total received MAC frames with length 9898c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 1519 and 4095 9908c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 9918c2ecf20Sopenharmony_ci * FCS, or length errors. 9928c2ecf20Sopenharmony_ci * @rx_ttl_4096_8191_frms: Count of total received MAC frames with length 9938c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 4096 and 8191 9948c2ecf20Sopenharmony_ci * octets inclusive. Includes frames received with frame-too-long, 9958c2ecf20Sopenharmony_ci * FCS, or length errors. 9968c2ecf20Sopenharmony_ci * @rx_ttl_8192_max_frms: Count of total received MAC frames with length 9978c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) of between 8192 and 9988c2ecf20Sopenharmony_ci * RX_MAX_PYLD_LEN+18 octets inclusive. Includes frames received 9998c2ecf20Sopenharmony_ci * with frame-too-long, FCS, or length errors. 10008c2ecf20Sopenharmony_ci * @rx_ttl_gt_max_frms: Count of total received MAC frames with length 10018c2ecf20Sopenharmony_ci * (including FCS, but not framing bits) exceeding RX_MAX_PYLD_LEN+18 10028c2ecf20Sopenharmony_ci * (+22 bytes if VLAN-tagged) octets inclusive. Includes frames 10038c2ecf20Sopenharmony_ci * received with frame-too-long, FCS, or length errors. 10048c2ecf20Sopenharmony_ci * @rx_ip: Count of received IP datagrams. Includes errored IP datagrams. 10058c2ecf20Sopenharmony_ci * @rx_accepted_ip: Count of received IP datagrams that 10068c2ecf20Sopenharmony_ci * are passed to the system. 10078c2ecf20Sopenharmony_ci * @rx_ip_octets: Count of number of octets in received IP datagrams. 10088c2ecf20Sopenharmony_ci * Includes errored IP datagrams. 10098c2ecf20Sopenharmony_ci * @rx_err_ip: Count of received IP datagrams containing errors. For example, 10108c2ecf20Sopenharmony_ci * bad IP checksum. 10118c2ecf20Sopenharmony_ci * @rx_icmp: Count of received ICMP messages. Includes errored ICMP messages. 10128c2ecf20Sopenharmony_ci * @rx_tcp: Count of received TCP segments. Includes errored TCP segments. 10138c2ecf20Sopenharmony_ci * Note: This stat contains a count of all received TCP segments, 10148c2ecf20Sopenharmony_ci * regardless of whether or not they pertain to an established 10158c2ecf20Sopenharmony_ci * connection. 10168c2ecf20Sopenharmony_ci * @rx_udp: Count of received UDP datagrams. 10178c2ecf20Sopenharmony_ci * @rx_err_tcp: Count of received TCP segments containing errors. For example, 10188c2ecf20Sopenharmony_ci * bad TCP checksum. 10198c2ecf20Sopenharmony_ci * @rx_lost_frms: Count of received frames that could not be passed to the host. 10208c2ecf20Sopenharmony_ci * See RX_QUEUE_FULL_DISCARD and RX_RED_DISCARD 10218c2ecf20Sopenharmony_ci * for a list of reasons. 10228c2ecf20Sopenharmony_ci * @rx_lost_ip: Count of received IP datagrams that could not be passed to 10238c2ecf20Sopenharmony_ci * the host. See RX_LOST_FRMS for a list of reasons. 10248c2ecf20Sopenharmony_ci * @rx_lost_ip_offload: For frames belonging to offloaded sessions only, a count 10258c2ecf20Sopenharmony_ci * of received IP datagrams that could not be passed to the host. 10268c2ecf20Sopenharmony_ci * See RX_LOST_FRMS for a list of reasons. 10278c2ecf20Sopenharmony_ci * @rx_various_discard: Count of received frames that are discarded because 10288c2ecf20Sopenharmony_ci * the target receive queue is full. 10298c2ecf20Sopenharmony_ci * @rx_sleep_discard: Count of received frames that are discarded because the 10308c2ecf20Sopenharmony_ci * target VPATH is asleep (a Wake-on-LAN magic packet can be used 10318c2ecf20Sopenharmony_ci * to awaken the VPATH). 10328c2ecf20Sopenharmony_ci * @rx_red_discard: Count of received frames that are discarded because of RED 10338c2ecf20Sopenharmony_ci * (Random Early Discard). 10348c2ecf20Sopenharmony_ci * @rx_queue_full_discard: Count of received frames that are discarded because 10358c2ecf20Sopenharmony_ci * the target receive queue is full. 10368c2ecf20Sopenharmony_ci * @rx_mpa_ok_frms: Count of received frames that pass the MPA checks. 10378c2ecf20Sopenharmony_ci * 10388c2ecf20Sopenharmony_ci * XMAC Vpath RX Statistics. 10398c2ecf20Sopenharmony_ci */ 10408c2ecf20Sopenharmony_cistruct vxge_hw_xmac_vpath_rx_stats { 10418c2ecf20Sopenharmony_ci u64 rx_ttl_eth_frms; 10428c2ecf20Sopenharmony_ci u64 rx_vld_frms; 10438c2ecf20Sopenharmony_ci u64 rx_offload_frms; 10448c2ecf20Sopenharmony_ci u64 rx_ttl_eth_octets; 10458c2ecf20Sopenharmony_ci u64 rx_data_octets; 10468c2ecf20Sopenharmony_ci u64 rx_offload_octets; 10478c2ecf20Sopenharmony_ci u64 rx_vld_mcast_frms; 10488c2ecf20Sopenharmony_ci u64 rx_vld_bcast_frms; 10498c2ecf20Sopenharmony_ci u64 rx_accepted_ucast_frms; 10508c2ecf20Sopenharmony_ci u64 rx_accepted_nucast_frms; 10518c2ecf20Sopenharmony_ci u64 rx_tagged_frms; 10528c2ecf20Sopenharmony_ci u64 rx_long_frms; 10538c2ecf20Sopenharmony_ci u64 rx_usized_frms; 10548c2ecf20Sopenharmony_ci u64 rx_osized_frms; 10558c2ecf20Sopenharmony_ci u64 rx_frag_frms; 10568c2ecf20Sopenharmony_ci u64 rx_jabber_frms; 10578c2ecf20Sopenharmony_ci u64 rx_ttl_64_frms; 10588c2ecf20Sopenharmony_ci u64 rx_ttl_65_127_frms; 10598c2ecf20Sopenharmony_ci u64 rx_ttl_128_255_frms; 10608c2ecf20Sopenharmony_ci u64 rx_ttl_256_511_frms; 10618c2ecf20Sopenharmony_ci u64 rx_ttl_512_1023_frms; 10628c2ecf20Sopenharmony_ci u64 rx_ttl_1024_1518_frms; 10638c2ecf20Sopenharmony_ci u64 rx_ttl_1519_4095_frms; 10648c2ecf20Sopenharmony_ci u64 rx_ttl_4096_8191_frms; 10658c2ecf20Sopenharmony_ci u64 rx_ttl_8192_max_frms; 10668c2ecf20Sopenharmony_ci u64 rx_ttl_gt_max_frms; 10678c2ecf20Sopenharmony_ci u64 rx_ip; 10688c2ecf20Sopenharmony_ci u64 rx_accepted_ip; 10698c2ecf20Sopenharmony_ci u64 rx_ip_octets; 10708c2ecf20Sopenharmony_ci u64 rx_err_ip; 10718c2ecf20Sopenharmony_ci u64 rx_icmp; 10728c2ecf20Sopenharmony_ci u64 rx_tcp; 10738c2ecf20Sopenharmony_ci u64 rx_udp; 10748c2ecf20Sopenharmony_ci u64 rx_err_tcp; 10758c2ecf20Sopenharmony_ci u64 rx_lost_frms; 10768c2ecf20Sopenharmony_ci u64 rx_lost_ip; 10778c2ecf20Sopenharmony_ci u64 rx_lost_ip_offload; 10788c2ecf20Sopenharmony_ci u16 rx_various_discard; 10798c2ecf20Sopenharmony_ci u16 rx_sleep_discard; 10808c2ecf20Sopenharmony_ci u16 rx_red_discard; 10818c2ecf20Sopenharmony_ci u16 rx_queue_full_discard; 10828c2ecf20Sopenharmony_ci u64 rx_mpa_ok_frms; 10838c2ecf20Sopenharmony_ci} __packed; 10848c2ecf20Sopenharmony_ci 10858c2ecf20Sopenharmony_ci/** 10868c2ecf20Sopenharmony_ci * struct vxge_hw_xmac_stats - XMAC Statistics 10878c2ecf20Sopenharmony_ci * 10888c2ecf20Sopenharmony_ci * @aggr_stats: Statistics on aggregate port(port 0, port 1) 10898c2ecf20Sopenharmony_ci * @port_stats: Staticstics on ports(wire 0, wire 1, lag) 10908c2ecf20Sopenharmony_ci * @vpath_tx_stats: Per vpath XMAC TX stats 10918c2ecf20Sopenharmony_ci * @vpath_rx_stats: Per vpath XMAC RX stats 10928c2ecf20Sopenharmony_ci * 10938c2ecf20Sopenharmony_ci * XMAC Statistics. 10948c2ecf20Sopenharmony_ci */ 10958c2ecf20Sopenharmony_cistruct vxge_hw_xmac_stats { 10968c2ecf20Sopenharmony_ci struct vxge_hw_xmac_aggr_stats 10978c2ecf20Sopenharmony_ci aggr_stats[VXGE_HW_MAC_MAX_MAC_PORT_ID]; 10988c2ecf20Sopenharmony_ci struct vxge_hw_xmac_port_stats 10998c2ecf20Sopenharmony_ci port_stats[VXGE_HW_MAC_MAX_MAC_PORT_ID+1]; 11008c2ecf20Sopenharmony_ci struct vxge_hw_xmac_vpath_tx_stats 11018c2ecf20Sopenharmony_ci vpath_tx_stats[VXGE_HW_MAX_VIRTUAL_PATHS]; 11028c2ecf20Sopenharmony_ci struct vxge_hw_xmac_vpath_rx_stats 11038c2ecf20Sopenharmony_ci vpath_rx_stats[VXGE_HW_MAX_VIRTUAL_PATHS]; 11048c2ecf20Sopenharmony_ci}; 11058c2ecf20Sopenharmony_ci 11068c2ecf20Sopenharmony_ci/** 11078c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_hw_info - Titan vpath hardware statistics. 11088c2ecf20Sopenharmony_ci * @ini_num_mwr_sent: The number of PCI memory writes initiated by the PIC block 11098c2ecf20Sopenharmony_ci * for the given VPATH 11108c2ecf20Sopenharmony_ci * @ini_num_mrd_sent: The number of PCI memory reads initiated by the PIC block 11118c2ecf20Sopenharmony_ci * @ini_num_cpl_rcvd: The number of PCI read completions received by the 11128c2ecf20Sopenharmony_ci * PIC block 11138c2ecf20Sopenharmony_ci * @ini_num_mwr_byte_sent: The number of PCI memory write bytes sent by the PIC 11148c2ecf20Sopenharmony_ci * block to the host 11158c2ecf20Sopenharmony_ci * @ini_num_cpl_byte_rcvd: The number of PCI read completion bytes received by 11168c2ecf20Sopenharmony_ci * the PIC block 11178c2ecf20Sopenharmony_ci * @wrcrdtarb_xoff: TBD 11188c2ecf20Sopenharmony_ci * @rdcrdtarb_xoff: TBD 11198c2ecf20Sopenharmony_ci * @vpath_genstats_count0: TBD 11208c2ecf20Sopenharmony_ci * @vpath_genstats_count1: TBD 11218c2ecf20Sopenharmony_ci * @vpath_genstats_count2: TBD 11228c2ecf20Sopenharmony_ci * @vpath_genstats_count3: TBD 11238c2ecf20Sopenharmony_ci * @vpath_genstats_count4: TBD 11248c2ecf20Sopenharmony_ci * @vpath_gennstats_count5: TBD 11258c2ecf20Sopenharmony_ci * @tx_stats: Transmit stats 11268c2ecf20Sopenharmony_ci * @rx_stats: Receive stats 11278c2ecf20Sopenharmony_ci * @prog_event_vnum1: Programmable statistic. Increments when internal logic 11288c2ecf20Sopenharmony_ci * detects a certain event. See register 11298c2ecf20Sopenharmony_ci * XMAC_STATS_CFG.EVENT_VNUM1_CFG for more information. 11308c2ecf20Sopenharmony_ci * @prog_event_vnum0: Programmable statistic. Increments when internal logic 11318c2ecf20Sopenharmony_ci * detects a certain event. See register 11328c2ecf20Sopenharmony_ci * XMAC_STATS_CFG.EVENT_VNUM0_CFG for more information. 11338c2ecf20Sopenharmony_ci * @prog_event_vnum3: Programmable statistic. Increments when internal logic 11348c2ecf20Sopenharmony_ci * detects a certain event. See register 11358c2ecf20Sopenharmony_ci * XMAC_STATS_CFG.EVENT_VNUM3_CFG for more information. 11368c2ecf20Sopenharmony_ci * @prog_event_vnum2: Programmable statistic. Increments when internal logic 11378c2ecf20Sopenharmony_ci * detects a certain event. See register 11388c2ecf20Sopenharmony_ci * XMAC_STATS_CFG.EVENT_VNUM2_CFG for more information. 11398c2ecf20Sopenharmony_ci * @rx_multi_cast_frame_discard: TBD 11408c2ecf20Sopenharmony_ci * @rx_frm_transferred: TBD 11418c2ecf20Sopenharmony_ci * @rxd_returned: TBD 11428c2ecf20Sopenharmony_ci * @rx_mpa_len_fail_frms: Count of received frames 11438c2ecf20Sopenharmony_ci * that fail the MPA length check 11448c2ecf20Sopenharmony_ci * @rx_mpa_mrk_fail_frms: Count of received frames 11458c2ecf20Sopenharmony_ci * that fail the MPA marker check 11468c2ecf20Sopenharmony_ci * @rx_mpa_crc_fail_frms: Count of received frames that fail the MPA CRC check 11478c2ecf20Sopenharmony_ci * @rx_permitted_frms: Count of frames that pass through the FAU and on to the 11488c2ecf20Sopenharmony_ci * frame buffer (and subsequently to the host). 11498c2ecf20Sopenharmony_ci * @rx_vp_reset_discarded_frms: Count of receive frames that are discarded 11508c2ecf20Sopenharmony_ci * because the VPATH is in reset 11518c2ecf20Sopenharmony_ci * @rx_wol_frms: Count of received "magic packet" frames. Stat increments 11528c2ecf20Sopenharmony_ci * whenever the received frame matches the VPATH's Wake-on-LAN 11538c2ecf20Sopenharmony_ci * signature(s) CRC. 11548c2ecf20Sopenharmony_ci * @tx_vp_reset_discarded_frms: Count of transmit frames that are discarded 11558c2ecf20Sopenharmony_ci * because the VPATH is in reset. Includes frames that are discarded 11568c2ecf20Sopenharmony_ci * because the current VPIN does not match that VPIN of the frame 11578c2ecf20Sopenharmony_ci * 11588c2ecf20Sopenharmony_ci * Titan vpath hardware statistics. 11598c2ecf20Sopenharmony_ci */ 11608c2ecf20Sopenharmony_cistruct vxge_hw_vpath_stats_hw_info { 11618c2ecf20Sopenharmony_ci/*0x000*/ u32 ini_num_mwr_sent; 11628c2ecf20Sopenharmony_ci/*0x004*/ u32 unused1; 11638c2ecf20Sopenharmony_ci/*0x008*/ u32 ini_num_mrd_sent; 11648c2ecf20Sopenharmony_ci/*0x00c*/ u32 unused2; 11658c2ecf20Sopenharmony_ci/*0x010*/ u32 ini_num_cpl_rcvd; 11668c2ecf20Sopenharmony_ci/*0x014*/ u32 unused3; 11678c2ecf20Sopenharmony_ci/*0x018*/ u64 ini_num_mwr_byte_sent; 11688c2ecf20Sopenharmony_ci/*0x020*/ u64 ini_num_cpl_byte_rcvd; 11698c2ecf20Sopenharmony_ci/*0x028*/ u32 wrcrdtarb_xoff; 11708c2ecf20Sopenharmony_ci/*0x02c*/ u32 unused4; 11718c2ecf20Sopenharmony_ci/*0x030*/ u32 rdcrdtarb_xoff; 11728c2ecf20Sopenharmony_ci/*0x034*/ u32 unused5; 11738c2ecf20Sopenharmony_ci/*0x038*/ u32 vpath_genstats_count0; 11748c2ecf20Sopenharmony_ci/*0x03c*/ u32 vpath_genstats_count1; 11758c2ecf20Sopenharmony_ci/*0x040*/ u32 vpath_genstats_count2; 11768c2ecf20Sopenharmony_ci/*0x044*/ u32 vpath_genstats_count3; 11778c2ecf20Sopenharmony_ci/*0x048*/ u32 vpath_genstats_count4; 11788c2ecf20Sopenharmony_ci/*0x04c*/ u32 unused6; 11798c2ecf20Sopenharmony_ci/*0x050*/ u32 vpath_genstats_count5; 11808c2ecf20Sopenharmony_ci/*0x054*/ u32 unused7; 11818c2ecf20Sopenharmony_ci/*0x058*/ struct vxge_hw_xmac_vpath_tx_stats tx_stats; 11828c2ecf20Sopenharmony_ci/*0x0e8*/ struct vxge_hw_xmac_vpath_rx_stats rx_stats; 11838c2ecf20Sopenharmony_ci/*0x220*/ u64 unused9; 11848c2ecf20Sopenharmony_ci/*0x228*/ u32 prog_event_vnum1; 11858c2ecf20Sopenharmony_ci/*0x22c*/ u32 prog_event_vnum0; 11868c2ecf20Sopenharmony_ci/*0x230*/ u32 prog_event_vnum3; 11878c2ecf20Sopenharmony_ci/*0x234*/ u32 prog_event_vnum2; 11888c2ecf20Sopenharmony_ci/*0x238*/ u16 rx_multi_cast_frame_discard; 11898c2ecf20Sopenharmony_ci/*0x23a*/ u8 unused10[6]; 11908c2ecf20Sopenharmony_ci/*0x240*/ u32 rx_frm_transferred; 11918c2ecf20Sopenharmony_ci/*0x244*/ u32 unused11; 11928c2ecf20Sopenharmony_ci/*0x248*/ u16 rxd_returned; 11938c2ecf20Sopenharmony_ci/*0x24a*/ u8 unused12[6]; 11948c2ecf20Sopenharmony_ci/*0x252*/ u16 rx_mpa_len_fail_frms; 11958c2ecf20Sopenharmony_ci/*0x254*/ u16 rx_mpa_mrk_fail_frms; 11968c2ecf20Sopenharmony_ci/*0x256*/ u16 rx_mpa_crc_fail_frms; 11978c2ecf20Sopenharmony_ci/*0x258*/ u16 rx_permitted_frms; 11988c2ecf20Sopenharmony_ci/*0x25c*/ u64 rx_vp_reset_discarded_frms; 11998c2ecf20Sopenharmony_ci/*0x25e*/ u64 rx_wol_frms; 12008c2ecf20Sopenharmony_ci/*0x260*/ u64 tx_vp_reset_discarded_frms; 12018c2ecf20Sopenharmony_ci} __packed; 12028c2ecf20Sopenharmony_ci 12038c2ecf20Sopenharmony_ci 12048c2ecf20Sopenharmony_ci/** 12058c2ecf20Sopenharmony_ci * struct vxge_hw_device_stats_mrpcim_info - Titan mrpcim hardware statistics. 12068c2ecf20Sopenharmony_ci * @pic.ini_rd_drop 0x0000 4 Number of DMA reads initiated 12078c2ecf20Sopenharmony_ci * by the adapter that were discarded because the VPATH is out of service 12088c2ecf20Sopenharmony_ci * @pic.ini_wr_drop 0x0004 4 Number of DMA writes initiated by the 12098c2ecf20Sopenharmony_ci * adapter that were discared because the VPATH is out of service 12108c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane0] 0x0008 4 Number of times 12118c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12128c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane1] 0x0010 4 Number of times 12138c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12148c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane2] 0x0018 4 Number of times 12158c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12168c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane3] 0x0020 4 Number of times 12178c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12188c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane4] 0x0028 4 Number of times 12198c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12208c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane5] 0x0030 4 Number of times 12218c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12228c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane6] 0x0038 4 Number of times 12238c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12248c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane7] 0x0040 4 Number of times 12258c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12268c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane8] 0x0048 4 Number of times 12278c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12288c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane9] 0x0050 4 Number of times 12298c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12308c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane10] 0x0058 4 Number of times 12318c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12328c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane11] 0x0060 4 Number of times 12338c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12348c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane12] 0x0068 4 Number of times 12358c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12368c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane13] 0x0070 4 Number of times 12378c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12388c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane14] 0x0078 4 Number of times 12398c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12408c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane15] 0x0080 4 Number of times 12418c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12428c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_ph_crdt_depleted[vplane16] 0x0088 4 Number of times 12438c2ecf20Sopenharmony_ci * the posted header credits for upstream PCI writes were depleted 12448c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane0] 0x0090 4 Number of times 12458c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12468c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane1] 0x0098 4 Number of times 12478c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12488c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane2] 0x00a0 4 Number of times 12498c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12508c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane3] 0x00a8 4 Number of times 12518c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12528c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane4] 0x00b0 4 Number of times 12538c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12548c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane5] 0x00b8 4 Number of times 12558c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12568c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane6] 0x00c0 4 Number of times 12578c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12588c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane7] 0x00c8 4 Number of times 12598c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12608c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane8] 0x00d0 4 Number of times 12618c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12628c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane9] 0x00d8 4 Number of times 12638c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12648c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane10] 0x00e0 4 Number of times 12658c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12668c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane11] 0x00e8 4 Number of times 12678c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12688c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane12] 0x00f0 4 Number of times 12698c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12708c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane13] 0x00f8 4 Number of times 12718c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12728c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane14] 0x0100 4 Number of times 12738c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12748c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane15] 0x0108 4 Number of times 12758c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12768c2ecf20Sopenharmony_ci * @pic.wrcrdtarb_pd_crdt_depleted[vplane16] 0x0110 4 Number of times 12778c2ecf20Sopenharmony_ci * the posted data credits for upstream PCI writes were depleted 12788c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane0] 0x0118 4 Number of times 12798c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12808c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane1] 0x0120 4 Number of times 12818c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12828c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane2] 0x0128 4 Number of times 12838c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12848c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane3] 0x0130 4 Number of times 12858c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12868c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane4] 0x0138 4 Number of times 12878c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12888c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane5] 0x0140 4 Number of times 12898c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12908c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane6] 0x0148 4 Number of times 12918c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12928c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane7] 0x0150 4 Number of times 12938c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12948c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane8] 0x0158 4 Number of times 12958c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12968c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane9] 0x0160 4 Number of times 12978c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 12988c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane10] 0x0168 4 Number of times 12998c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 13008c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane11] 0x0170 4 Number of times 13018c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 13028c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane12] 0x0178 4 Number of times 13038c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 13048c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane13] 0x0180 4 Number of times 13058c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 13068c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane14] 0x0188 4 Number of times 13078c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 13088c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane15] 0x0190 4 Number of times 13098c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 13108c2ecf20Sopenharmony_ci * @pic.rdcrdtarb_nph_crdt_depleted[vplane16] 0x0198 4 Number of times 13118c2ecf20Sopenharmony_ci * the non-posted header credits for upstream PCI reads were depleted 13128c2ecf20Sopenharmony_ci * @pic.ini_rd_vpin_drop 0x01a0 4 Number of DMA reads initiated by 13138c2ecf20Sopenharmony_ci * the adapter that were discarded because the VPATH instance number does 13148c2ecf20Sopenharmony_ci * not match 13158c2ecf20Sopenharmony_ci * @pic.ini_wr_vpin_drop 0x01a4 4 Number of DMA writes initiated 13168c2ecf20Sopenharmony_ci * by the adapter that were discarded because the VPATH instance number 13178c2ecf20Sopenharmony_ci * does not match 13188c2ecf20Sopenharmony_ci * @pic.genstats_count0 0x01a8 4 Configurable statistic #1. Refer 13198c2ecf20Sopenharmony_ci * to the GENSTATS0_CFG for information on configuring this statistic 13208c2ecf20Sopenharmony_ci * @pic.genstats_count1 0x01ac 4 Configurable statistic #2. Refer 13218c2ecf20Sopenharmony_ci * to the GENSTATS1_CFG for information on configuring this statistic 13228c2ecf20Sopenharmony_ci * @pic.genstats_count2 0x01b0 4 Configurable statistic #3. Refer 13238c2ecf20Sopenharmony_ci * to the GENSTATS2_CFG for information on configuring this statistic 13248c2ecf20Sopenharmony_ci * @pic.genstats_count3 0x01b4 4 Configurable statistic #4. Refer 13258c2ecf20Sopenharmony_ci * to the GENSTATS3_CFG for information on configuring this statistic 13268c2ecf20Sopenharmony_ci * @pic.genstats_count4 0x01b8 4 Configurable statistic #5. Refer 13278c2ecf20Sopenharmony_ci * to the GENSTATS4_CFG for information on configuring this statistic 13288c2ecf20Sopenharmony_ci * @pic.genstats_count5 0x01c0 4 Configurable statistic #6. Refer 13298c2ecf20Sopenharmony_ci * to the GENSTATS5_CFG for information on configuring this statistic 13308c2ecf20Sopenharmony_ci * @pci.rstdrop_cpl 0x01c8 4 13318c2ecf20Sopenharmony_ci * @pci.rstdrop_msg 0x01cc 4 13328c2ecf20Sopenharmony_ci * @pci.rstdrop_client1 0x01d0 4 13338c2ecf20Sopenharmony_ci * @pci.rstdrop_client0 0x01d4 4 13348c2ecf20Sopenharmony_ci * @pci.rstdrop_client2 0x01d8 4 13358c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane0] 0x01e2 2 Number of times completion 13368c2ecf20Sopenharmony_ci * header credits were depleted 13378c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane0] 0x01e4 2 Number of times non posted 13388c2ecf20Sopenharmony_ci * header credits were depleted 13398c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane0] 0x01e6 2 Number of times the posted 13408c2ecf20Sopenharmony_ci * header credits were depleted 13418c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane1] 0x01ea 2 13428c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane1] 0x01ec 2 13438c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane1] 0x01ee 2 13448c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane2] 0x01f2 2 13458c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane2] 0x01f4 2 13468c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane2] 0x01f6 2 13478c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane3] 0x01fa 2 13488c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane3] 0x01fc 2 13498c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane3] 0x01fe 2 13508c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane4] 0x0202 2 13518c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane4] 0x0204 2 13528c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane4] 0x0206 2 13538c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane5] 0x020a 2 13548c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane5] 0x020c 2 13558c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane5] 0x020e 2 13568c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane6] 0x0212 2 13578c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane6] 0x0214 2 13588c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane6] 0x0216 2 13598c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane7] 0x021a 2 13608c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane7] 0x021c 2 13618c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane7] 0x021e 2 13628c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane8] 0x0222 2 13638c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane8] 0x0224 2 13648c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane8] 0x0226 2 13658c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane9] 0x022a 2 13668c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane9] 0x022c 2 13678c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane9] 0x022e 2 13688c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane10] 0x0232 2 13698c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane10] 0x0234 2 13708c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane10] 0x0236 2 13718c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane11] 0x023a 2 13728c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane11] 0x023c 2 13738c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane11] 0x023e 2 13748c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane12] 0x0242 2 13758c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane12] 0x0244 2 13768c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane12] 0x0246 2 13778c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane13] 0x024a 2 13788c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane13] 0x024c 2 13798c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane13] 0x024e 2 13808c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane14] 0x0252 2 13818c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane14] 0x0254 2 13828c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane14] 0x0256 2 13838c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane15] 0x025a 2 13848c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane15] 0x025c 2 13858c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane15] 0x025e 2 13868c2ecf20Sopenharmony_ci * @pci.depl_cplh[vplane16] 0x0262 2 13878c2ecf20Sopenharmony_ci * @pci.depl_nph[vplane16] 0x0264 2 13888c2ecf20Sopenharmony_ci * @pci.depl_ph[vplane16] 0x0266 2 13898c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane0] 0x026a 2 Number of times completion data 13908c2ecf20Sopenharmony_ci * credits were depleted 13918c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane0] 0x026c 2 Number of times non posted data 13928c2ecf20Sopenharmony_ci * credits were depleted 13938c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane0] 0x026e 2 Number of times the posted data 13948c2ecf20Sopenharmony_ci * credits were depleted 13958c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane1] 0x0272 2 13968c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane1] 0x0274 2 13978c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane1] 0x0276 2 13988c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane2] 0x027a 2 13998c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane2] 0x027c 2 14008c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane2] 0x027e 2 14018c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane3] 0x0282 2 14028c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane3] 0x0284 2 14038c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane3] 0x0286 2 14048c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane4] 0x028a 2 14058c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane4] 0x028c 2 14068c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane4] 0x028e 2 14078c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane5] 0x0292 2 14088c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane5] 0x0294 2 14098c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane5] 0x0296 2 14108c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane6] 0x029a 2 14118c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane6] 0x029c 2 14128c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane6] 0x029e 2 14138c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane7] 0x02a2 2 14148c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane7] 0x02a4 2 14158c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane7] 0x02a6 2 14168c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane8] 0x02aa 2 14178c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane8] 0x02ac 2 14188c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane8] 0x02ae 2 14198c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane9] 0x02b2 2 14208c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane9] 0x02b4 2 14218c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane9] 0x02b6 2 14228c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane10] 0x02ba 2 14238c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane10] 0x02bc 2 14248c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane10] 0x02be 2 14258c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane11] 0x02c2 2 14268c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane11] 0x02c4 2 14278c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane11] 0x02c6 2 14288c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane12] 0x02ca 2 14298c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane12] 0x02cc 2 14308c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane12] 0x02ce 2 14318c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane13] 0x02d2 2 14328c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane13] 0x02d4 2 14338c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane13] 0x02d6 2 14348c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane14] 0x02da 2 14358c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane14] 0x02dc 2 14368c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane14] 0x02de 2 14378c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane15] 0x02e2 2 14388c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane15] 0x02e4 2 14398c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane15] 0x02e6 2 14408c2ecf20Sopenharmony_ci * @pci.depl_cpld[vplane16] 0x02ea 2 14418c2ecf20Sopenharmony_ci * @pci.depl_npd[vplane16] 0x02ec 2 14428c2ecf20Sopenharmony_ci * @pci.depl_pd[vplane16] 0x02ee 2 14438c2ecf20Sopenharmony_ci * @xgmac_port[3]; 14448c2ecf20Sopenharmony_ci * @xgmac_aggr[2]; 14458c2ecf20Sopenharmony_ci * @xgmac.global_prog_event_gnum0 0x0ae0 8 Programmable statistic. 14468c2ecf20Sopenharmony_ci * Increments when internal logic detects a certain event. See register 14478c2ecf20Sopenharmony_ci * XMAC_STATS_GLOBAL_CFG.EVENT_GNUM0_CFG for more information. 14488c2ecf20Sopenharmony_ci * @xgmac.global_prog_event_gnum1 0x0ae8 8 Programmable statistic. 14498c2ecf20Sopenharmony_ci * Increments when internal logic detects a certain event. See register 14508c2ecf20Sopenharmony_ci * XMAC_STATS_GLOBAL_CFG.EVENT_GNUM1_CFG for more information. 14518c2ecf20Sopenharmony_ci * @xgmac.orp_lro_events 0x0af8 8 14528c2ecf20Sopenharmony_ci * @xgmac.orp_bs_events 0x0b00 8 14538c2ecf20Sopenharmony_ci * @xgmac.orp_iwarp_events 0x0b08 8 14548c2ecf20Sopenharmony_ci * @xgmac.tx_permitted_frms 0x0b14 4 14558c2ecf20Sopenharmony_ci * @xgmac.port2_tx_any_frms 0x0b1d 1 14568c2ecf20Sopenharmony_ci * @xgmac.port1_tx_any_frms 0x0b1e 1 14578c2ecf20Sopenharmony_ci * @xgmac.port0_tx_any_frms 0x0b1f 1 14588c2ecf20Sopenharmony_ci * @xgmac.port2_rx_any_frms 0x0b25 1 14598c2ecf20Sopenharmony_ci * @xgmac.port1_rx_any_frms 0x0b26 1 14608c2ecf20Sopenharmony_ci * @xgmac.port0_rx_any_frms 0x0b27 1 14618c2ecf20Sopenharmony_ci * 14628c2ecf20Sopenharmony_ci * Titan mrpcim hardware statistics. 14638c2ecf20Sopenharmony_ci */ 14648c2ecf20Sopenharmony_cistruct vxge_hw_device_stats_mrpcim_info { 14658c2ecf20Sopenharmony_ci/*0x0000*/ u32 pic_ini_rd_drop; 14668c2ecf20Sopenharmony_ci/*0x0004*/ u32 pic_ini_wr_drop; 14678c2ecf20Sopenharmony_ci/*0x0008*/ struct { 14688c2ecf20Sopenharmony_ci /*0x0000*/ u32 pic_wrcrdtarb_ph_crdt_depleted; 14698c2ecf20Sopenharmony_ci /*0x0004*/ u32 unused1; 14708c2ecf20Sopenharmony_ci } pic_wrcrdtarb_ph_crdt_depleted_vplane[17]; 14718c2ecf20Sopenharmony_ci/*0x0090*/ struct { 14728c2ecf20Sopenharmony_ci /*0x0000*/ u32 pic_wrcrdtarb_pd_crdt_depleted; 14738c2ecf20Sopenharmony_ci /*0x0004*/ u32 unused2; 14748c2ecf20Sopenharmony_ci } pic_wrcrdtarb_pd_crdt_depleted_vplane[17]; 14758c2ecf20Sopenharmony_ci/*0x0118*/ struct { 14768c2ecf20Sopenharmony_ci /*0x0000*/ u32 pic_rdcrdtarb_nph_crdt_depleted; 14778c2ecf20Sopenharmony_ci /*0x0004*/ u32 unused3; 14788c2ecf20Sopenharmony_ci } pic_rdcrdtarb_nph_crdt_depleted_vplane[17]; 14798c2ecf20Sopenharmony_ci/*0x01a0*/ u32 pic_ini_rd_vpin_drop; 14808c2ecf20Sopenharmony_ci/*0x01a4*/ u32 pic_ini_wr_vpin_drop; 14818c2ecf20Sopenharmony_ci/*0x01a8*/ u32 pic_genstats_count0; 14828c2ecf20Sopenharmony_ci/*0x01ac*/ u32 pic_genstats_count1; 14838c2ecf20Sopenharmony_ci/*0x01b0*/ u32 pic_genstats_count2; 14848c2ecf20Sopenharmony_ci/*0x01b4*/ u32 pic_genstats_count3; 14858c2ecf20Sopenharmony_ci/*0x01b8*/ u32 pic_genstats_count4; 14868c2ecf20Sopenharmony_ci/*0x01bc*/ u32 unused4; 14878c2ecf20Sopenharmony_ci/*0x01c0*/ u32 pic_genstats_count5; 14888c2ecf20Sopenharmony_ci/*0x01c4*/ u32 unused5; 14898c2ecf20Sopenharmony_ci/*0x01c8*/ u32 pci_rstdrop_cpl; 14908c2ecf20Sopenharmony_ci/*0x01cc*/ u32 pci_rstdrop_msg; 14918c2ecf20Sopenharmony_ci/*0x01d0*/ u32 pci_rstdrop_client1; 14928c2ecf20Sopenharmony_ci/*0x01d4*/ u32 pci_rstdrop_client0; 14938c2ecf20Sopenharmony_ci/*0x01d8*/ u32 pci_rstdrop_client2; 14948c2ecf20Sopenharmony_ci/*0x01dc*/ u32 unused6; 14958c2ecf20Sopenharmony_ci/*0x01e0*/ struct { 14968c2ecf20Sopenharmony_ci /*0x0000*/ u16 unused7; 14978c2ecf20Sopenharmony_ci /*0x0002*/ u16 pci_depl_cplh; 14988c2ecf20Sopenharmony_ci /*0x0004*/ u16 pci_depl_nph; 14998c2ecf20Sopenharmony_ci /*0x0006*/ u16 pci_depl_ph; 15008c2ecf20Sopenharmony_ci } pci_depl_h_vplane[17]; 15018c2ecf20Sopenharmony_ci/*0x0268*/ struct { 15028c2ecf20Sopenharmony_ci /*0x0000*/ u16 unused8; 15038c2ecf20Sopenharmony_ci /*0x0002*/ u16 pci_depl_cpld; 15048c2ecf20Sopenharmony_ci /*0x0004*/ u16 pci_depl_npd; 15058c2ecf20Sopenharmony_ci /*0x0006*/ u16 pci_depl_pd; 15068c2ecf20Sopenharmony_ci } pci_depl_d_vplane[17]; 15078c2ecf20Sopenharmony_ci/*0x02f0*/ struct vxge_hw_xmac_port_stats xgmac_port[3]; 15088c2ecf20Sopenharmony_ci/*0x0a10*/ struct vxge_hw_xmac_aggr_stats xgmac_aggr[2]; 15098c2ecf20Sopenharmony_ci/*0x0ae0*/ u64 xgmac_global_prog_event_gnum0; 15108c2ecf20Sopenharmony_ci/*0x0ae8*/ u64 xgmac_global_prog_event_gnum1; 15118c2ecf20Sopenharmony_ci/*0x0af0*/ u64 unused7; 15128c2ecf20Sopenharmony_ci/*0x0af8*/ u64 unused8; 15138c2ecf20Sopenharmony_ci/*0x0b00*/ u64 unused9; 15148c2ecf20Sopenharmony_ci/*0x0b08*/ u64 unused10; 15158c2ecf20Sopenharmony_ci/*0x0b10*/ u32 unused11; 15168c2ecf20Sopenharmony_ci/*0x0b14*/ u32 xgmac_tx_permitted_frms; 15178c2ecf20Sopenharmony_ci/*0x0b18*/ u32 unused12; 15188c2ecf20Sopenharmony_ci/*0x0b1c*/ u8 unused13; 15198c2ecf20Sopenharmony_ci/*0x0b1d*/ u8 xgmac_port2_tx_any_frms; 15208c2ecf20Sopenharmony_ci/*0x0b1e*/ u8 xgmac_port1_tx_any_frms; 15218c2ecf20Sopenharmony_ci/*0x0b1f*/ u8 xgmac_port0_tx_any_frms; 15228c2ecf20Sopenharmony_ci/*0x0b20*/ u32 unused14; 15238c2ecf20Sopenharmony_ci/*0x0b24*/ u8 unused15; 15248c2ecf20Sopenharmony_ci/*0x0b25*/ u8 xgmac_port2_rx_any_frms; 15258c2ecf20Sopenharmony_ci/*0x0b26*/ u8 xgmac_port1_rx_any_frms; 15268c2ecf20Sopenharmony_ci/*0x0b27*/ u8 xgmac_port0_rx_any_frms; 15278c2ecf20Sopenharmony_ci} __packed; 15288c2ecf20Sopenharmony_ci 15298c2ecf20Sopenharmony_ci/** 15308c2ecf20Sopenharmony_ci * struct vxge_hw_device_stats_hw_info - Titan hardware statistics. 15318c2ecf20Sopenharmony_ci * @vpath_info: VPath statistics 15328c2ecf20Sopenharmony_ci * @vpath_info_sav: Vpath statistics saved 15338c2ecf20Sopenharmony_ci * 15348c2ecf20Sopenharmony_ci * Titan hardware statistics. 15358c2ecf20Sopenharmony_ci */ 15368c2ecf20Sopenharmony_cistruct vxge_hw_device_stats_hw_info { 15378c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_hw_info 15388c2ecf20Sopenharmony_ci *vpath_info[VXGE_HW_MAX_VIRTUAL_PATHS]; 15398c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_hw_info 15408c2ecf20Sopenharmony_ci vpath_info_sav[VXGE_HW_MAX_VIRTUAL_PATHS]; 15418c2ecf20Sopenharmony_ci}; 15428c2ecf20Sopenharmony_ci 15438c2ecf20Sopenharmony_ci/** 15448c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_common_info - HW common 15458c2ecf20Sopenharmony_ci * statistics for queues. 15468c2ecf20Sopenharmony_ci * @full_cnt: Number of times the queue was full 15478c2ecf20Sopenharmony_ci * @usage_cnt: usage count. 15488c2ecf20Sopenharmony_ci * @usage_max: Maximum usage 15498c2ecf20Sopenharmony_ci * @reserve_free_swaps_cnt: Reserve/free swap counter. Internal usage. 15508c2ecf20Sopenharmony_ci * @total_compl_cnt: Total descriptor completion count. 15518c2ecf20Sopenharmony_ci * 15528c2ecf20Sopenharmony_ci * Hw queue counters 15538c2ecf20Sopenharmony_ci * See also: struct vxge_hw_vpath_stats_sw_fifo_info{}, 15548c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_ring_info{}, 15558c2ecf20Sopenharmony_ci */ 15568c2ecf20Sopenharmony_cistruct vxge_hw_vpath_stats_sw_common_info { 15578c2ecf20Sopenharmony_ci u32 full_cnt; 15588c2ecf20Sopenharmony_ci u32 usage_cnt; 15598c2ecf20Sopenharmony_ci u32 usage_max; 15608c2ecf20Sopenharmony_ci u32 reserve_free_swaps_cnt; 15618c2ecf20Sopenharmony_ci u32 total_compl_cnt; 15628c2ecf20Sopenharmony_ci}; 15638c2ecf20Sopenharmony_ci 15648c2ecf20Sopenharmony_ci/** 15658c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_fifo_info - HW fifo statistics 15668c2ecf20Sopenharmony_ci * @common_stats: Common counters for all queues 15678c2ecf20Sopenharmony_ci * @total_posts: Total number of postings on the queue. 15688c2ecf20Sopenharmony_ci * @total_buffers: Total number of buffers posted. 15698c2ecf20Sopenharmony_ci * @txd_t_code_err_cnt: Array of transmit transfer codes. The position 15708c2ecf20Sopenharmony_ci * (index) in this array reflects the transfer code type, for instance 15718c2ecf20Sopenharmony_ci * 0xA - "loss of link". 15728c2ecf20Sopenharmony_ci * Value txd_t_code_err_cnt[i] reflects the 15738c2ecf20Sopenharmony_ci * number of times the corresponding transfer code was encountered. 15748c2ecf20Sopenharmony_ci * 15758c2ecf20Sopenharmony_ci * HW fifo counters 15768c2ecf20Sopenharmony_ci * See also: struct vxge_hw_vpath_stats_sw_common_info{}, 15778c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_ring_info{}, 15788c2ecf20Sopenharmony_ci */ 15798c2ecf20Sopenharmony_cistruct vxge_hw_vpath_stats_sw_fifo_info { 15808c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_sw_common_info common_stats; 15818c2ecf20Sopenharmony_ci u32 total_posts; 15828c2ecf20Sopenharmony_ci u32 total_buffers; 15838c2ecf20Sopenharmony_ci u32 txd_t_code_err_cnt[VXGE_HW_DTR_MAX_T_CODE]; 15848c2ecf20Sopenharmony_ci}; 15858c2ecf20Sopenharmony_ci 15868c2ecf20Sopenharmony_ci/** 15878c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_ring_info - HW ring statistics 15888c2ecf20Sopenharmony_ci * @common_stats: Common counters for all queues 15898c2ecf20Sopenharmony_ci * @rxd_t_code_err_cnt: Array of receive transfer codes. The position 15908c2ecf20Sopenharmony_ci * (index) in this array reflects the transfer code type, 15918c2ecf20Sopenharmony_ci * for instance 15928c2ecf20Sopenharmony_ci * 0x7 - for "invalid receive buffer size", or 0x8 - for ECC. 15938c2ecf20Sopenharmony_ci * Value rxd_t_code_err_cnt[i] reflects the 15948c2ecf20Sopenharmony_ci * number of times the corresponding transfer code was encountered. 15958c2ecf20Sopenharmony_ci * 15968c2ecf20Sopenharmony_ci * HW ring counters 15978c2ecf20Sopenharmony_ci * See also: struct vxge_hw_vpath_stats_sw_common_info{}, 15988c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_fifo_info{}, 15998c2ecf20Sopenharmony_ci */ 16008c2ecf20Sopenharmony_cistruct vxge_hw_vpath_stats_sw_ring_info { 16018c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_sw_common_info common_stats; 16028c2ecf20Sopenharmony_ci u32 rxd_t_code_err_cnt[VXGE_HW_DTR_MAX_T_CODE]; 16038c2ecf20Sopenharmony_ci 16048c2ecf20Sopenharmony_ci}; 16058c2ecf20Sopenharmony_ci 16068c2ecf20Sopenharmony_ci/** 16078c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_err - HW vpath error statistics 16088c2ecf20Sopenharmony_ci * @unknown_alarms: 16098c2ecf20Sopenharmony_ci * @network_sustained_fault: 16108c2ecf20Sopenharmony_ci * @network_sustained_ok: 16118c2ecf20Sopenharmony_ci * @kdfcctl_fifo0_overwrite: 16128c2ecf20Sopenharmony_ci * @kdfcctl_fifo0_poison: 16138c2ecf20Sopenharmony_ci * @kdfcctl_fifo0_dma_error: 16148c2ecf20Sopenharmony_ci * @dblgen_fifo0_overflow: 16158c2ecf20Sopenharmony_ci * @statsb_pif_chain_error: 16168c2ecf20Sopenharmony_ci * @statsb_drop_timeout: 16178c2ecf20Sopenharmony_ci * @target_illegal_access: 16188c2ecf20Sopenharmony_ci * @ini_serr_det: 16198c2ecf20Sopenharmony_ci * @prc_ring_bumps: 16208c2ecf20Sopenharmony_ci * @prc_rxdcm_sc_err: 16218c2ecf20Sopenharmony_ci * @prc_rxdcm_sc_abort: 16228c2ecf20Sopenharmony_ci * @prc_quanta_size_err: 16238c2ecf20Sopenharmony_ci * 16248c2ecf20Sopenharmony_ci * HW vpath error statistics 16258c2ecf20Sopenharmony_ci */ 16268c2ecf20Sopenharmony_cistruct vxge_hw_vpath_stats_sw_err { 16278c2ecf20Sopenharmony_ci u32 unknown_alarms; 16288c2ecf20Sopenharmony_ci u32 network_sustained_fault; 16298c2ecf20Sopenharmony_ci u32 network_sustained_ok; 16308c2ecf20Sopenharmony_ci u32 kdfcctl_fifo0_overwrite; 16318c2ecf20Sopenharmony_ci u32 kdfcctl_fifo0_poison; 16328c2ecf20Sopenharmony_ci u32 kdfcctl_fifo0_dma_error; 16338c2ecf20Sopenharmony_ci u32 dblgen_fifo0_overflow; 16348c2ecf20Sopenharmony_ci u32 statsb_pif_chain_error; 16358c2ecf20Sopenharmony_ci u32 statsb_drop_timeout; 16368c2ecf20Sopenharmony_ci u32 target_illegal_access; 16378c2ecf20Sopenharmony_ci u32 ini_serr_det; 16388c2ecf20Sopenharmony_ci u32 prc_ring_bumps; 16398c2ecf20Sopenharmony_ci u32 prc_rxdcm_sc_err; 16408c2ecf20Sopenharmony_ci u32 prc_rxdcm_sc_abort; 16418c2ecf20Sopenharmony_ci u32 prc_quanta_size_err; 16428c2ecf20Sopenharmony_ci}; 16438c2ecf20Sopenharmony_ci 16448c2ecf20Sopenharmony_ci/** 16458c2ecf20Sopenharmony_ci * struct vxge_hw_vpath_stats_sw_info - HW vpath sw statistics 16468c2ecf20Sopenharmony_ci * @soft_reset_cnt: Number of times soft reset is done on this vpath. 16478c2ecf20Sopenharmony_ci * @error_stats: error counters for the vpath 16488c2ecf20Sopenharmony_ci * @ring_stats: counters for ring belonging to the vpath 16498c2ecf20Sopenharmony_ci * @fifo_stats: counters for fifo belonging to the vpath 16508c2ecf20Sopenharmony_ci * 16518c2ecf20Sopenharmony_ci * HW vpath sw statistics 16528c2ecf20Sopenharmony_ci * See also: struct vxge_hw_device_info{} }. 16538c2ecf20Sopenharmony_ci */ 16548c2ecf20Sopenharmony_cistruct vxge_hw_vpath_stats_sw_info { 16558c2ecf20Sopenharmony_ci u32 soft_reset_cnt; 16568c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_sw_err error_stats; 16578c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_sw_ring_info ring_stats; 16588c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_sw_fifo_info fifo_stats; 16598c2ecf20Sopenharmony_ci}; 16608c2ecf20Sopenharmony_ci 16618c2ecf20Sopenharmony_ci/** 16628c2ecf20Sopenharmony_ci * struct vxge_hw_device_stats_sw_info - HW own per-device statistics. 16638c2ecf20Sopenharmony_ci * 16648c2ecf20Sopenharmony_ci * @not_traffic_intr_cnt: Number of times the host was interrupted 16658c2ecf20Sopenharmony_ci * without new completions. 16668c2ecf20Sopenharmony_ci * "Non-traffic interrupt counter". 16678c2ecf20Sopenharmony_ci * @traffic_intr_cnt: Number of traffic interrupts for the device. 16688c2ecf20Sopenharmony_ci * @total_intr_cnt: Total number of traffic interrupts for the device. 16698c2ecf20Sopenharmony_ci * @total_intr_cnt == @traffic_intr_cnt + 16708c2ecf20Sopenharmony_ci * @not_traffic_intr_cnt 16718c2ecf20Sopenharmony_ci * @soft_reset_cnt: Number of times soft reset is done on this device. 16728c2ecf20Sopenharmony_ci * @vpath_info: please see struct vxge_hw_vpath_stats_sw_info{} 16738c2ecf20Sopenharmony_ci * HW per-device statistics. 16748c2ecf20Sopenharmony_ci */ 16758c2ecf20Sopenharmony_cistruct vxge_hw_device_stats_sw_info { 16768c2ecf20Sopenharmony_ci u32 not_traffic_intr_cnt; 16778c2ecf20Sopenharmony_ci u32 traffic_intr_cnt; 16788c2ecf20Sopenharmony_ci u32 total_intr_cnt; 16798c2ecf20Sopenharmony_ci u32 soft_reset_cnt; 16808c2ecf20Sopenharmony_ci struct vxge_hw_vpath_stats_sw_info 16818c2ecf20Sopenharmony_ci vpath_info[VXGE_HW_MAX_VIRTUAL_PATHS]; 16828c2ecf20Sopenharmony_ci}; 16838c2ecf20Sopenharmony_ci 16848c2ecf20Sopenharmony_ci/** 16858c2ecf20Sopenharmony_ci * struct vxge_hw_device_stats_sw_err - HW device error statistics. 16868c2ecf20Sopenharmony_ci * @vpath_alarms: Number of vpath alarms 16878c2ecf20Sopenharmony_ci * 16888c2ecf20Sopenharmony_ci * HW Device error stats 16898c2ecf20Sopenharmony_ci */ 16908c2ecf20Sopenharmony_cistruct vxge_hw_device_stats_sw_err { 16918c2ecf20Sopenharmony_ci u32 vpath_alarms; 16928c2ecf20Sopenharmony_ci}; 16938c2ecf20Sopenharmony_ci 16948c2ecf20Sopenharmony_ci/** 16958c2ecf20Sopenharmony_ci * struct vxge_hw_device_stats - Contains HW per-device statistics, 16968c2ecf20Sopenharmony_ci * including hw. 16978c2ecf20Sopenharmony_ci * @devh: HW device handle. 16988c2ecf20Sopenharmony_ci * @dma_addr: DMA address of the %hw_info. Given to device to fill-in the stats. 16998c2ecf20Sopenharmony_ci * @hw_info_dmah: DMA handle used to map hw statistics onto the device memory 17008c2ecf20Sopenharmony_ci * space. 17018c2ecf20Sopenharmony_ci * @hw_info_dma_acch: One more DMA handle used subsequently to free the 17028c2ecf20Sopenharmony_ci * DMA object. Note that this and the previous handle have 17038c2ecf20Sopenharmony_ci * physical meaning for Solaris; on Windows and Linux the 17048c2ecf20Sopenharmony_ci * corresponding value will be simply pointer to PCI device. 17058c2ecf20Sopenharmony_ci * 17068c2ecf20Sopenharmony_ci * @hw_dev_info_stats: Titan statistics maintained by the hardware. 17078c2ecf20Sopenharmony_ci * @sw_dev_info_stats: HW's "soft" device informational statistics, e.g. number 17088c2ecf20Sopenharmony_ci * of completions per interrupt. 17098c2ecf20Sopenharmony_ci * @sw_dev_err_stats: HW's "soft" device error statistics. 17108c2ecf20Sopenharmony_ci * 17118c2ecf20Sopenharmony_ci * Structure-container of HW per-device statistics. Note that per-channel 17128c2ecf20Sopenharmony_ci * statistics are kept in separate structures under HW's fifo and ring 17138c2ecf20Sopenharmony_ci * channels. 17148c2ecf20Sopenharmony_ci */ 17158c2ecf20Sopenharmony_cistruct vxge_hw_device_stats { 17168c2ecf20Sopenharmony_ci /* handles */ 17178c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh; 17188c2ecf20Sopenharmony_ci 17198c2ecf20Sopenharmony_ci /* HW device hardware statistics */ 17208c2ecf20Sopenharmony_ci struct vxge_hw_device_stats_hw_info hw_dev_info_stats; 17218c2ecf20Sopenharmony_ci 17228c2ecf20Sopenharmony_ci /* HW device "soft" stats */ 17238c2ecf20Sopenharmony_ci struct vxge_hw_device_stats_sw_err sw_dev_err_stats; 17248c2ecf20Sopenharmony_ci struct vxge_hw_device_stats_sw_info sw_dev_info_stats; 17258c2ecf20Sopenharmony_ci 17268c2ecf20Sopenharmony_ci}; 17278c2ecf20Sopenharmony_ci 17288c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_device_hw_stats_enable( 17298c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh); 17308c2ecf20Sopenharmony_ci 17318c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_device_stats_get( 17328c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh, 17338c2ecf20Sopenharmony_ci struct vxge_hw_device_stats_hw_info *hw_stats); 17348c2ecf20Sopenharmony_ci 17358c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_driver_stats_get( 17368c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh, 17378c2ecf20Sopenharmony_ci struct vxge_hw_device_stats_sw_info *sw_stats); 17388c2ecf20Sopenharmony_ci 17398c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_mrpcim_stats_enable(struct __vxge_hw_device *devh); 17408c2ecf20Sopenharmony_ci 17418c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_mrpcim_stats_disable(struct __vxge_hw_device *devh); 17428c2ecf20Sopenharmony_ci 17438c2ecf20Sopenharmony_cienum vxge_hw_status 17448c2ecf20Sopenharmony_civxge_hw_mrpcim_stats_access( 17458c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh, 17468c2ecf20Sopenharmony_ci u32 operation, 17478c2ecf20Sopenharmony_ci u32 location, 17488c2ecf20Sopenharmony_ci u32 offset, 17498c2ecf20Sopenharmony_ci u64 *stat); 17508c2ecf20Sopenharmony_ci 17518c2ecf20Sopenharmony_cienum vxge_hw_status 17528c2ecf20Sopenharmony_civxge_hw_device_xmac_stats_get(struct __vxge_hw_device *devh, 17538c2ecf20Sopenharmony_ci struct vxge_hw_xmac_stats *xmac_stats); 17548c2ecf20Sopenharmony_ci 17558c2ecf20Sopenharmony_ci/** 17568c2ecf20Sopenharmony_ci * enum enum vxge_hw_mgmt_reg_type - Register types. 17578c2ecf20Sopenharmony_ci * 17588c2ecf20Sopenharmony_ci * @vxge_hw_mgmt_reg_type_legacy: Legacy registers 17598c2ecf20Sopenharmony_ci * @vxge_hw_mgmt_reg_type_toc: TOC Registers 17608c2ecf20Sopenharmony_ci * @vxge_hw_mgmt_reg_type_common: Common Registers 17618c2ecf20Sopenharmony_ci * @vxge_hw_mgmt_reg_type_mrpcim: mrpcim registers 17628c2ecf20Sopenharmony_ci * @vxge_hw_mgmt_reg_type_srpcim: srpcim registers 17638c2ecf20Sopenharmony_ci * @vxge_hw_mgmt_reg_type_vpmgmt: vpath management registers 17648c2ecf20Sopenharmony_ci * @vxge_hw_mgmt_reg_type_vpath: vpath registers 17658c2ecf20Sopenharmony_ci * 17668c2ecf20Sopenharmony_ci * Register type enumaration 17678c2ecf20Sopenharmony_ci */ 17688c2ecf20Sopenharmony_cienum vxge_hw_mgmt_reg_type { 17698c2ecf20Sopenharmony_ci vxge_hw_mgmt_reg_type_legacy = 0, 17708c2ecf20Sopenharmony_ci vxge_hw_mgmt_reg_type_toc = 1, 17718c2ecf20Sopenharmony_ci vxge_hw_mgmt_reg_type_common = 2, 17728c2ecf20Sopenharmony_ci vxge_hw_mgmt_reg_type_mrpcim = 3, 17738c2ecf20Sopenharmony_ci vxge_hw_mgmt_reg_type_srpcim = 4, 17748c2ecf20Sopenharmony_ci vxge_hw_mgmt_reg_type_vpmgmt = 5, 17758c2ecf20Sopenharmony_ci vxge_hw_mgmt_reg_type_vpath = 6 17768c2ecf20Sopenharmony_ci}; 17778c2ecf20Sopenharmony_ci 17788c2ecf20Sopenharmony_cienum vxge_hw_status 17798c2ecf20Sopenharmony_civxge_hw_mgmt_reg_read(struct __vxge_hw_device *devh, 17808c2ecf20Sopenharmony_ci enum vxge_hw_mgmt_reg_type type, 17818c2ecf20Sopenharmony_ci u32 index, 17828c2ecf20Sopenharmony_ci u32 offset, 17838c2ecf20Sopenharmony_ci u64 *value); 17848c2ecf20Sopenharmony_ci 17858c2ecf20Sopenharmony_cienum vxge_hw_status 17868c2ecf20Sopenharmony_civxge_hw_mgmt_reg_write(struct __vxge_hw_device *devh, 17878c2ecf20Sopenharmony_ci enum vxge_hw_mgmt_reg_type type, 17888c2ecf20Sopenharmony_ci u32 index, 17898c2ecf20Sopenharmony_ci u32 offset, 17908c2ecf20Sopenharmony_ci u64 value); 17918c2ecf20Sopenharmony_ci 17928c2ecf20Sopenharmony_ci/** 17938c2ecf20Sopenharmony_ci * enum enum vxge_hw_rxd_state - Descriptor (RXD) state. 17948c2ecf20Sopenharmony_ci * @VXGE_HW_RXD_STATE_NONE: Invalid state. 17958c2ecf20Sopenharmony_ci * @VXGE_HW_RXD_STATE_AVAIL: Descriptor is available for reservation. 17968c2ecf20Sopenharmony_ci * @VXGE_HW_RXD_STATE_POSTED: Descriptor is posted for processing by the 17978c2ecf20Sopenharmony_ci * device. 17988c2ecf20Sopenharmony_ci * @VXGE_HW_RXD_STATE_FREED: Descriptor is free and can be reused for 17998c2ecf20Sopenharmony_ci * filling-in and posting later. 18008c2ecf20Sopenharmony_ci * 18018c2ecf20Sopenharmony_ci * Titan/HW descriptor states. 18028c2ecf20Sopenharmony_ci * 18038c2ecf20Sopenharmony_ci */ 18048c2ecf20Sopenharmony_cienum vxge_hw_rxd_state { 18058c2ecf20Sopenharmony_ci VXGE_HW_RXD_STATE_NONE = 0, 18068c2ecf20Sopenharmony_ci VXGE_HW_RXD_STATE_AVAIL = 1, 18078c2ecf20Sopenharmony_ci VXGE_HW_RXD_STATE_POSTED = 2, 18088c2ecf20Sopenharmony_ci VXGE_HW_RXD_STATE_FREED = 3 18098c2ecf20Sopenharmony_ci}; 18108c2ecf20Sopenharmony_ci 18118c2ecf20Sopenharmony_ci/** 18128c2ecf20Sopenharmony_ci * struct vxge_hw_ring_rxd_info - Extended information associated with a 18138c2ecf20Sopenharmony_ci * completed ring descriptor. 18148c2ecf20Sopenharmony_ci * @syn_flag: SYN flag 18158c2ecf20Sopenharmony_ci * @is_icmp: Is ICMP 18168c2ecf20Sopenharmony_ci * @fast_path_eligible: Fast Path Eligible flag 18178c2ecf20Sopenharmony_ci * @l3_cksum: in L3 checksum is valid 18188c2ecf20Sopenharmony_ci * @l3_cksum: Result of IP checksum check (by Titan hardware). 18198c2ecf20Sopenharmony_ci * This field containing VXGE_HW_L3_CKSUM_OK would mean that 18208c2ecf20Sopenharmony_ci * the checksum is correct, otherwise - the datagram is 18218c2ecf20Sopenharmony_ci * corrupted. 18228c2ecf20Sopenharmony_ci * @l4_cksum: in L4 checksum is valid 18238c2ecf20Sopenharmony_ci * @l4_cksum: Result of TCP/UDP checksum check (by Titan hardware). 18248c2ecf20Sopenharmony_ci * This field containing VXGE_HW_L4_CKSUM_OK would mean that 18258c2ecf20Sopenharmony_ci * the checksum is correct. Otherwise - the packet is 18268c2ecf20Sopenharmony_ci * corrupted. 18278c2ecf20Sopenharmony_ci * @frame: Zero or more of enum vxge_hw_frame_type flags. 18288c2ecf20Sopenharmony_ci * See enum vxge_hw_frame_type{}. 18298c2ecf20Sopenharmony_ci * @proto: zero or more of enum vxge_hw_frame_proto flags. Reporting bits for 18308c2ecf20Sopenharmony_ci * various higher-layer protocols, including (but note restricted to) 18318c2ecf20Sopenharmony_ci * TCP and UDP. See enum vxge_hw_frame_proto{}. 18328c2ecf20Sopenharmony_ci * @is_vlan: If vlan tag is valid 18338c2ecf20Sopenharmony_ci * @vlan: VLAN tag extracted from the received frame. 18348c2ecf20Sopenharmony_ci * @rth_bucket: RTH bucket 18358c2ecf20Sopenharmony_ci * @rth_it_hit: Set, If RTH hash value calculated by the Titan hardware 18368c2ecf20Sopenharmony_ci * has a matching entry in the Indirection table. 18378c2ecf20Sopenharmony_ci * @rth_spdm_hit: Set, If RTH hash value calculated by the Titan hardware 18388c2ecf20Sopenharmony_ci * has a matching entry in the Socket Pair Direct Match table. 18398c2ecf20Sopenharmony_ci * @rth_hash_type: RTH hash code of the function used to calculate the hash. 18408c2ecf20Sopenharmony_ci * @rth_value: Receive Traffic Hashing(RTH) hash value. Produced by Titan 18418c2ecf20Sopenharmony_ci * hardware if RTH is enabled. 18428c2ecf20Sopenharmony_ci */ 18438c2ecf20Sopenharmony_cistruct vxge_hw_ring_rxd_info { 18448c2ecf20Sopenharmony_ci u32 syn_flag; 18458c2ecf20Sopenharmony_ci u32 is_icmp; 18468c2ecf20Sopenharmony_ci u32 fast_path_eligible; 18478c2ecf20Sopenharmony_ci u32 l3_cksum_valid; 18488c2ecf20Sopenharmony_ci u32 l3_cksum; 18498c2ecf20Sopenharmony_ci u32 l4_cksum_valid; 18508c2ecf20Sopenharmony_ci u32 l4_cksum; 18518c2ecf20Sopenharmony_ci u32 frame; 18528c2ecf20Sopenharmony_ci u32 proto; 18538c2ecf20Sopenharmony_ci u32 is_vlan; 18548c2ecf20Sopenharmony_ci u32 vlan; 18558c2ecf20Sopenharmony_ci u32 rth_bucket; 18568c2ecf20Sopenharmony_ci u32 rth_it_hit; 18578c2ecf20Sopenharmony_ci u32 rth_spdm_hit; 18588c2ecf20Sopenharmony_ci u32 rth_hash_type; 18598c2ecf20Sopenharmony_ci u32 rth_value; 18608c2ecf20Sopenharmony_ci}; 18618c2ecf20Sopenharmony_ci/** 18628c2ecf20Sopenharmony_ci * enum vxge_hw_ring_tcode - Transfer codes returned by adapter 18638c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_OK: Transfer ok. 18648c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_L3_CKSUM_MISMATCH: Layer 3 checksum presentation 18658c2ecf20Sopenharmony_ci * configuration mismatch. 18668c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_L4_CKSUM_MISMATCH: Layer 4 checksum presentation 18678c2ecf20Sopenharmony_ci * configuration mismatch. 18688c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_L3_L4_CKSUM_MISMATCH: Layer 3 and Layer 4 checksum 18698c2ecf20Sopenharmony_ci * presentation configuration mismatch. 18708c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_L3_PKT_ERR: Layer 3 error unparseable packet, 18718c2ecf20Sopenharmony_ci * such as unknown IPv6 header. 18728c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_L2_FRM_ERR: Layer 2 error frame integrity 18738c2ecf20Sopenharmony_ci * error, such as FCS or ECC). 18748c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_BUF_SIZE_ERR: Buffer size error the RxD buffer( 18758c2ecf20Sopenharmony_ci * s) were not appropriately sized and data loss occurred. 18768c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_INT_ECC_ERR: Internal ECC error RxD corrupted. 18778c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_BENIGN_OVFLOW: Benign overflow the contents of 18788c2ecf20Sopenharmony_ci * Segment1 exceeded the capacity of Buffer1 and the remainder 18798c2ecf20Sopenharmony_ci * was placed in Buffer2. Segment2 now starts in Buffer3. 18808c2ecf20Sopenharmony_ci * No data loss or errors occurred. 18818c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_ZERO_LEN_BUFF: Buffer size 0 one of the RxDs 18828c2ecf20Sopenharmony_ci * assigned buffers has a size of 0 bytes. 18838c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_FRM_DROP: Frame dropped either due to 18848c2ecf20Sopenharmony_ci * VPath Reset or because of a VPIN mismatch. 18858c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_UNUSED: Unused 18868c2ecf20Sopenharmony_ci * @VXGE_HW_RING_T_CODE_MULTI_ERR: Multiple errors more than one 18878c2ecf20Sopenharmony_ci * transfer code condition occurred. 18888c2ecf20Sopenharmony_ci * 18898c2ecf20Sopenharmony_ci * Transfer codes returned by adapter. 18908c2ecf20Sopenharmony_ci */ 18918c2ecf20Sopenharmony_cienum vxge_hw_ring_tcode { 18928c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_OK = 0x0, 18938c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_L3_CKSUM_MISMATCH = 0x1, 18948c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_L4_CKSUM_MISMATCH = 0x2, 18958c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_L3_L4_CKSUM_MISMATCH = 0x3, 18968c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_L3_PKT_ERR = 0x5, 18978c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_L2_FRM_ERR = 0x6, 18988c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_BUF_SIZE_ERR = 0x7, 18998c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_INT_ECC_ERR = 0x8, 19008c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_BENIGN_OVFLOW = 0x9, 19018c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_ZERO_LEN_BUFF = 0xA, 19028c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_FRM_DROP = 0xC, 19038c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_UNUSED = 0xE, 19048c2ecf20Sopenharmony_ci VXGE_HW_RING_T_CODE_MULTI_ERR = 0xF 19058c2ecf20Sopenharmony_ci}; 19068c2ecf20Sopenharmony_ci 19078c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_ring_rxd_reserve( 19088c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19098c2ecf20Sopenharmony_ci void **rxdh); 19108c2ecf20Sopenharmony_ci 19118c2ecf20Sopenharmony_civoid 19128c2ecf20Sopenharmony_civxge_hw_ring_rxd_pre_post( 19138c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19148c2ecf20Sopenharmony_ci void *rxdh); 19158c2ecf20Sopenharmony_ci 19168c2ecf20Sopenharmony_civoid 19178c2ecf20Sopenharmony_civxge_hw_ring_rxd_post_post( 19188c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19198c2ecf20Sopenharmony_ci void *rxdh); 19208c2ecf20Sopenharmony_ci 19218c2ecf20Sopenharmony_civoid 19228c2ecf20Sopenharmony_civxge_hw_ring_rxd_post_post_wmb( 19238c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19248c2ecf20Sopenharmony_ci void *rxdh); 19258c2ecf20Sopenharmony_ci 19268c2ecf20Sopenharmony_civoid vxge_hw_ring_rxd_post( 19278c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19288c2ecf20Sopenharmony_ci void *rxdh); 19298c2ecf20Sopenharmony_ci 19308c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_ring_rxd_next_completed( 19318c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19328c2ecf20Sopenharmony_ci void **rxdh, 19338c2ecf20Sopenharmony_ci u8 *t_code); 19348c2ecf20Sopenharmony_ci 19358c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_ring_handle_tcode( 19368c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19378c2ecf20Sopenharmony_ci void *rxdh, 19388c2ecf20Sopenharmony_ci u8 t_code); 19398c2ecf20Sopenharmony_ci 19408c2ecf20Sopenharmony_civoid vxge_hw_ring_rxd_free( 19418c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ring_handle, 19428c2ecf20Sopenharmony_ci void *rxdh); 19438c2ecf20Sopenharmony_ci 19448c2ecf20Sopenharmony_ci/** 19458c2ecf20Sopenharmony_ci * enum enum vxge_hw_frame_proto - Higher-layer ethernet protocols. 19468c2ecf20Sopenharmony_ci * @VXGE_HW_FRAME_PROTO_VLAN_TAGGED: VLAN. 19478c2ecf20Sopenharmony_ci * @VXGE_HW_FRAME_PROTO_IPV4: IPv4. 19488c2ecf20Sopenharmony_ci * @VXGE_HW_FRAME_PROTO_IPV6: IPv6. 19498c2ecf20Sopenharmony_ci * @VXGE_HW_FRAME_PROTO_IP_FRAG: IP fragmented. 19508c2ecf20Sopenharmony_ci * @VXGE_HW_FRAME_PROTO_TCP: TCP. 19518c2ecf20Sopenharmony_ci * @VXGE_HW_FRAME_PROTO_UDP: UDP. 19528c2ecf20Sopenharmony_ci * @VXGE_HW_FRAME_PROTO_TCP_OR_UDP: TCP or UDP. 19538c2ecf20Sopenharmony_ci * 19548c2ecf20Sopenharmony_ci * Higher layer ethernet protocols and options. 19558c2ecf20Sopenharmony_ci */ 19568c2ecf20Sopenharmony_cienum vxge_hw_frame_proto { 19578c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_VLAN_TAGGED = 0x80, 19588c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_IPV4 = 0x10, 19598c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_IPV6 = 0x08, 19608c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_IP_FRAG = 0x04, 19618c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_TCP = 0x02, 19628c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_UDP = 0x01, 19638c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_TCP_OR_UDP = (VXGE_HW_FRAME_PROTO_TCP | \ 19648c2ecf20Sopenharmony_ci VXGE_HW_FRAME_PROTO_UDP) 19658c2ecf20Sopenharmony_ci}; 19668c2ecf20Sopenharmony_ci 19678c2ecf20Sopenharmony_ci/** 19688c2ecf20Sopenharmony_ci * enum enum vxge_hw_fifo_gather_code - Gather codes used in fifo TxD 19698c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_GATHER_CODE_FIRST: First TxDL 19708c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_GATHER_CODE_MIDDLE: Middle TxDL 19718c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_GATHER_CODE_LAST: Last TxDL 19728c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_GATHER_CODE_FIRST_LAST: First and Last TxDL. 19738c2ecf20Sopenharmony_ci * 19748c2ecf20Sopenharmony_ci * These gather codes are used to indicate the position of a TxD in a TxD list 19758c2ecf20Sopenharmony_ci */ 19768c2ecf20Sopenharmony_cienum vxge_hw_fifo_gather_code { 19778c2ecf20Sopenharmony_ci VXGE_HW_FIFO_GATHER_CODE_FIRST = 0x2, 19788c2ecf20Sopenharmony_ci VXGE_HW_FIFO_GATHER_CODE_MIDDLE = 0x0, 19798c2ecf20Sopenharmony_ci VXGE_HW_FIFO_GATHER_CODE_LAST = 0x1, 19808c2ecf20Sopenharmony_ci VXGE_HW_FIFO_GATHER_CODE_FIRST_LAST = 0x3 19818c2ecf20Sopenharmony_ci}; 19828c2ecf20Sopenharmony_ci 19838c2ecf20Sopenharmony_ci/** 19848c2ecf20Sopenharmony_ci * enum enum vxge_hw_fifo_tcode - tcodes used in fifo 19858c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_T_CODE_OK: Transfer OK 19868c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_T_CODE_PCI_READ_CORRUPT: PCI read transaction (either TxD or 19878c2ecf20Sopenharmony_ci * frame data) returned with corrupt data. 19888c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_T_CODE_PCI_READ_FAIL:PCI read transaction was returned 19898c2ecf20Sopenharmony_ci * with no data. 19908c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_T_CODE_INVALID_MSS: The host attempted to send either a 19918c2ecf20Sopenharmony_ci * frame or LSO MSS that was too long (>9800B). 19928c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_T_CODE_LSO_ERROR: Error detected during TCP/UDP Large Send 19938c2ecf20Sopenharmony_ci * Offload operation, due to improper header template, 19948c2ecf20Sopenharmony_ci * unsupported protocol, etc. 19958c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_T_CODE_UNUSED: Unused 19968c2ecf20Sopenharmony_ci * @VXGE_HW_FIFO_T_CODE_MULTI_ERROR: Set to 1 by the adapter if multiple 19978c2ecf20Sopenharmony_ci * data buffer transfer errors are encountered (see below). 19988c2ecf20Sopenharmony_ci * Otherwise it is set to 0. 19998c2ecf20Sopenharmony_ci * 20008c2ecf20Sopenharmony_ci * These tcodes are returned in various API for TxD status 20018c2ecf20Sopenharmony_ci */ 20028c2ecf20Sopenharmony_cienum vxge_hw_fifo_tcode { 20038c2ecf20Sopenharmony_ci VXGE_HW_FIFO_T_CODE_OK = 0x0, 20048c2ecf20Sopenharmony_ci VXGE_HW_FIFO_T_CODE_PCI_READ_CORRUPT = 0x1, 20058c2ecf20Sopenharmony_ci VXGE_HW_FIFO_T_CODE_PCI_READ_FAIL = 0x2, 20068c2ecf20Sopenharmony_ci VXGE_HW_FIFO_T_CODE_INVALID_MSS = 0x3, 20078c2ecf20Sopenharmony_ci VXGE_HW_FIFO_T_CODE_LSO_ERROR = 0x4, 20088c2ecf20Sopenharmony_ci VXGE_HW_FIFO_T_CODE_UNUSED = 0x7, 20098c2ecf20Sopenharmony_ci VXGE_HW_FIFO_T_CODE_MULTI_ERROR = 0x8 20108c2ecf20Sopenharmony_ci}; 20118c2ecf20Sopenharmony_ci 20128c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_fifo_txdl_reserve( 20138c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifoh, 20148c2ecf20Sopenharmony_ci void **txdlh, 20158c2ecf20Sopenharmony_ci void **txdl_priv); 20168c2ecf20Sopenharmony_ci 20178c2ecf20Sopenharmony_civoid vxge_hw_fifo_txdl_buffer_set( 20188c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifo_handle, 20198c2ecf20Sopenharmony_ci void *txdlh, 20208c2ecf20Sopenharmony_ci u32 frag_idx, 20218c2ecf20Sopenharmony_ci dma_addr_t dma_pointer, 20228c2ecf20Sopenharmony_ci u32 size); 20238c2ecf20Sopenharmony_ci 20248c2ecf20Sopenharmony_civoid vxge_hw_fifo_txdl_post( 20258c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifo_handle, 20268c2ecf20Sopenharmony_ci void *txdlh); 20278c2ecf20Sopenharmony_ci 20288c2ecf20Sopenharmony_ciu32 vxge_hw_fifo_free_txdl_count_get( 20298c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifo_handle); 20308c2ecf20Sopenharmony_ci 20318c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_fifo_txdl_next_completed( 20328c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifoh, 20338c2ecf20Sopenharmony_ci void **txdlh, 20348c2ecf20Sopenharmony_ci enum vxge_hw_fifo_tcode *t_code); 20358c2ecf20Sopenharmony_ci 20368c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_fifo_handle_tcode( 20378c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifoh, 20388c2ecf20Sopenharmony_ci void *txdlh, 20398c2ecf20Sopenharmony_ci enum vxge_hw_fifo_tcode t_code); 20408c2ecf20Sopenharmony_ci 20418c2ecf20Sopenharmony_civoid vxge_hw_fifo_txdl_free( 20428c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifoh, 20438c2ecf20Sopenharmony_ci void *txdlh); 20448c2ecf20Sopenharmony_ci 20458c2ecf20Sopenharmony_ci/* 20468c2ecf20Sopenharmony_ci * Device 20478c2ecf20Sopenharmony_ci */ 20488c2ecf20Sopenharmony_ci 20498c2ecf20Sopenharmony_ci#define VXGE_HW_RING_NEXT_BLOCK_POINTER_OFFSET (VXGE_HW_BLOCK_SIZE-8) 20508c2ecf20Sopenharmony_ci#define VXGE_HW_RING_MEMBLOCK_IDX_OFFSET (VXGE_HW_BLOCK_SIZE-16) 20518c2ecf20Sopenharmony_ci 20528c2ecf20Sopenharmony_ci/* 20538c2ecf20Sopenharmony_ci * struct __vxge_hw_ring_rxd_priv - Receive descriptor HW-private data. 20548c2ecf20Sopenharmony_ci * @dma_addr: DMA (mapped) address of _this_ descriptor. 20558c2ecf20Sopenharmony_ci * @dma_handle: DMA handle used to map the descriptor onto device. 20568c2ecf20Sopenharmony_ci * @dma_offset: Descriptor's offset in the memory block. HW allocates 20578c2ecf20Sopenharmony_ci * descriptors in memory blocks of %VXGE_HW_BLOCK_SIZE 20588c2ecf20Sopenharmony_ci * bytes. Each memblock is contiguous DMA-able memory. Each 20598c2ecf20Sopenharmony_ci * memblock contains 1 or more 4KB RxD blocks visible to the 20608c2ecf20Sopenharmony_ci * Titan hardware. 20618c2ecf20Sopenharmony_ci * @dma_object: DMA address and handle of the memory block that contains 20628c2ecf20Sopenharmony_ci * the descriptor. This member is used only in the "checked" 20638c2ecf20Sopenharmony_ci * version of the HW (to enforce certain assertions); 20648c2ecf20Sopenharmony_ci * otherwise it gets compiled out. 20658c2ecf20Sopenharmony_ci * @allocated: True if the descriptor is reserved, 0 otherwise. Internal usage. 20668c2ecf20Sopenharmony_ci * 20678c2ecf20Sopenharmony_ci * Per-receive decsriptor HW-private data. HW uses the space to keep DMA 20688c2ecf20Sopenharmony_ci * information associated with the descriptor. Note that driver can ask HW 20698c2ecf20Sopenharmony_ci * to allocate additional per-descriptor space for its own (driver-specific) 20708c2ecf20Sopenharmony_ci * purposes. 20718c2ecf20Sopenharmony_ci */ 20728c2ecf20Sopenharmony_cistruct __vxge_hw_ring_rxd_priv { 20738c2ecf20Sopenharmony_ci dma_addr_t dma_addr; 20748c2ecf20Sopenharmony_ci struct pci_dev *dma_handle; 20758c2ecf20Sopenharmony_ci ptrdiff_t dma_offset; 20768c2ecf20Sopenharmony_ci#ifdef VXGE_DEBUG_ASSERT 20778c2ecf20Sopenharmony_ci struct vxge_hw_mempool_dma *dma_object; 20788c2ecf20Sopenharmony_ci#endif 20798c2ecf20Sopenharmony_ci}; 20808c2ecf20Sopenharmony_ci 20818c2ecf20Sopenharmony_cistruct vxge_hw_mempool_cbs { 20828c2ecf20Sopenharmony_ci void (*item_func_alloc)( 20838c2ecf20Sopenharmony_ci struct vxge_hw_mempool *mempoolh, 20848c2ecf20Sopenharmony_ci u32 memblock_index, 20858c2ecf20Sopenharmony_ci struct vxge_hw_mempool_dma *dma_object, 20868c2ecf20Sopenharmony_ci u32 index, 20878c2ecf20Sopenharmony_ci u32 is_last); 20888c2ecf20Sopenharmony_ci}; 20898c2ecf20Sopenharmony_ci 20908c2ecf20Sopenharmony_ci#define VXGE_HW_VIRTUAL_PATH_HANDLE(vpath) \ 20918c2ecf20Sopenharmony_ci ((struct __vxge_hw_vpath_handle *)(vpath)->vpath_handles.next) 20928c2ecf20Sopenharmony_ci 20938c2ecf20Sopenharmony_cienum vxge_hw_status 20948c2ecf20Sopenharmony_ci__vxge_hw_vpath_rts_table_get( 20958c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 20968c2ecf20Sopenharmony_ci u32 action, 20978c2ecf20Sopenharmony_ci u32 rts_table, 20988c2ecf20Sopenharmony_ci u32 offset, 20998c2ecf20Sopenharmony_ci u64 *data1, 21008c2ecf20Sopenharmony_ci u64 *data2); 21018c2ecf20Sopenharmony_ci 21028c2ecf20Sopenharmony_cienum vxge_hw_status 21038c2ecf20Sopenharmony_ci__vxge_hw_vpath_rts_table_set( 21048c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21058c2ecf20Sopenharmony_ci u32 action, 21068c2ecf20Sopenharmony_ci u32 rts_table, 21078c2ecf20Sopenharmony_ci u32 offset, 21088c2ecf20Sopenharmony_ci u64 data1, 21098c2ecf20Sopenharmony_ci u64 data2); 21108c2ecf20Sopenharmony_ci 21118c2ecf20Sopenharmony_cienum vxge_hw_status 21128c2ecf20Sopenharmony_ci__vxge_hw_vpath_enable( 21138c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh, 21148c2ecf20Sopenharmony_ci u32 vp_id); 21158c2ecf20Sopenharmony_ci 21168c2ecf20Sopenharmony_civoid vxge_hw_device_intr_enable( 21178c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh); 21188c2ecf20Sopenharmony_ci 21198c2ecf20Sopenharmony_ciu32 vxge_hw_device_set_intr_type(struct __vxge_hw_device *devh, u32 intr_mode); 21208c2ecf20Sopenharmony_ci 21218c2ecf20Sopenharmony_civoid vxge_hw_device_intr_disable( 21228c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh); 21238c2ecf20Sopenharmony_ci 21248c2ecf20Sopenharmony_civoid vxge_hw_device_mask_all( 21258c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh); 21268c2ecf20Sopenharmony_ci 21278c2ecf20Sopenharmony_civoid vxge_hw_device_unmask_all( 21288c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh); 21298c2ecf20Sopenharmony_ci 21308c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_device_begin_irq( 21318c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh, 21328c2ecf20Sopenharmony_ci u32 skip_alarms, 21338c2ecf20Sopenharmony_ci u64 *reason); 21348c2ecf20Sopenharmony_ci 21358c2ecf20Sopenharmony_civoid vxge_hw_device_clear_tx_rx( 21368c2ecf20Sopenharmony_ci struct __vxge_hw_device *devh); 21378c2ecf20Sopenharmony_ci 21388c2ecf20Sopenharmony_ci/* 21398c2ecf20Sopenharmony_ci * Virtual Paths 21408c2ecf20Sopenharmony_ci */ 21418c2ecf20Sopenharmony_ci 21428c2ecf20Sopenharmony_civoid vxge_hw_vpath_dynamic_rti_rtimer_set(struct __vxge_hw_ring *ring); 21438c2ecf20Sopenharmony_ci 21448c2ecf20Sopenharmony_civoid vxge_hw_vpath_dynamic_tti_rtimer_set(struct __vxge_hw_fifo *fifo); 21458c2ecf20Sopenharmony_ci 21468c2ecf20Sopenharmony_ciu32 vxge_hw_vpath_id( 21478c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 21488c2ecf20Sopenharmony_ci 21498c2ecf20Sopenharmony_cienum vxge_hw_vpath_mac_addr_add_mode { 21508c2ecf20Sopenharmony_ci VXGE_HW_VPATH_MAC_ADDR_ADD_DUPLICATE = 0, 21518c2ecf20Sopenharmony_ci VXGE_HW_VPATH_MAC_ADDR_DISCARD_DUPLICATE = 1, 21528c2ecf20Sopenharmony_ci VXGE_HW_VPATH_MAC_ADDR_REPLACE_DUPLICATE = 2 21538c2ecf20Sopenharmony_ci}; 21548c2ecf20Sopenharmony_ci 21558c2ecf20Sopenharmony_cienum vxge_hw_status 21568c2ecf20Sopenharmony_civxge_hw_vpath_mac_addr_add( 21578c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21588c2ecf20Sopenharmony_ci u8 *macaddr, 21598c2ecf20Sopenharmony_ci u8 *macaddr_mask, 21608c2ecf20Sopenharmony_ci enum vxge_hw_vpath_mac_addr_add_mode duplicate_mode); 21618c2ecf20Sopenharmony_ci 21628c2ecf20Sopenharmony_cienum vxge_hw_status 21638c2ecf20Sopenharmony_civxge_hw_vpath_mac_addr_get( 21648c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21658c2ecf20Sopenharmony_ci u8 *macaddr, 21668c2ecf20Sopenharmony_ci u8 *macaddr_mask); 21678c2ecf20Sopenharmony_ci 21688c2ecf20Sopenharmony_cienum vxge_hw_status 21698c2ecf20Sopenharmony_civxge_hw_vpath_mac_addr_get_next( 21708c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21718c2ecf20Sopenharmony_ci u8 *macaddr, 21728c2ecf20Sopenharmony_ci u8 *macaddr_mask); 21738c2ecf20Sopenharmony_ci 21748c2ecf20Sopenharmony_cienum vxge_hw_status 21758c2ecf20Sopenharmony_civxge_hw_vpath_mac_addr_delete( 21768c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21778c2ecf20Sopenharmony_ci u8 *macaddr, 21788c2ecf20Sopenharmony_ci u8 *macaddr_mask); 21798c2ecf20Sopenharmony_ci 21808c2ecf20Sopenharmony_cienum vxge_hw_status 21818c2ecf20Sopenharmony_civxge_hw_vpath_vid_add( 21828c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21838c2ecf20Sopenharmony_ci u64 vid); 21848c2ecf20Sopenharmony_ci 21858c2ecf20Sopenharmony_cienum vxge_hw_status 21868c2ecf20Sopenharmony_civxge_hw_vpath_vid_delete( 21878c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21888c2ecf20Sopenharmony_ci u64 vid); 21898c2ecf20Sopenharmony_ci 21908c2ecf20Sopenharmony_cienum vxge_hw_status 21918c2ecf20Sopenharmony_civxge_hw_vpath_etype_add( 21928c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21938c2ecf20Sopenharmony_ci u64 etype); 21948c2ecf20Sopenharmony_ci 21958c2ecf20Sopenharmony_cienum vxge_hw_status 21968c2ecf20Sopenharmony_civxge_hw_vpath_etype_get( 21978c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 21988c2ecf20Sopenharmony_ci u64 *etype); 21998c2ecf20Sopenharmony_ci 22008c2ecf20Sopenharmony_cienum vxge_hw_status 22018c2ecf20Sopenharmony_civxge_hw_vpath_etype_get_next( 22028c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 22038c2ecf20Sopenharmony_ci u64 *etype); 22048c2ecf20Sopenharmony_ci 22058c2ecf20Sopenharmony_cienum vxge_hw_status 22068c2ecf20Sopenharmony_civxge_hw_vpath_etype_delete( 22078c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 22088c2ecf20Sopenharmony_ci u64 etype); 22098c2ecf20Sopenharmony_ci 22108c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_promisc_enable( 22118c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22128c2ecf20Sopenharmony_ci 22138c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_promisc_disable( 22148c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22158c2ecf20Sopenharmony_ci 22168c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_bcast_enable( 22178c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22188c2ecf20Sopenharmony_ci 22198c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_mcast_enable( 22208c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22218c2ecf20Sopenharmony_ci 22228c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_mcast_disable( 22238c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22248c2ecf20Sopenharmony_ci 22258c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_poll_rx( 22268c2ecf20Sopenharmony_ci struct __vxge_hw_ring *ringh); 22278c2ecf20Sopenharmony_ci 22288c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_poll_tx( 22298c2ecf20Sopenharmony_ci struct __vxge_hw_fifo *fifoh, 22308c2ecf20Sopenharmony_ci struct sk_buff ***skb_ptr, int nr_skb, int *more); 22318c2ecf20Sopenharmony_ci 22328c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_alarm_process( 22338c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle, 22348c2ecf20Sopenharmony_ci u32 skip_alarms); 22358c2ecf20Sopenharmony_ci 22368c2ecf20Sopenharmony_civoid 22378c2ecf20Sopenharmony_civxge_hw_vpath_msix_set(struct __vxge_hw_vpath_handle *vpath_handle, 22388c2ecf20Sopenharmony_ci int *tim_msix_id, int alarm_msix_id); 22398c2ecf20Sopenharmony_ci 22408c2ecf20Sopenharmony_civoid 22418c2ecf20Sopenharmony_civxge_hw_vpath_msix_mask(struct __vxge_hw_vpath_handle *vpath_handle, 22428c2ecf20Sopenharmony_ci int msix_id); 22438c2ecf20Sopenharmony_ci 22448c2ecf20Sopenharmony_civoid vxge_hw_vpath_msix_clear(struct __vxge_hw_vpath_handle *vp, int msix_id); 22458c2ecf20Sopenharmony_ci 22468c2ecf20Sopenharmony_civoid vxge_hw_device_flush_io(struct __vxge_hw_device *devh); 22478c2ecf20Sopenharmony_ci 22488c2ecf20Sopenharmony_civoid 22498c2ecf20Sopenharmony_civxge_hw_vpath_msix_unmask(struct __vxge_hw_vpath_handle *vpath_handle, 22508c2ecf20Sopenharmony_ci int msix_id); 22518c2ecf20Sopenharmony_ci 22528c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_intr_enable( 22538c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22548c2ecf20Sopenharmony_ci 22558c2ecf20Sopenharmony_cienum vxge_hw_status vxge_hw_vpath_intr_disable( 22568c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22578c2ecf20Sopenharmony_ci 22588c2ecf20Sopenharmony_civoid vxge_hw_vpath_inta_mask_tx_rx( 22598c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22608c2ecf20Sopenharmony_ci 22618c2ecf20Sopenharmony_civoid vxge_hw_vpath_inta_unmask_tx_rx( 22628c2ecf20Sopenharmony_ci struct __vxge_hw_vpath_handle *vpath_handle); 22638c2ecf20Sopenharmony_ci 22648c2ecf20Sopenharmony_civoid 22658c2ecf20Sopenharmony_civxge_hw_channel_msix_mask(struct __vxge_hw_channel *channelh, int msix_id); 22668c2ecf20Sopenharmony_ci 22678c2ecf20Sopenharmony_civoid 22688c2ecf20Sopenharmony_civxge_hw_channel_msix_unmask(struct __vxge_hw_channel *channelh, int msix_id); 22698c2ecf20Sopenharmony_ci 22708c2ecf20Sopenharmony_civoid 22718c2ecf20Sopenharmony_civxge_hw_channel_msix_clear(struct __vxge_hw_channel *channelh, int msix_id); 22728c2ecf20Sopenharmony_ci 22738c2ecf20Sopenharmony_civoid 22748c2ecf20Sopenharmony_civxge_hw_channel_dtr_try_complete(struct __vxge_hw_channel *channel, 22758c2ecf20Sopenharmony_ci void **dtrh); 22768c2ecf20Sopenharmony_ci 22778c2ecf20Sopenharmony_civoid 22788c2ecf20Sopenharmony_civxge_hw_channel_dtr_complete(struct __vxge_hw_channel *channel); 22798c2ecf20Sopenharmony_ci 22808c2ecf20Sopenharmony_civoid 22818c2ecf20Sopenharmony_civxge_hw_channel_dtr_free(struct __vxge_hw_channel *channel, void *dtrh); 22828c2ecf20Sopenharmony_ci 22838c2ecf20Sopenharmony_ciint 22848c2ecf20Sopenharmony_civxge_hw_channel_dtr_count(struct __vxge_hw_channel *channel); 22858c2ecf20Sopenharmony_ci 22868c2ecf20Sopenharmony_civoid vxge_hw_vpath_tti_ci_set(struct __vxge_hw_fifo *fifo); 22878c2ecf20Sopenharmony_ci 22888c2ecf20Sopenharmony_civoid vxge_hw_vpath_dynamic_rti_ci_set(struct __vxge_hw_ring *ring); 22898c2ecf20Sopenharmony_ci 22908c2ecf20Sopenharmony_ci#endif 2291