diff --git a/lib/librte_pmd_pcap/rte_eth_pcap.c b/lib/librte_pmd_pcap/rte_eth_pcap.c index e988b4c097..30d444ff25 100644 --- a/lib/librte_pmd_pcap/rte_eth_pcap.c +++ b/lib/librte_pmd_pcap/rte_eth_pcap.c @@ -213,6 +213,7 @@ eth_pcap_tx_dumper(void *queue, return num_tx; } +#ifdef PCAP_CAN_SEND /* * Callback to handle sending packets through a real NIC. */ @@ -243,6 +244,17 @@ eth_pcap_tx(void *queue, tx_queue->err_pkts += nb_pkts - num_tx; return num_tx; } +#else +static uint16_t +eth_pcap_tx(__rte_unused void *queue, + __rte_unused struct rte_mbuf **bufs, + __rte_unused uint16_t nb_pkts) +{ + RTE_LOG(ERR, PMD, "pcap library cannot send packets, please rebuild " + "with a more up to date libpcap\n"); + return -1; +} +#endif static int eth_dev_start(struct rte_eth_dev *dev) diff --git a/lib/librte_pmd_pcap/rte_eth_pcap.h b/lib/librte_pmd_pcap/rte_eth_pcap.h index 1cce7e0751..c45f4a1736 100644 --- a/lib/librte_pmd_pcap/rte_eth_pcap.h +++ b/lib/librte_pmd_pcap/rte_eth_pcap.h @@ -39,6 +39,12 @@ extern "C" { #endif #include +#ifdef pcap_sendpacket +#define PCAP_CAN_SEND +#else +#undef PCAP_CAN_SEND +#endif + #define RTE_ETH_PCAP_PARAM_NAME "eth_pcap" int rte_eth_from_pcaps(pcap_t * const rx_queues[],