octeon: add clear counters for port and queues
Type: feature
Change-Id: Ie36be41694e7bd5341b4239dcba2ae6834c4a73f
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
(cherry picked from commit 68b8125dbf
)
This commit is contained in:
@ -294,3 +294,45 @@ oct_txq_get_stats (vlib_main_t *vm, vnet_dev_port_t *port,
|
|||||||
|
|
||||||
return VNET_DEV_OK;
|
return VNET_DEV_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
oct_port_clear_counters (vlib_main_t *vm, vnet_dev_port_t *port)
|
||||||
|
{
|
||||||
|
vnet_dev_t *dev = port->dev;
|
||||||
|
oct_device_t *cd = vnet_dev_get_data (dev);
|
||||||
|
struct roc_nix *nix = cd->nix;
|
||||||
|
int rrv;
|
||||||
|
|
||||||
|
if ((rrv = roc_nix_stats_reset (nix)))
|
||||||
|
oct_roc_err (dev, rrv, "roc_nix_stats_reset() failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
oct_rxq_clear_counters (vlib_main_t *vm, vnet_dev_rx_queue_t *rxq)
|
||||||
|
{
|
||||||
|
oct_rxq_t *crq = vnet_dev_get_rx_queue_data (rxq);
|
||||||
|
vnet_dev_t *dev = rxq->port->dev;
|
||||||
|
oct_device_t *cd = vnet_dev_get_data (dev);
|
||||||
|
struct roc_nix *nix = cd->nix;
|
||||||
|
int rrv;
|
||||||
|
|
||||||
|
if ((rrv = roc_nix_stats_queue_reset (nix, crq->rq.qid, 1)))
|
||||||
|
oct_roc_err (dev, rrv,
|
||||||
|
"roc_nix_stats_queue_reset() failed for rx queue %u",
|
||||||
|
rxq->queue_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
oct_txq_clear_counters (vlib_main_t *vm, vnet_dev_tx_queue_t *txq)
|
||||||
|
{
|
||||||
|
oct_txq_t *ctq = vnet_dev_get_tx_queue_data (txq);
|
||||||
|
vnet_dev_t *dev = txq->port->dev;
|
||||||
|
oct_device_t *cd = vnet_dev_get_data (dev);
|
||||||
|
struct roc_nix *nix = cd->nix;
|
||||||
|
int rrv;
|
||||||
|
|
||||||
|
if ((rrv = roc_nix_stats_queue_reset (nix, ctq->sq.qid, 0)))
|
||||||
|
oct_roc_err (dev, rrv,
|
||||||
|
"roc_nix_stats_queue_reset() failed for tx queue %u",
|
||||||
|
txq->queue_id);
|
||||||
|
}
|
||||||
|
@ -141,6 +141,7 @@ oct_init_nix (vlib_main_t *vm, vnet_dev_t *dev)
|
|||||||
.config_change_validate = oct_port_cfg_change_validate,
|
.config_change_validate = oct_port_cfg_change_validate,
|
||||||
.format_status = format_oct_port_status,
|
.format_status = format_oct_port_status,
|
||||||
.format_flow = format_oct_port_flow,
|
.format_flow = format_oct_port_flow,
|
||||||
|
.clear_counters = oct_port_clear_counters,
|
||||||
},
|
},
|
||||||
.data_size = sizeof (oct_port_t),
|
.data_size = sizeof (oct_port_t),
|
||||||
.initial_data = &oct_port,
|
.initial_data = &oct_port,
|
||||||
@ -159,6 +160,7 @@ oct_init_nix (vlib_main_t *vm, vnet_dev_t *dev)
|
|||||||
.alloc = oct_rx_queue_alloc,
|
.alloc = oct_rx_queue_alloc,
|
||||||
.free = oct_rx_queue_free,
|
.free = oct_rx_queue_free,
|
||||||
.format_info = format_oct_rxq_info,
|
.format_info = format_oct_rxq_info,
|
||||||
|
.clear_counters = oct_rxq_clear_counters,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
.tx_queue = {
|
.tx_queue = {
|
||||||
@ -173,6 +175,7 @@ oct_init_nix (vlib_main_t *vm, vnet_dev_t *dev)
|
|||||||
.alloc = oct_tx_queue_alloc,
|
.alloc = oct_tx_queue_alloc,
|
||||||
.free = oct_tx_queue_free,
|
.free = oct_tx_queue_free,
|
||||||
.format_info = format_oct_txq_info,
|
.format_info = format_oct_txq_info,
|
||||||
|
.clear_counters = oct_txq_clear_counters,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -149,6 +149,9 @@ vnet_dev_rv_t oct_flow_query (vlib_main_t *, vnet_dev_port_t *, u32, uword,
|
|||||||
|
|
||||||
/* counter.c */
|
/* counter.c */
|
||||||
void oct_port_add_counters (vlib_main_t *, vnet_dev_port_t *);
|
void oct_port_add_counters (vlib_main_t *, vnet_dev_port_t *);
|
||||||
|
void oct_port_clear_counters (vlib_main_t *, vnet_dev_port_t *);
|
||||||
|
void oct_rxq_clear_counters (vlib_main_t *, vnet_dev_rx_queue_t *);
|
||||||
|
void oct_txq_clear_counters (vlib_main_t *, vnet_dev_tx_queue_t *);
|
||||||
vnet_dev_rv_t oct_port_get_stats (vlib_main_t *, vnet_dev_port_t *);
|
vnet_dev_rv_t oct_port_get_stats (vlib_main_t *, vnet_dev_port_t *);
|
||||||
vnet_dev_rv_t oct_rxq_get_stats (vlib_main_t *, vnet_dev_port_t *,
|
vnet_dev_rv_t oct_rxq_get_stats (vlib_main_t *, vnet_dev_port_t *,
|
||||||
vnet_dev_rx_queue_t *);
|
vnet_dev_rx_queue_t *);
|
||||||
|
Reference in New Issue
Block a user