net/pcap: switch Rx timestamp to dynamic mbuf field
The mbuf timestamp is moved to a dynamic field in order to allow removal of the deprecated static field. The related mbuf flag is also replaced. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
parent
af50731085
commit
d23d73d088
@ -51,6 +51,9 @@ static uint64_t start_cycles;
|
||||
static uint64_t hz;
|
||||
static uint8_t iface_idx;
|
||||
|
||||
static uint64_t timestamp_rx_dynflag;
|
||||
static int timestamp_dynfield_offset = -1;
|
||||
|
||||
struct queue_stat {
|
||||
volatile unsigned long pkts;
|
||||
volatile unsigned long bytes;
|
||||
@ -265,9 +268,11 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
|
||||
}
|
||||
|
||||
mbuf->pkt_len = (uint16_t)header.caplen;
|
||||
mbuf->timestamp = (uint64_t)header.ts.tv_sec * 1000000
|
||||
+ header.ts.tv_usec;
|
||||
mbuf->ol_flags |= PKT_RX_TIMESTAMP;
|
||||
*RTE_MBUF_DYNFIELD(mbuf, timestamp_dynfield_offset,
|
||||
rte_mbuf_timestamp_t *) =
|
||||
(uint64_t)header.ts.tv_sec * 1000000 +
|
||||
header.ts.tv_usec;
|
||||
mbuf->ol_flags |= timestamp_rx_dynflag;
|
||||
mbuf->port = pcap_q->port_id;
|
||||
bufs[num_rx] = mbuf;
|
||||
num_rx++;
|
||||
@ -656,6 +661,15 @@ eth_dev_stop(struct rte_eth_dev *dev)
|
||||
static int
|
||||
eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = rte_mbuf_dyn_rx_timestamp_register(×tamp_dynfield_offset,
|
||||
×tamp_rx_dynflag);
|
||||
if (ret != 0) {
|
||||
PMD_LOG(ERR, "Failed to register Rx timestamp field/flag");
|
||||
return -rte_errno;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user