-p PORTMASK -P -u PORTMASK -j FRAMESIZE
-l -w REPLAY_WINDOW_SIZE -e -a
-c SAD_CACHE_SIZE
+ -t STATISTICS_INTERVAL
-s NUMBER_OF_MBUFS_IN_PACKET_POOL
-f CONFIG_FILE_PATH
--config (port,queue,lcore)[,(port,queue,lcore)]
Zero value disables cache.
Default value: 128.
+* ``-t``: specifies the statistics screen update interval in seconds. If set
+ to zero or omitted statistics screen is disabled.
+ Default value: 0.
+
* ``-s``: sets number of mbufs in packet pool, if not provided number of mbufs
will be calculated based on number of cores, eth ports and crypto queues.
static uint32_t frame_buf_size = RTE_MBUF_DEFAULT_BUF_SIZE;
static uint32_t mtu_size = RTE_ETHER_MTU;
static uint64_t frag_ttl_ns = MAX_FRAG_TTL_NS;
+static uint32_t stats_interval;
/* application wide librte_ipsec/SA parameters */
struct app_sa_prm app_sa_prm = {
}
}
-#if (STATS_INTERVAL > 0)
struct ipsec_core_statistics core_statistics[RTE_MAX_LCORE];
total_packets_dropped);
printf("\n====================================================\n");
- rte_eal_alarm_set(STATS_INTERVAL * US_PER_S, print_stats_cb, NULL);
+ rte_eal_alarm_set(stats_interval * US_PER_S, print_stats_cb, NULL);
}
-#endif /* STATS_INTERVAL */
static inline void
prepare_one_packet(struct rte_mbuf *pkt, struct ipsec_traffic *t)
" [-e]"
" [-a]"
" [-c]"
+ " [-t STATS_INTERVAL]"
" [-s NUMBER_OF_MBUFS_IN_PKT_POOL]"
" -f CONFIG_FILE"
" --config (port,queue,lcore)[,(port,queue,lcore)]"
" -a enables SA SQN atomic behaviour\n"
" -c specifies inbound SAD cache size,\n"
" zero value disables the cache (default value: 128)\n"
+ " -t specifies statistics screen update interval,\n"
+ " zero disables statistics screen (default value: 0)\n"
" -s number of mbufs in packet pool, if not specified number\n"
" of mbufs will be calculated based on number of cores,\n"
" ports and crypto queues\n"
argvopt = argv;
- while ((opt = getopt_long(argc, argvopt, "aelp:Pu:f:j:w:c:s:",
+ while ((opt = getopt_long(argc, argvopt, "aelp:Pu:f:j:w:c:t:s:",
lgopts, &option_index)) != EOF) {
switch (opt) {
}
app_sa_prm.cache_sz = ret;
break;
+ case 't':
+ ret = parse_decimal(optarg);
+ if (ret < 0) {
+ printf("Invalid interval value: %s\n", optarg);
+ print_usage(prgname);
+ return -1;
+ }
+ stats_interval = ret;
+ break;
case CMD_LINE_OPT_CONFIG_NUM:
ret = parse_config(optarg);
if (ret) {
check_all_ports_link_status(enabled_port_mask);
-#if (STATS_INTERVAL > 0)
- rte_eal_alarm_set(STATS_INTERVAL * US_PER_S, print_stats_cb, NULL);
-#else
- RTE_LOG(INFO, IPSEC, "Stats display disabled\n");
-#endif /* STATS_INTERVAL */
+ if (stats_interval > 0)
+ rte_eal_alarm_set(stats_interval * US_PER_S,
+ print_stats_cb, NULL);
+ else
+ RTE_LOG(INFO, IPSEC, "Stats display disabled\n");
/* launch per-lcore init on every lcore */
rte_eal_mp_remote_launch(ipsec_launch_one_lcore, eh_conf, CALL_MAIN);
#include <stdbool.h>
-#ifndef STATS_INTERVAL
-#define STATS_INTERVAL 0
-#endif
#define NB_SOCKETS 4
uint64_t src, dst;
};
-#if (STATS_INTERVAL > 0)
struct ipsec_core_statistics {
uint64_t tx;
uint64_t rx;
} __rte_cache_aligned;
extern struct ipsec_core_statistics core_statistics[RTE_MAX_LCORE];
-#endif /* STATS_INTERVAL */
extern struct ethaddr_info ethaddr_tbl[RTE_MAX_ETHPORTS];
static inline void
core_stats_update_rx(int n)
{
-#if (STATS_INTERVAL > 0)
int lcore_id = rte_lcore_id();
core_statistics[lcore_id].rx += n;
core_statistics[lcore_id].rx_call++;
if (n == MAX_PKT_BURST)
core_statistics[lcore_id].burst_rx += n;
-#else
- RTE_SET_USED(n);
-#endif /* STATS_INTERVAL */
}
static inline void
core_stats_update_tx(int n)
{
-#if (STATS_INTERVAL > 0)
int lcore_id = rte_lcore_id();
core_statistics[lcore_id].tx += n;
core_statistics[lcore_id].tx_call++;
-#else
- RTE_SET_USED(n);
-#endif /* STATS_INTERVAL */
}
static inline void
core_stats_update_drop(int n)
{
-#if (STATS_INTERVAL > 0)
int lcore_id = rte_lcore_id();
core_statistics[lcore_id].dropped += n;
-#else
- RTE_SET_USED(n);
-#endif /* STATS_INTERVAL */
}
/* helper routine to free bulk of packets */