#define NB_ETHPORTS_USED (1)
#define NB_SOCKETS (2)
#define MEMPOOL_CACHE_SIZE 250
-#define MBUF_SIZE (2048 + sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM)
#define MAX_PKT_BURST (32)
#define RTE_TEST_RX_DESC_DEFAULT (128)
#define RTE_TEST_TX_DESC_DEFAULT (512)
initialize_eth_header(&pkt_eth_hdr,
(struct ether_addr *)src_mac,
- (struct ether_addr *)dst_mac, 1, 0, 0);
- pkt_eth_hdr.ether_type = rte_cpu_to_be_16(ETHER_TYPE_IPv4);
+ (struct ether_addr *)dst_mac, ETHER_TYPE_IPv4, 0, 0);
pktlen = initialize_ipv4_header(&pkt_ipv4_hdr,
IPV4_ADDR(10, 0, 0, 1),
if (mbufpool[socketid] == NULL) {
snprintf(s, sizeof(s), "mbuf_pool_%d", socketid);
mbufpool[socketid] =
- rte_mempool_create(s, nb_mbuf, MBUF_SIZE,
- MEMPOOL_CACHE_SIZE,
- sizeof(struct rte_pktmbuf_pool_private),
- rte_pktmbuf_pool_init, NULL,
- rte_pktmbuf_init, NULL,
- socketid, 0);
+ rte_pktmbuf_pool_create(s, nb_mbuf,
+ MEMPOOL_CACHE_SIZE, 0,
+ RTE_MBUF_DEFAULT_BUF_SIZE, socketid);
if (mbufpool[socketid] == NULL)
rte_exit(EXIT_FAILURE,
"Cannot init mbuf pool on socket %d\n",
printf(" RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes: "
"%-"PRIu64"\n",
stats.ipackets, stats.imissed, stats.ibytes);
- printf(" RX-badcrc: %-10"PRIu64" RX-badlen: %-10"PRIu64" RX-errors: "
- "%-"PRIu64"\n",
- stats.ibadcrc, stats.ibadlen, stats.ierrors);
- printf(" RX-nombuf: %-10"PRIu64"\n",
- stats.rx_nombuf);
+ printf(" RX-errors: %-10"PRIu64" RX-nombuf: %-10"PRIu64"\n",
+ stats.ierrors, stats.rx_nombuf);
printf(" TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes: "
"%-"PRIu64"\n",
stats.opackets, stats.oerrors, stats.obytes);
rte_free(pkts_burst);
- return diff_tsc / total;
+ if (total > 0)
+ return diff_tsc / total;
+ else
+ return -1;
}
static int
/* wait for polling finished */
diff_tsc = rte_eal_wait_lcore(lcore);
- if (diff_tsc < 0)
+ if (diff_tsc < 0) {
+ printf("exec_burst: Failed to measure cycles per packet\n");
return -1;
+ }
printf("Result: %d cycles per packet\n", diff_tsc);
return -1;
} else if (sc_flag == SC_BURST_POLL_FIRST ||
sc_flag == SC_BURST_XMIT_FIRST)
- exec_burst(sc_flag, slave_id);
+ if (exec_burst(sc_flag, slave_id) < 0)
+ return -1;
/* port tear down */
for (portid = 0; portid < nb_ports; portid++) {
port_conf.rxmode.enable_scatter = 0;
return 0;
} else if (!strcmp(mode, "scalar")) {
- /* bulk alloc rx, simple tx */
- tx_conf.txq_flags = 0xf01;
- tx_conf.tx_rs_thresh = 128;
- tx_conf.tx_free_thresh = 128;
+ /* bulk alloc rx, full-featured tx */
+ tx_conf.txq_flags = 0;
+ tx_conf.tx_rs_thresh = 32;
+ tx_conf.tx_free_thresh = 32;
port_conf.rxmode.hw_ip_checksum = 1;
port_conf.rxmode.enable_scatter = 0;
return 0;