diff options
author | Damjan Marion <damarion@cisco.com> | 2017-02-28 21:55:28 +0100 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2017-03-01 11:11:37 +0000 |
commit | b3bb10101ceffec1df0624c785acbd40858870ec (patch) | |
tree | 9f4a8bc34be67373a372f800cd6eab86e85d556a /src/vnet/devices/devices.h | |
parent | f7c379403a98cf060d28bac24916c51067c4ec90 (diff) |
devices: vnet_get_aggregate_rx_packets should not be dpdk specific
Change-Id: I1152db4b7d1602653d7d8b2c6cb28cf5c526c4ca
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vnet/devices/devices.h')
-rw-r--r-- | src/vnet/devices/devices.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/vnet/devices/devices.h b/src/vnet/devices/devices.h index c46dab904c3..a5cbc35e682 100644 --- a/src/vnet/devices/devices.h +++ b/src/vnet/devices/devices.h @@ -39,9 +39,45 @@ typedef enum [VNET_DEVICE_INPUT_NEXT_MPLS_INPUT] = "mpls-input", \ } +typedef struct +{ + CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); + + /* total input packet counter */ + u64 aggregate_rx_packets; +} vnet_device_per_worker_data_t; + +typedef struct +{ + vnet_device_per_worker_data_t *workers; +} vnet_device_main_t; + +extern vnet_device_main_t vnet_device_main; extern vlib_node_registration_t device_input_node; extern const u32 device_input_next_node_advance[]; +static inline u64 +vnet_get_aggregate_rx_packets (void) +{ + vnet_device_main_t *vdm = &vnet_device_main; + u64 sum = 0; + vnet_device_per_worker_data_t *pwd; + + vec_foreach (pwd, vdm->workers) sum += pwd->aggregate_rx_packets; + + return sum; +} + +static inline void +vnet_device_increment_rx_packets (u32 cpu_index, u64 count) +{ + vnet_device_main_t *vdm = &vnet_device_main; + vnet_device_per_worker_data_t *pwd; + + pwd = vec_elt_at_index (vdm->workers, cpu_index); + pwd->aggregate_rx_packets += count; +} + #endif /* included_vnet_vnet_device_h */ /* |