blob: f282ffdf39fd305f521d4bfc1737cb13e5ee6422 [file] [log] [blame]
/*
**************************************************************************
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
**************************************************************************
*/
/**
* @file nss_stats_public.h
* NSS statistics Structure and APIs
*/
#ifndef __NSS_STATS_PUBLIC_H
#define __NSS_STATS_PUBLIC_H
/**
* @addtogroup nss_stats_public_subsystem
* @{
*/
/**
* Maximum string length.
*
* This should be equal to maximum string size of any statistics
* inclusive of statistics value.
*/
#define NSS_STATS_MAX_STR_LENGTH 96
/**
* nss_stats_node
* Node statistics.
*/
enum nss_stats_node {
NSS_STATS_NODE_RX_PKTS, /**< Accelerated node Rx packets. */
NSS_STATS_NODE_RX_BYTES, /**< Accelerated node Rx bytes. */
NSS_STATS_NODE_TX_PKTS, /**< Accelerated node Tx packets. */
NSS_STATS_NODE_TX_BYTES, /**< Accelerated node Tx bytes. */
NSS_STATS_NODE_RX_QUEUE_0_DROPPED, /**< Accelerated node Rx Queue 0 dropped. */
NSS_STATS_NODE_RX_QUEUE_1_DROPPED, /**< Accelerated node Rx Queue 1 dropped. */
NSS_STATS_NODE_RX_QUEUE_2_DROPPED, /**< Accelerated node Rx Queue 2 dropped. */
NSS_STATS_NODE_RX_QUEUE_3_DROPPED, /**< Accelerated node Rx Queue 3 dropped. */
NSS_STATS_NODE_MAX, /**< Maximum message type. */
};
/*
* WARNING: There is a 1:1 mapping between values of enum nss_stats_drv and corresponding
* statistics string array in nss_drv_strings.c.
*/
/**
* nss_stats_drv
* HLOS driver statistics.
*/
enum nss_stats_drv {
NSS_STATS_DRV_NBUF_ALLOC_FAILS = 0, /**< Networking buffer allocation errors. */
NSS_STATS_DRV_PAGED_BUF_ALLOC_FAILS, /**< Paged buffer allocation errors. */
NSS_STATS_DRV_TX_QUEUE_FULL_0, /**< Tx queue full for Core 0. */
NSS_STATS_DRV_TX_QUEUE_FULL_1, /**< Tx queue full for Core 1. */
NSS_STATS_DRV_TX_EMPTY, /**< Host-to-network empty buffers. */
NSS_STATS_DRV_PAGED_TX_EMPTY, /**< Host-to-network paged empty buffers. */
NSS_STATS_DRV_TX_PACKET, /**< Host-to-network data packets. */
NSS_STATS_DRV_TX_CMD_REQ, /**< Host-to-network control packets. */
NSS_STATS_DRV_TX_CRYPTO_REQ, /**< Host-to-network crypto requests. */
NSS_STATS_DRV_TX_BUFFER_REUSE, /**< Host-to-network reuse buffer count. */
NSS_STATS_DRV_RX_EMPTY, /**< Network-to-host empty buffers. */
NSS_STATS_DRV_RX_PACKET, /**< Network-to-host data packets. */
NSS_STATS_DRV_RX_CMD_RESP, /**< Network-to-host command responses. */
NSS_STATS_DRV_RX_STATUS, /**< Network-to-host status packets. */
NSS_STATS_DRV_RX_CRYPTO_RESP, /**< Network-to-host crypto responses. */
NSS_STATS_DRV_RX_VIRTUAL, /**< Network-to-host virtual packets. */
NSS_STATS_DRV_TX_SIMPLE, /**< Host-to-network simple SKB packets. */
NSS_STATS_DRV_TX_NR_FRAGS, /**< Host-to-network number of fragmented SKB packets. */
NSS_STATS_DRV_TX_FRAGLIST, /**< Host-to-network fragmentation list of SKB packets. */
NSS_STATS_DRV_RX_SIMPLE, /**< Network-to-host simple SKB packets. */
NSS_STATS_DRV_RX_NR_FRAGS, /**< Network-to-host number of fragmented SKB packets. */
NSS_STATS_DRV_RX_SKB_FRAGLIST, /**< Network-to-host fragmentation list of SKB packets. */
NSS_STATS_DRV_RX_BAD_DESCRIPTOR, /**< Network-to-host bad descriptor reads. */
NSS_STATS_DRV_NSS_SKB_COUNT, /**< NSS SKB pool count. */
NSS_STATS_DRV_CHAIN_SEG_PROCESSED, /**< Network-to-host SKB chain processed count. */
NSS_STATS_DRV_FRAG_SEG_PROCESSED, /**< Network-to-host fragments processed count. */
NSS_STATS_DRV_TX_CMD_QUEUE_FULL, /**< Tx host-to-network control packets fail due to queue full. */
#ifdef NSS_MULTI_H2N_DATA_RING_SUPPORT
NSS_STATS_DRV_TX_PACKET_QUEUE_0, /**< Host-to-network data packets on queue0. */
NSS_STATS_DRV_TX_PACKET_QUEUE_1, /**< Host-to-network data packets on queue1. */
NSS_STATS_DRV_TX_PACKET_QUEUE_2, /**< Host-to-network data packets on queue2. */
NSS_STATS_DRV_TX_PACKET_QUEUE_3, /**< Host-to-network data packets on queue3. */
NSS_STATS_DRV_TX_PACKET_QUEUE_4, /**< Host-to-network data packets on queue4. */
NSS_STATS_DRV_TX_PACKET_QUEUE_5, /**< Host-to-network data packets on queue5. */
NSS_STATS_DRV_TX_PACKET_QUEUE_6, /**< Host-to-network data packets on queue6. */
NSS_STATS_DRV_TX_PACKET_QUEUE_7, /**< Host-to-network data packets on queue7. */
#endif
NSS_STATS_DRV_MAX, /**< Maximum message type. */
};
/**
* nss_stats_types
* List of statistics categories.
*/
enum nss_stats_types {
NSS_STATS_TYPE_COMMON, /**< Common pnode statistics. */
NSS_STATS_TYPE_DROP, /**< Packet drop statistics. */
NSS_STATS_TYPE_ERROR, /**< Hardware or software errors different from drop or exception statistics. */
NSS_STATS_TYPE_EXCEPTION, /**< Packet exception (to host) statistics. */
NSS_STATS_TYPE_SPECIAL, /**< Statistics that do not fall into the above types. */
NSS_STATS_TYPE_MAX /**< Maximum message type. */
};
/**
* nss_stats_notifier_action
* Statistics notification types.
*/
enum nss_stats_notifier_action {
NSS_STATS_EVENT_NOTIFY,
NSS_STATS_EVENT_MAX
};
/**
* @}
*/
#endif /* __NSS_STATS_PUBLIC_H */