mirror of https://gitee.com/openkylin/linux.git
ixgbe: ipsec offload stats
Add a simple statistic to count the ipsec offloads. Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
5925947047
commit
a8a43fda27
|
@ -637,10 +637,12 @@ struct ixgbe_adapter {
|
|||
int num_tx_queues;
|
||||
u16 tx_itr_setting;
|
||||
u16 tx_work_limit;
|
||||
u64 tx_ipsec;
|
||||
|
||||
/* Rx fast path data */
|
||||
int num_rx_queues;
|
||||
u16 rx_itr_setting;
|
||||
u64 rx_ipsec;
|
||||
|
||||
/* Port number used to identify VXLAN traffic */
|
||||
__be16 vxlan_port;
|
||||
|
|
|
@ -115,6 +115,8 @@ static const struct ixgbe_stats ixgbe_gstrings_stats[] = {
|
|||
{"tx_hwtstamp_timeouts", IXGBE_STAT(tx_hwtstamp_timeouts)},
|
||||
{"tx_hwtstamp_skipped", IXGBE_STAT(tx_hwtstamp_skipped)},
|
||||
{"rx_hwtstamp_cleared", IXGBE_STAT(rx_hwtstamp_cleared)},
|
||||
{"tx_ipsec", IXGBE_STAT(tx_ipsec)},
|
||||
{"rx_ipsec", IXGBE_STAT(rx_ipsec)},
|
||||
#ifdef IXGBE_FCOE
|
||||
{"fcoe_bad_fccrc", IXGBE_STAT(stats.fccrc)},
|
||||
{"rx_fcoe_dropped", IXGBE_STAT(stats.fcoerpdc)},
|
||||
|
|
|
@ -852,6 +852,8 @@ void ixgbe_ipsec_rx(struct ixgbe_ring *rx_ring,
|
|||
xo = xfrm_offload(skb);
|
||||
xo->flags = CRYPTO_DONE;
|
||||
xo->status = CRYPTO_SUCCESS;
|
||||
|
||||
adapter->rx_ipsec++;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1171,7 +1171,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|||
struct ixgbe_adapter *adapter = q_vector->adapter;
|
||||
struct ixgbe_tx_buffer *tx_buffer;
|
||||
union ixgbe_adv_tx_desc *tx_desc;
|
||||
unsigned int total_bytes = 0, total_packets = 0;
|
||||
unsigned int total_bytes = 0, total_packets = 0, total_ipsec = 0;
|
||||
unsigned int budget = q_vector->tx.work_limit;
|
||||
unsigned int i = tx_ring->next_to_clean;
|
||||
|
||||
|
@ -1202,6 +1202,8 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|||
/* update the statistics for this packet */
|
||||
total_bytes += tx_buffer->bytecount;
|
||||
total_packets += tx_buffer->gso_segs;
|
||||
if (tx_buffer->tx_flags & IXGBE_TX_FLAGS_IPSEC)
|
||||
total_ipsec++;
|
||||
|
||||
/* free the skb */
|
||||
if (ring_is_xdp(tx_ring))
|
||||
|
@ -1264,6 +1266,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|||
u64_stats_update_end(&tx_ring->syncp);
|
||||
q_vector->tx.total_bytes += total_bytes;
|
||||
q_vector->tx.total_packets += total_packets;
|
||||
adapter->tx_ipsec += total_ipsec;
|
||||
|
||||
if (check_for_tx_hang(tx_ring) && ixgbe_check_tx_hang(tx_ring)) {
|
||||
/* schedule immediate reset if we believe we hung */
|
||||
|
|
Loading…
Reference in New Issue