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/sfc: support flow API filters
[dpdk.git]
/
drivers
/
net
/
sfc
/
sfc_ethdev.c
diff --git
a/drivers/net/sfc/sfc_ethdev.c
b/drivers/net/sfc/sfc_ethdev.c
index
e696dd2
..
5297159
100644
(file)
--- a/
drivers/net/sfc/sfc_ethdev.c
+++ b/
drivers/net/sfc/sfc_ethdev.c
@@
-40,7
+40,7
@@
#include "sfc_ev.h"
#include "sfc_rx.h"
#include "sfc_tx.h"
#include "sfc_ev.h"
#include "sfc_rx.h"
#include "sfc_tx.h"
-
+#include "sfc_flow.h"
static void
sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
static void
sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@
-1210,8
+1210,8
@@
bad_reta_entry:
static int
sfc_dev_filter_ctrl(struct rte_eth_dev *dev, enum rte_filter_type filter_type,
static int
sfc_dev_filter_ctrl(struct rte_eth_dev *dev, enum rte_filter_type filter_type,
-
__rte_unused
enum rte_filter_op filter_op,
-
__rte_unused
void *arg)
+ enum rte_filter_op filter_op,
+ void *arg)
{
struct sfc_adapter *sa = dev->data->dev_private;
int rc = ENOTSUP;
{
struct sfc_adapter *sa = dev->data->dev_private;
int rc = ENOTSUP;
@@
-1246,6
+1246,14
@@
sfc_dev_filter_ctrl(struct rte_eth_dev *dev, enum rte_filter_type filter_type,
case RTE_ETH_FILTER_HASH:
sfc_err(sa, "Hash filters not supported");
break;
case RTE_ETH_FILTER_HASH:
sfc_err(sa, "Hash filters not supported");
break;
+ case RTE_ETH_FILTER_GENERIC:
+ if (filter_op != RTE_ETH_FILTER_GET) {
+ rc = EINVAL;
+ } else {
+ *(const void **)arg = &sfc_flow_ops;
+ rc = 0;
+ }
+ break;
default:
sfc_err(sa, "Unknown filter type %u", filter_type);
break;
default:
sfc_err(sa, "Unknown filter type %u", filter_type);
break;