/*
* Read packet from RX queues
*/
for (i = 0; i < qconf->n_rx_port; i++) {
portid = qconf->rx_port_list[i];
nb_rx = rte_eth_rx_burst(portid, 0,
mbufs, MAX_PKT_BURST);
port_statistics[portid].rx += nb_rx;
char tmp_buf[64];
for (j = 0; j < nb_rx; j++) {
struct rte_mbuf *pkt = mbufs[i];
eth_hdr = rte_pktmbuf_mtod(pkt,struct ether_hdr *);
ipv4_hdr = rte_pktmbuf_mtod_offset(pkt, struct ipv4_hdr *,sizeof(struct ether_hdr));
uint32_t_to_char(rte_bswap32(ipv4_hdr->src_addr), &a, &b, &c, &d);
printf("Packet Src:%hhu.%hhu.%hhu.%hhu \n", a, b, c, d);
uint32_t_to_char(rte_bswap32(ipv4_hdr->dst_addr), &a, &b, &c, &d);
printf("Dst:%hhu.%hhu.%hhu.%hhu \n", a, b, c, d);
printf("Src port:%hu,Dst port:%hu \n",
rte_bswap16(*(uint16_t *)(ipv4_hdr + 1)),
rte_bswap16(*((uint16_t *)(ipv4_hdr + 1) + 1)));
printf("total length: %d\n",ipv4_hdr->total_length);
printf("=================================================================\n");
rte_pktmbuf_free(pkt);
}
}