* |WARNING| pw108698 [PATCH] net/pcap: add snaplen argument
@ 2022-03-13 1:48 dpdklab
0 siblings, 0 replies; only message in thread
From: dpdklab @ 2022-03-13 1:48 UTC (permalink / raw)
To: test-report; +Cc: dpdk-test-reports
[-- Attachment #1: Type: text/plain, Size: 13167 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/108698
_apply patch failure_
Submitter: Tianli Lai <laitianli@tom.com>
Date: Sunday, March 13 2022 09:26:59
Applied on: CommitID:c251b6a688bb0aba7d7a46154a3b238916ebd1a0
Apply patch set 108698 failed:
Checking patch doc/guides/nics/pcap_ring.rst...
Checking patch drivers/net/pcap/pcap_ethdev.c...
error: while searching for:
int single_iface;
int phy_mac;
unsigned int infinite_rx;
};
struct pmd_process_private {
pcap_t *rx_pcap[RTE_PMD_PCAP_MAX_QUEUES];
pcap_t *tx_pcap[RTE_PMD_PCAP_MAX_QUEUES];
pcap_dumper_t *tx_dumper[RTE_PMD_PCAP_MAX_QUEUES];
int snaplen;
};
struct pmd_devargs {
error: patch failed: drivers/net/pcap/pcap_ethdev.c:95
error: while searching for:
const char *type;
} queue[RTE_PMD_PCAP_MAX_QUEUES];
int phy_mac;
int snaplen;
};
struct pmd_devargs_all {
error: patch failed: drivers/net/pcap/pcap_ethdev.c:113
Hunk #3 succeeded at 121 (offset -3 lines).
Hunk #4 succeeded at 392 (offset -4 lines).
error: while searching for:
}
calculate_timestamp(&header.ts);
header.len = len;
header.caplen = caplen;
if (pp->snaplen >= RTE_PCAP_MIN_SNAPLEN) {
if ((typeof(pp->snaplen))header.caplen > pp->snaplen) {
header.caplen = pp->snaplen;
caplen = pp->snaplen;
}
}
/* rte_pktmbuf_read() returns a pointer to the data directly
* in the mbuf (when the mbuf is contiguous) or, otherwise,
* a pointer to temp_data after copying into it.
error: patch failed: drivers/net/pcap/pcap_ethdev.c:407
error: while searching for:
* pcap_open_live wrapper function
*/
static inline int
open_iface_live(const char *iface, pcap_t **pcap, int snaplen) {
int caplen = RTE_ETH_PCAP_SNAPLEN;
if (snaplen >= RTE_PCAP_MIN_SNAPLEN)
caplen = snaplen;
*pcap = pcap_open_live(iface, caplen,
RTE_ETH_PCAP_PROMISC, RTE_ETH_PCAP_TIMEOUT, errbuf);
if (*pcap == NULL) {
error: patch failed: drivers/net/pcap/pcap_ethdev.c:523
error: while searching for:
}
static int
open_single_iface(const char *iface, pcap_t **pcap, int snaplen)
{
if (open_iface_live(iface, pcap, snaplen) < 0) {
PMD_LOG(ERR, "Couldn't open interface %s", iface);
return -1;
}
error: patch failed: drivers/net/pcap/pcap_ethdev.c:539
error: while searching for:
open_single_tx_pcap(const char *pcap_filename, pcap_dumper_t **dumper, int snaplen)
{
pcap_t *tx_pcap;
int caplen = RTE_ETH_PCAP_SNAPSHOT_LEN;
if (snaplen >= RTE_PCAP_MIN_SNAPLEN)
caplen = snaplen;
/*
* We need to create a dummy empty pcap_t to use it
* with pcap_dump_open(). We create big enough an Ethernet
* pcap holder.
*/
tx_pcap = pcap_open_dead_with_tstamp_precision(DLT_EN10MB,
caplen, PCAP_TSTAMP_PRECISION_NANO);
if (tx_pcap == NULL) {
PMD_LOG(ERR, "Couldn't create dead pcap");
return -1;
error: patch failed: drivers/net/pcap/pcap_ethdev.c:553
error: while searching for:
if (!pp->tx_pcap[0] &&
strcmp(tx->type, ETH_PCAP_IFACE_ARG) == 0) {
if (open_single_iface(tx->name, &pp->tx_pcap[0], pp->snaplen) < 0)
return -1;
pp->rx_pcap[0] = pp->tx_pcap[0];
}
error: patch failed: drivers/net/pcap/pcap_ethdev.c:628
error: while searching for:
if (!pp->tx_dumper[i] &&
strcmp(tx->type, ETH_PCAP_TX_PCAP_ARG) == 0) {
if (open_single_tx_pcap(tx->name,
&pp->tx_dumper[i], pp->snaplen) < 0)
return -1;
} else if (!pp->tx_pcap[i] &&
strcmp(tx->type, ETH_PCAP_TX_IFACE_ARG) == 0) {
if (open_single_iface(tx->name, &pp->tx_pcap[i], pp->snaplen) < 0)
return -1;
}
}
error: patch failed: drivers/net/pcap/pcap_ethdev.c:643
error: while searching for:
if (open_single_rx_pcap(rx->name, &pp->rx_pcap[i]) < 0)
return -1;
} else if (strcmp(rx->type, ETH_PCAP_RX_IFACE_ARG) == 0) {
if (open_single_iface(rx->name, &pp->rx_pcap[i], pp->snaplen) < 0)
return -1;
}
}
error: patch failed: drivers/net/pcap/pcap_ethdev.c:663
error: while searching for:
struct pmd_devargs *dumpers = extra_args;
pcap_dumper_t *dumper;
if (open_single_tx_pcap(pcap_filename, &dumper, dumpers->snaplen) < 0)
return -1;
if (add_queue(dumpers, pcap_filename, key, NULL, dumper) < 0) {
error: patch failed: drivers/net/pcap/pcap_ethdev.c:1071
error: while searching for:
}
static int
parse_uint_value(const char *key, const char *value, void *extra_args)
{
(void)key;
char *end;
int *val = extra_args;
*val = strtoul(value, &end, 10);
error: patch failed: drivers/net/pcap/pcap_ethdev.c:1083
error: while searching for:
struct pmd_devargs *tx = extra_args;
pcap_t *pcap = NULL;
if (open_single_iface(iface, &pcap, tx->snaplen) < 0)
return -1;
tx->queue[0].pcap = pcap;
error: patch failed: drivers/net/pcap/pcap_ethdev.c:1102
error: while searching for:
struct pmd_devargs *pmd = extra_args;
pcap_t *pcap = NULL;
if (open_single_iface(iface, &pcap, pmd->snaplen) < 0)
return -1;
if (add_queue(pmd, iface, key, pcap, NULL) < 0) {
pcap_close(pcap);
error: patch failed: drivers/net/pcap/pcap_ethdev.c:1134
Hunk #16 succeeded at 1335 (offset -15 lines).
error: while searching for:
struct rte_eth_dev *eth_dev = NULL;
struct pmd_internals *internal;
int ret = 0;
int snaplen = 0;
struct pmd_devargs_all devargs_all = {
.single_iface = 0,
.is_tx_pcap = 0,
.is_tx_iface = 0,
.infinite_rx = 0,
};
name = rte_vdev_device_name(dev);
PMD_LOG(INFO, "Initializing pmd_pcap for %s", name);
error: patch failed: drivers/net/pcap/pcap_ethdev.c:1429
error: while searching for:
if (rte_kvargs_count(kvlist, ETH_PCAP_SNAPLEN_ARG) == 1) {
ret = rte_kvargs_process(kvlist, ETH_PCAP_SNAPLEN_ARG,
&parse_uint_value, &snaplen);
dumpers.snaplen = snaplen;
}
/*
error: patch failed: drivers/net/pcap/pcap_ethdev.c:1473
error: while searching for:
pp->tx_dumper[i] = dumpers.queue[i].dumper;
pp->tx_pcap[i] = dumpers.queue[i].pcap;
}
pp->snaplen = snaplen;
eth_dev->process_private = pp;
eth_dev->rx_pkt_burst = eth_pcap_rx;
if (devargs_all.is_tx_pcap)
error: patch failed: drivers/net/pcap/pcap_ethdev.c:1626
Applied patch doc/guides/nics/pcap_ring.rst cleanly.
Applying patch drivers/net/pcap/pcap_ethdev.c with 16 rejects...
Rejected hunk #1.
Rejected hunk #2.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Rejected hunk #5.
Rejected hunk #6.
Rejected hunk #7.
Rejected hunk #8.
Rejected hunk #9.
Rejected hunk #10.
Rejected hunk #11.
Rejected hunk #12.
Rejected hunk #13.
Rejected hunk #14.
Rejected hunk #15.
Hunk #16 applied cleanly.
Rejected hunk #17.
Rejected hunk #18.
Rejected hunk #19.
diff a/drivers/net/pcap/pcap_ethdev.c b/drivers/net/pcap/pcap_ethdev.c (rejected hunks)
@@ -95,13 +95,13 @@ struct pmd_internals {
int single_iface;
int phy_mac;
unsigned int infinite_rx;
+ int snaplen;
};
struct pmd_process_private {
pcap_t *rx_pcap[RTE_PMD_PCAP_MAX_QUEUES];
pcap_t *tx_pcap[RTE_PMD_PCAP_MAX_QUEUES];
pcap_dumper_t *tx_dumper[RTE_PMD_PCAP_MAX_QUEUES];
- int snaplen;
};
struct pmd_devargs {
@@ -113,7 +113,6 @@ struct pmd_devargs {
const char *type;
} queue[RTE_PMD_PCAP_MAX_QUEUES];
int phy_mac;
- int snaplen;
};
struct pmd_devargs_all {
@@ -407,14 +416,10 @@ eth_pcap_tx_dumper(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
}
calculate_timestamp(&header.ts);
+ if ((typeof(internals->snaplen))caplen > internals->snaplen)
+ caplen = internals->snaplen;
header.len = len;
header.caplen = caplen;
- if (pp->snaplen >= RTE_PCAP_MIN_SNAPLEN) {
- if ((typeof(pp->snaplen))header.caplen > pp->snaplen) {
- header.caplen = pp->snaplen;
- caplen = pp->snaplen;
- }
- }
/* rte_pktmbuf_read() returns a pointer to the data directly
* in the mbuf (when the mbuf is contiguous) or, otherwise,
* a pointer to temp_data after copying into it.
@@ -523,11 +528,8 @@ eth_pcap_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
* pcap_open_live wrapper function
*/
static inline int
-open_iface_live(const char *iface, pcap_t **pcap, int snaplen) {
- int caplen = RTE_ETH_PCAP_SNAPLEN;
- if (snaplen >= RTE_PCAP_MIN_SNAPLEN)
- caplen = snaplen;
- *pcap = pcap_open_live(iface, caplen,
+open_iface_live(const char *iface, pcap_t **pcap) {
+ *pcap = pcap_open_live(iface, RTE_ETH_PCAP_SNAPLEN,
RTE_ETH_PCAP_PROMISC, RTE_ETH_PCAP_TIMEOUT, errbuf);
if (*pcap == NULL) {
@@ -539,9 +541,9 @@ open_iface_live(const char *iface, pcap_t **pcap, int snaplen) {
}
static int
-open_single_iface(const char *iface, pcap_t **pcap, int snaplen)
+open_single_iface(const char *iface, pcap_t **pcap)
{
- if (open_iface_live(iface, pcap, snaplen) < 0) {
+ if (open_iface_live(iface, pcap) < 0) {
PMD_LOG(ERR, "Couldn't open interface %s", iface);
return -1;
}
@@ -553,16 +555,14 @@ static int
open_single_tx_pcap(const char *pcap_filename, pcap_dumper_t **dumper, int snaplen)
{
pcap_t *tx_pcap;
- int caplen = RTE_ETH_PCAP_SNAPSHOT_LEN;
- if (snaplen >= RTE_PCAP_MIN_SNAPLEN)
- caplen = snaplen;
+
/*
* We need to create a dummy empty pcap_t to use it
* with pcap_dump_open(). We create big enough an Ethernet
* pcap holder.
*/
tx_pcap = pcap_open_dead_with_tstamp_precision(DLT_EN10MB,
- caplen, PCAP_TSTAMP_PRECISION_NANO);
+ snaplen, PCAP_TSTAMP_PRECISION_NANO);
if (tx_pcap == NULL) {
PMD_LOG(ERR, "Couldn't create dead pcap");
return -1;
@@ -628,7 +628,7 @@ eth_dev_start(struct rte_eth_dev *dev)
if (!pp->tx_pcap[0] &&
strcmp(tx->type, ETH_PCAP_IFACE_ARG) == 0) {
- if (open_single_iface(tx->name, &pp->tx_pcap[0], pp->snaplen) < 0)
+ if (open_single_iface(tx->name, &pp->tx_pcap[0]) < 0)
return -1;
pp->rx_pcap[0] = pp->tx_pcap[0];
}
@@ -643,11 +643,11 @@ eth_dev_start(struct rte_eth_dev *dev)
if (!pp->tx_dumper[i] &&
strcmp(tx->type, ETH_PCAP_TX_PCAP_ARG) == 0) {
if (open_single_tx_pcap(tx->name,
- &pp->tx_dumper[i], pp->snaplen) < 0)
+ &pp->tx_dumper[i], internals->snaplen) < 0)
return -1;
} else if (!pp->tx_pcap[i] &&
strcmp(tx->type, ETH_PCAP_TX_IFACE_ARG) == 0) {
- if (open_single_iface(tx->name, &pp->tx_pcap[i], pp->snaplen) < 0)
+ if (open_single_iface(tx->name, &pp->tx_pcap[i]) < 0)
return -1;
}
}
@@ -663,7 +663,7 @@ eth_dev_start(struct rte_eth_dev *dev)
if (open_single_rx_pcap(rx->name, &pp->rx_pcap[i]) < 0)
return -1;
} else if (strcmp(rx->type, ETH_PCAP_RX_IFACE_ARG) == 0) {
- if (open_single_iface(rx->name, &pp->rx_pcap[i], pp->snaplen) < 0)
+ if (open_single_iface(rx->name, &pp->rx_pcap[i]) < 0)
return -1;
}
}
@@ -1071,7 +1071,7 @@ open_tx_pcap(const char *key, const char *value, void *extra_args)
struct pmd_devargs *dumpers = extra_args;
pcap_dumper_t *dumper;
- if (open_single_tx_pcap(pcap_filename, &dumper, dumpers->snaplen) < 0)
+ if (open_single_tx_pcap(pcap_filename, &dumper, devargs_all.snaplen) < 0)
return -1;
if (add_queue(dumpers, pcap_filename, key, NULL, dumper) < 0) {
@@ -1083,9 +1083,8 @@ open_tx_pcap(const char *key, const char *value, void *extra_args)
}
static int
-parse_uint_value(const char *key, const char *value, void *extra_args)
+parse_uint_value(const char *key __rte_unused, const char *value, void *extra_args)
{
- (void)key;
char *end;
int *val = extra_args;
*val = strtoul(value, &end, 10);
@@ -1102,7 +1101,7 @@ open_rx_tx_iface(const char *key, const char *value, void *extra_args)
struct pmd_devargs *tx = extra_args;
pcap_t *pcap = NULL;
- if (open_single_iface(iface, &pcap, tx->snaplen) < 0)
+ if (open_single_iface(iface, &pcap) < 0)
return -1;
tx->queue[0].pcap = pcap;
@@ -1134,7 +1133,7 @@ open_iface(const char *key, const char *value, void *extra_args)
struct pmd_devargs *pmd = extra_args;
pcap_t *pcap = NULL;
- if (open_single_iface(iface, &pcap, pmd->snaplen) < 0)
+ if (open_single_iface(iface, &pcap) < 0)
return -1;
if (add_queue(pmd, iface, key, pcap, NULL) < 0) {
pcap_close(pcap);
@@ -1429,14 +1428,6 @@ pmd_pcap_probe(struct rte_vdev_device *dev)
struct rte_eth_dev *eth_dev = NULL;
struct pmd_internals *internal;
int ret = 0;
- int snaplen = 0;
-
- struct pmd_devargs_all devargs_all = {
- .single_iface = 0,
- .is_tx_pcap = 0,
- .is_tx_iface = 0,
- .infinite_rx = 0,
- };
name = rte_vdev_device_name(dev);
PMD_LOG(INFO, "Initializing pmd_pcap for %s", name);
@@ -1473,8 +1464,12 @@ pmd_pcap_probe(struct rte_vdev_device *dev)
if (rte_kvargs_count(kvlist, ETH_PCAP_SNAPLEN_ARG) == 1) {
ret = rte_kvargs_process(kvlist, ETH_PCAP_SNAPLEN_ARG,
- &parse_uint_value, &snaplen);
- dumpers.snaplen = snaplen;
+ &parse_uint_value, &devargs_all.snaplen);
+ if (ret < 0)
+ goto free_kvlist;
+ if (devargs_all.snaplen < RTE_PCAP_MIN_SNAPLEN ||
+ devargs_all.snaplen >= RTE_ETH_PCAP_SNAPSHOT_LEN)
+ devargs_all.snaplen = RTE_PCAP_MIN_SNAPLEN;
}
/*
@@ -1626,7 +1621,7 @@ pmd_pcap_probe(struct rte_vdev_device *dev)
pp->tx_dumper[i] = dumpers.queue[i].dumper;
pp->tx_pcap[i] = dumpers.queue[i].pcap;
}
- pp->snaplen = snaplen;
+ internal->snaplen = devargs_all.snaplen;
eth_dev->process_private = pp;
eth_dev->rx_pkt_burst = eth_pcap_rx;
if (devargs_all.is_tx_pcap)
https://lab.dpdk.org/results/dashboard/patchsets/21480/
UNH-IOL DPDK Community Lab
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-03-13 1:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-13 1:48 |WARNING| pw108698 [PATCH] net/pcap: add snaplen argument dpdklab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).