diff --git a/src/net/ipv4.c b/src/net/ipv4.c index c5cfd134..9c5cf2eb 100644 --- a/src/net/ipv4.c +++ b/src/net/ipv4.c @@ -16,6 +16,7 @@ #include #include #include +#include /** @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: