git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/txgbe: support ntuple filter add and delete
[dpdk.git]
/
drivers
/
net
/
dpaa2
/
dpaa2_ethdev.c
diff --git
a/drivers/net/dpaa2/dpaa2_ethdev.c
b/drivers/net/dpaa2/dpaa2_ethdev.c
index
7bd3208
..
ab68633
100644
(file)
--- a/
drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/
drivers/net/dpaa2/dpaa2_ethdev.c
@@
-65,6
+65,8
@@
static uint64_t dev_tx_offloads_nodis =
/* enable timestamp in mbuf */
bool dpaa2_enable_ts[RTE_MAX_ETHPORTS];
/* enable timestamp in mbuf */
bool dpaa2_enable_ts[RTE_MAX_ETHPORTS];
+uint64_t dpaa2_timestamp_rx_dynflag;
+int dpaa2_timestamp_dynfield_offset = -1;
struct rte_dpaa2_xstats_name_off {
char name[RTE_ETH_XSTATS_NAME_SIZE];
struct rte_dpaa2_xstats_name_off {
char name[RTE_ETH_XSTATS_NAME_SIZE];
@@
-91,10
+93,6
@@
static const struct rte_dpaa2_xstats_name_off dpaa2_xstats_strings[] = {
};
static const enum rte_filter_op dpaa2_supported_filter_ops[] = {
};
static const enum rte_filter_op dpaa2_supported_filter_ops[] = {
- RTE_ETH_FILTER_ADD,
- RTE_ETH_FILTER_DELETE,
- RTE_ETH_FILTER_UPDATE,
- RTE_ETH_FILTER_FLUSH,
RTE_ETH_FILTER_GET
};
RTE_ETH_FILTER_GET
};
@@
-587,7
+585,16
@@
dpaa2_eth_dev_configure(struct rte_eth_dev *dev)
#if !defined(RTE_LIBRTE_IEEE1588)
if (rx_offloads & DEV_RX_OFFLOAD_TIMESTAMP)
#endif
#if !defined(RTE_LIBRTE_IEEE1588)
if (rx_offloads & DEV_RX_OFFLOAD_TIMESTAMP)
#endif
+ {
+ ret = rte_mbuf_dyn_rx_timestamp_register(
+ &dpaa2_timestamp_dynfield_offset,
+ &dpaa2_timestamp_rx_dynflag);
+ if (ret != 0) {
+ DPAA2_PMD_ERR("Error to register timestamp field/flag");
+ return -rte_errno;
+ }
dpaa2_enable_ts[dev->data->port_id] = true;
dpaa2_enable_ts[dev->data->port_id] = true;
+ }
if (tx_offloads & DEV_TX_OFFLOAD_IPV4_CKSUM)
tx_l3_csum_offload = true;
if (tx_offloads & DEV_TX_OFFLOAD_IPV4_CKSUM)
tx_l3_csum_offload = true;
@@
-1195,7
+1202,7
@@
dpaa2_dev_start(struct rte_eth_dev *dev)
* This routine disables all traffic on the adapter by issuing a
* global reset on the MAC.
*/
* This routine disables all traffic on the adapter by issuing a
* global reset on the MAC.
*/
-static
void
+static
int
dpaa2_dev_stop(struct rte_eth_dev *dev)
{
struct dpaa2_dev_priv *priv = dev->data->dev_private;
dpaa2_dev_stop(struct rte_eth_dev *dev)
{
struct dpaa2_dev_priv *priv = dev->data->dev_private;
@@
-1227,12
+1234,14
@@
dpaa2_dev_stop(struct rte_eth_dev *dev)
if (ret) {
DPAA2_PMD_ERR("Failure (ret %d) in disabling dpni %d dev",
ret, priv->hw_id);
if (ret) {
DPAA2_PMD_ERR("Failure (ret %d) in disabling dpni %d dev",
ret, priv->hw_id);
- return;
+ return
ret
;
}
/* clear the recorded link status */
memset(&link, 0, sizeof(link));
rte_eth_linkstatus_set(dev, &link);
}
/* clear the recorded link status */
memset(&link, 0, sizeof(link));
rte_eth_linkstatus_set(dev, &link);
+
+ return 0;
}
static int
}
static int
@@
-1284,10
+1293,6
@@
dpaa2_dev_close(struct rte_eth_dev *dev)
if (priv->extract.qos_extract_param)
rte_free((void *)(size_t)priv->extract.qos_extract_param);
if (priv->extract.qos_extract_param)
rte_free((void *)(size_t)priv->extract.qos_extract_param);
- dev->dev_ops = NULL;
- dev->rx_pkt_burst = NULL;
- dev->tx_pkt_burst = NULL;
-
DPAA2_PMD_INFO("%s: netdev deleted", dev->data->name);
return 0;
}
DPAA2_PMD_INFO("%s: netdev deleted", dev->data->name);
return 0;
}
@@
-2793,10
+2798,11
@@
rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv,
dpaa2_dev->eth_dev = eth_dev;
eth_dev->data->rx_mbuf_alloc_failed = 0;
dpaa2_dev->eth_dev = eth_dev;
eth_dev->data->rx_mbuf_alloc_failed = 0;
- eth_dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE;
if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC)
eth_dev->data->dev_flags |= RTE_ETH_DEV_INTR_LSC;
if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC)
eth_dev->data->dev_flags |= RTE_ETH_DEV_INTR_LSC;
+ eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
+
/* Invoke PMD device initialization function */
diag = dpaa2_dev_init(eth_dev);
if (diag == 0) {
/* Invoke PMD device initialization function */
diag = dpaa2_dev_init(eth_dev);
if (diag == 0) {