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/enic: fix freeing memory for descriptor ring
[dpdk.git]
/
drivers
/
net
/
mlx5
/
mlx5_rxmode.c
diff --git
a/drivers/net/mlx5/mlx5_rxmode.c
b/drivers/net/mlx5/mlx5_rxmode.c
index
2bc005e
..
173e6e8
100644
(file)
--- a/
drivers/net/mlx5/mlx5_rxmode.c
+++ b/
drivers/net/mlx5/mlx5_rxmode.c
@@
-38,20
+38,20
@@
/* Verbs header. */
/* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
#ifdef PEDANTIC
/* Verbs header. */
/* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
#ifdef PEDANTIC
-#pragma GCC diagnostic ignored "-pedantic"
+#pragma GCC diagnostic ignored "-
W
pedantic"
#endif
#include <infiniband/verbs.h>
#ifdef PEDANTIC
#endif
#include <infiniband/verbs.h>
#ifdef PEDANTIC
-#pragma GCC diagnostic error "-pedantic"
+#pragma GCC diagnostic error "-
W
pedantic"
#endif
/* DPDK headers don't like -pedantic. */
#ifdef PEDANTIC
#endif
/* DPDK headers don't like -pedantic. */
#ifdef PEDANTIC
-#pragma GCC diagnostic ignored "-pedantic"
+#pragma GCC diagnostic ignored "-
W
pedantic"
#endif
#include <rte_ethdev.h>
#ifdef PEDANTIC
#endif
#include <rte_ethdev.h>
#ifdef PEDANTIC
-#pragma GCC diagnostic error "-pedantic"
+#pragma GCC diagnostic error "-
W
pedantic"
#endif
#include "mlx5.h"
#endif
#include "mlx5.h"
@@
-67,11
+67,9
@@
static const struct special_flow_init special_flow_init[] = {
1 << HASH_RXQ_TCPV4 |
1 << HASH_RXQ_UDPV4 |
1 << HASH_RXQ_IPV4 |
1 << HASH_RXQ_TCPV4 |
1 << HASH_RXQ_UDPV4 |
1 << HASH_RXQ_IPV4 |
-#ifdef HAVE_FLOW_SPEC_IPV6
1 << HASH_RXQ_TCPV6 |
1 << HASH_RXQ_UDPV6 |
1 << HASH_RXQ_IPV6 |
1 << HASH_RXQ_TCPV6 |
1 << HASH_RXQ_UDPV6 |
1 << HASH_RXQ_IPV6 |
-#endif /* HAVE_FLOW_SPEC_IPV6 */
1 << HASH_RXQ_ETH |
0,
.per_vlan = 0,
1 << HASH_RXQ_ETH |
0,
.per_vlan = 0,
@@
-82,10
+80,8
@@
static const struct special_flow_init special_flow_init[] = {
.hash_types =
1 << HASH_RXQ_UDPV4 |
1 << HASH_RXQ_IPV4 |
.hash_types =
1 << HASH_RXQ_UDPV4 |
1 << HASH_RXQ_IPV4 |
-#ifdef HAVE_FLOW_SPEC_IPV6
1 << HASH_RXQ_UDPV6 |
1 << HASH_RXQ_IPV6 |
1 << HASH_RXQ_UDPV6 |
1 << HASH_RXQ_IPV6 |
-#endif /* HAVE_FLOW_SPEC_IPV6 */
1 << HASH_RXQ_ETH |
0,
.per_vlan = 0,
1 << HASH_RXQ_ETH |
0,
.per_vlan = 0,
@@
-96,15
+92,12
@@
static const struct special_flow_init special_flow_init[] = {
.hash_types =
1 << HASH_RXQ_UDPV4 |
1 << HASH_RXQ_IPV4 |
.hash_types =
1 << HASH_RXQ_UDPV4 |
1 << HASH_RXQ_IPV4 |
-#ifdef HAVE_FLOW_SPEC_IPV6
1 << HASH_RXQ_UDPV6 |
1 << HASH_RXQ_IPV6 |
1 << HASH_RXQ_UDPV6 |
1 << HASH_RXQ_IPV6 |
-#endif /* HAVE_FLOW_SPEC_IPV6 */
1 << HASH_RXQ_ETH |
0,
.per_vlan = 1,
},
1 << HASH_RXQ_ETH |
0,
.per_vlan = 1,
},
-#ifdef HAVE_FLOW_SPEC_IPV6
[HASH_RXQ_FLOW_TYPE_IPV6MULTI] = {
.dst_mac_val = "\x33\x33\x00\x00\x00\x00",
.dst_mac_mask = "\xff\xff\x00\x00\x00\x00",
[HASH_RXQ_FLOW_TYPE_IPV6MULTI] = {
.dst_mac_val = "\x33\x33\x00\x00\x00\x00",
.dst_mac_mask = "\xff\xff\x00\x00\x00\x00",
@@
-115,7
+108,6
@@
static const struct special_flow_init special_flow_init[] = {
0,
.per_vlan = 1,
},
0,
.per_vlan = 1,
},
-#endif /* HAVE_FLOW_SPEC_IPV6 */
};
/**
};
/**
@@
-355,7
+347,9
@@
priv_special_flow_enable_all(struct priv *priv)
{
enum hash_rxq_flow_type flow_type;
{
enum hash_rxq_flow_type flow_type;
- for (flow_type = 0; flow_type != HASH_RXQ_FLOW_TYPE_MAC; ++flow_type) {
+ for (flow_type = HASH_RXQ_FLOW_TYPE_PROMISC;
+ flow_type != HASH_RXQ_FLOW_TYPE_MAC;
+ ++flow_type) {
int ret;
ret = priv_special_flow_enable(priv, flow_type);
int ret;
ret = priv_special_flow_enable(priv, flow_type);
@@
-380,7
+374,9
@@
priv_special_flow_disable_all(struct priv *priv)
{
enum hash_rxq_flow_type flow_type;
{
enum hash_rxq_flow_type flow_type;
- for (flow_type = 0; flow_type != HASH_RXQ_FLOW_TYPE_MAC; ++flow_type)
+ for (flow_type = HASH_RXQ_FLOW_TYPE_PROMISC;
+ flow_type != HASH_RXQ_FLOW_TYPE_MAC;
+ ++flow_type)
priv_special_flow_disable(priv, flow_type);
}
priv_special_flow_disable(priv, flow_type);
}
@@
-396,6
+392,9
@@
mlx5_promiscuous_enable(struct rte_eth_dev *dev)
struct priv *priv = dev->data->dev_private;
int ret;
struct priv *priv = dev->data->dev_private;
int ret;
+ if (mlx5_is_secondary())
+ return;
+
priv_lock(priv);
priv->promisc_req = 1;
ret = priv_rehash_flows(priv);
priv_lock(priv);
priv->promisc_req = 1;
ret = priv_rehash_flows(priv);
@@
-417,6
+416,9
@@
mlx5_promiscuous_disable(struct rte_eth_dev *dev)
struct priv *priv = dev->data->dev_private;
int ret;
struct priv *priv = dev->data->dev_private;
int ret;
+ if (mlx5_is_secondary())
+ return;
+
priv_lock(priv);
priv->promisc_req = 0;
ret = priv_rehash_flows(priv);
priv_lock(priv);
priv->promisc_req = 0;
ret = priv_rehash_flows(priv);
@@
-438,6
+440,9
@@
mlx5_allmulticast_enable(struct rte_eth_dev *dev)
struct priv *priv = dev->data->dev_private;
int ret;
struct priv *priv = dev->data->dev_private;
int ret;
+ if (mlx5_is_secondary())
+ return;
+
priv_lock(priv);
priv->allmulti_req = 1;
ret = priv_rehash_flows(priv);
priv_lock(priv);
priv->allmulti_req = 1;
ret = priv_rehash_flows(priv);
@@
-459,6
+464,9
@@
mlx5_allmulticast_disable(struct rte_eth_dev *dev)
struct priv *priv = dev->data->dev_private;
int ret;
struct priv *priv = dev->data->dev_private;
int ret;
+ if (mlx5_is_secondary())
+ return;
+
priv_lock(priv);
priv->allmulti_req = 0;
ret = priv_rehash_flows(priv);
priv_lock(priv);
priv->allmulti_req = 0;
ret = priv_rehash_flows(priv);