2
0
mirror of https://github.com/xcat2/xNBA.git synced 2024-11-25 19:08:35 +00:00

[ipv4] Profile transmit and receive datapaths

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2014-04-28 12:30:09 +01:00
parent 6d4deeeb6c
commit f65c81b1d0

View File

@ -16,6 +16,7 @@
#include <ipxe/settings.h>
#include <ipxe/fragment.h>
#include <ipxe/ipstat.h>
#include <ipxe/profile.h>
/** @file
*
@ -41,6 +42,12 @@ ipv4_stats_family __ip_statistics_family ( IP_STATISTICS_IPV4 ) = {
.stats = &ipv4_stats,
};
/** Transmit profiler */
static struct profiler ipv4_tx_profiler __profiler = { .name = "ipv4.tx" };
/** Receive profiler */
static struct profiler ipv4_rx_profiler __profiler = { .name = "ipv4.rx" };
/**
* Add IPv4 minirouting table entry
*
@ -263,6 +270,9 @@ static int ipv4_tx ( struct io_buffer *iobuf,
const void *ll_dest;
int rc;
/* Start profiling */
profile_start ( &ipv4_tx_profiler );
/* Update statistics */
ipv4_stats.out_requests++;
@ -358,6 +368,7 @@ static int ipv4_tx ( struct io_buffer *iobuf,
}
}
profile_stop ( &ipv4_tx_profiler );
return 0;
err:
@ -430,6 +441,9 @@ static int ipv4_rx ( struct io_buffer *iobuf,
uint16_t pshdr_csum;
int rc;
/* Start profiling */
profile_start ( &ipv4_rx_profiler );
/* Update statistics */
ipv4_stats.in_receives++;
ipv4_stats.in_octets += iob_len ( iobuf );
@ -528,6 +542,7 @@ static int ipv4_rx ( struct io_buffer *iobuf,
return rc;
}
profile_stop ( &ipv4_rx_profiler );
return 0;
err_header: