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/mlx5: fix DevX Rx queue memory alignment
[dpdk.git]
/
drivers
/
net
/
sfc
/
sfc_flow.c
diff --git
a/drivers/net/sfc/sfc_flow.c
b/drivers/net/sfc/sfc_flow.c
index
e20c2e6
..
e4a9ba0
100644
(file)
--- a/
drivers/net/sfc/sfc_flow.c
+++ b/
drivers/net/sfc/sfc_flow.c
@@
-11,7
+11,6
@@
#include <rte_tailq.h>
#include <rte_common.h>
#include <rte_ethdev_driver.h>
#include <rte_tailq.h>
#include <rte_common.h>
#include <rte_ethdev_driver.h>
-#include <rte_eth_ctrl.h>
#include <rte_ether.h>
#include <rte_flow.h>
#include <rte_flow_driver.h>
#include <rte_ether.h>
#include <rte_flow.h>
#include <rte_flow_driver.h>
@@
-278,7
+277,7
@@
sfc_flow_parse_eth(const struct rte_flow_item *item,
if (spec == NULL)
return 0;
if (spec == NULL)
return 0;
- if (is_same_ether_addr(&mask->dst, &supp_mask.dst)) {
+ if (
rte_
is_same_ether_addr(&mask->dst, &supp_mask.dst)) {
efx_spec->efs_match_flags |= is_ifrm ?
EFX_FILTER_MATCH_IFRM_LOC_MAC :
EFX_FILTER_MATCH_LOC_MAC;
efx_spec->efs_match_flags |= is_ifrm ?
EFX_FILTER_MATCH_IFRM_LOC_MAC :
EFX_FILTER_MATCH_LOC_MAC;
@@
-286,7
+285,7
@@
sfc_flow_parse_eth(const struct rte_flow_item *item,
EFX_MAC_ADDR_LEN);
} else if (memcmp(mask->dst.addr_bytes, ig_mask,
EFX_MAC_ADDR_LEN) == 0) {
EFX_MAC_ADDR_LEN);
} else if (memcmp(mask->dst.addr_bytes, ig_mask,
EFX_MAC_ADDR_LEN) == 0) {
- if (is_unicast_ether_addr(&spec->dst))
+ if (
rte_
is_unicast_ether_addr(&spec->dst))
efx_spec->efs_match_flags |= is_ifrm ?
EFX_FILTER_MATCH_IFRM_UNKNOWN_UCAST_DST :
EFX_FILTER_MATCH_UNKNOWN_UCAST_DST;
efx_spec->efs_match_flags |= is_ifrm ?
EFX_FILTER_MATCH_IFRM_UNKNOWN_UCAST_DST :
EFX_FILTER_MATCH_UNKNOWN_UCAST_DST;
@@
-294,7
+293,7
@@
sfc_flow_parse_eth(const struct rte_flow_item *item,
efx_spec->efs_match_flags |= is_ifrm ?
EFX_FILTER_MATCH_IFRM_UNKNOWN_MCAST_DST :
EFX_FILTER_MATCH_UNKNOWN_MCAST_DST;
efx_spec->efs_match_flags |= is_ifrm ?
EFX_FILTER_MATCH_IFRM_UNKNOWN_MCAST_DST :
EFX_FILTER_MATCH_UNKNOWN_MCAST_DST;
- } else if (!is_zero_ether_addr(&mask->dst)) {
+ } else if (!
rte_
is_zero_ether_addr(&mask->dst)) {
goto fail_bad_mask;
}
goto fail_bad_mask;
}
@@
-303,11
+302,11
@@
sfc_flow_parse_eth(const struct rte_flow_item *item,
* ethertype masks are equal to zero in inner frame,
* so these fields are filled in only for the outer frame
*/
* ethertype masks are equal to zero in inner frame,
* so these fields are filled in only for the outer frame
*/
- if (is_same_ether_addr(&mask->src, &supp_mask.src)) {
+ if (
rte_
is_same_ether_addr(&mask->src, &supp_mask.src)) {
efx_spec->efs_match_flags |= EFX_FILTER_MATCH_REM_MAC;
rte_memcpy(efx_spec->efs_rem_mac, spec->src.addr_bytes,
EFX_MAC_ADDR_LEN);
efx_spec->efs_match_flags |= EFX_FILTER_MATCH_REM_MAC;
rte_memcpy(efx_spec->efs_rem_mac, spec->src.addr_bytes,
EFX_MAC_ADDR_LEN);
- } else if (!is_zero_ether_addr(&mask->src)) {
+ } else if (!
rte_
is_zero_ether_addr(&mask->src)) {
goto fail_bad_mask;
}
goto fail_bad_mask;
}
@@
-952,7
+951,7
@@
sfc_flow_parse_geneve(const struct rte_flow_item *item,
return 0;
if (mask->protocol == supp_mask.protocol) {
return 0;
if (mask->protocol == supp_mask.protocol) {
- if (spec->protocol != rte_cpu_to_be_16(ETHER_TYPE_TEB)) {
+ if (spec->protocol != rte_cpu_to_be_16(
RTE_
ETHER_TYPE_TEB)) {
rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_ITEM, item,
"GENEVE encap. protocol must be Ethernet "
rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_ITEM, item,
"GENEVE encap. protocol must be Ethernet "
@@
-1241,7
+1240,7
@@
sfc_flow_parse_queue(struct sfc_adapter *sa,
{
struct sfc_rxq *rxq;
{
struct sfc_rxq *rxq;
- if (queue->index >= s
a
->rxq_count)
+ if (queue->index >= s
fc_sa2shared(sa)
->rxq_count)
return -EINVAL;
rxq = &sa->rxq_ctrl[queue->index];
return -EINVAL;
rxq = &sa->rxq_ctrl[queue->index];
@@
-1255,7
+1254,8
@@
sfc_flow_parse_rss(struct sfc_adapter *sa,
const struct rte_flow_action_rss *action_rss,
struct rte_flow *flow)
{
const struct rte_flow_action_rss *action_rss,
struct rte_flow *flow)
{
- struct sfc_rss *rss = &sa->rss;
+ struct sfc_adapter_shared * const sas = sfc_sa2shared(sa);
+ struct sfc_rss *rss = &sas->rss;
unsigned int rxq_sw_index;
struct sfc_rxq *rxq;
unsigned int rxq_hw_index_min;
unsigned int rxq_sw_index;
struct sfc_rxq *rxq;
unsigned int rxq_hw_index_min;
@@
-1268,7
+1268,7
@@
sfc_flow_parse_rss(struct sfc_adapter *sa,
if (action_rss->queue_num == 0)
return -EINVAL;
if (action_rss->queue_num == 0)
return -EINVAL;
- rxq_sw_index = s
a
->rxq_count - 1;
+ rxq_sw_index = s
fc_sa2shared(sa)
->rxq_count - 1;
rxq = &sa->rxq_ctrl[rxq_sw_index];
rxq_hw_index_min = rxq->hw_index;
rxq_hw_index_max = 0;
rxq = &sa->rxq_ctrl[rxq_sw_index];
rxq_hw_index_min = rxq->hw_index;
rxq_hw_index_max = 0;
@@
-1276,7
+1276,7
@@
sfc_flow_parse_rss(struct sfc_adapter *sa,
for (i = 0; i < action_rss->queue_num; ++i) {
rxq_sw_index = action_rss->queue[i];
for (i = 0; i < action_rss->queue_num; ++i) {
rxq_sw_index = action_rss->queue[i];
- if (rxq_sw_index >= s
a
->rxq_count)
+ if (rxq_sw_index >= s
fc_sa2shared(sa)
->rxq_count)
return -EINVAL;
rxq = &sa->rxq_ctrl[rxq_sw_index];
return -EINVAL;
rxq = &sa->rxq_ctrl[rxq_sw_index];
@@
-1400,7
+1400,8
@@
static int
sfc_flow_filter_insert(struct sfc_adapter *sa,
struct rte_flow *flow)
{
sfc_flow_filter_insert(struct sfc_adapter *sa,
struct rte_flow *flow)
{
- struct sfc_rss *rss = &sa->rss;
+ struct sfc_adapter_shared * const sas = sfc_sa2shared(sa);
+ struct sfc_rss *rss = &sas->rss;
struct sfc_flow_rss *flow_rss = &flow->rss_conf;
uint32_t efs_rss_context = EFX_RSS_CONTEXT_DEFAULT;
unsigned int i;
struct sfc_flow_rss *flow_rss = &flow->rss_conf;
uint32_t efs_rss_context = EFX_RSS_CONTEXT_DEFAULT;
unsigned int i;
@@
-2252,7
+2253,7
@@
sfc_flow_parse(struct rte_eth_dev *dev,
struct rte_flow *flow,
struct rte_flow_error *error)
{
struct rte_flow *flow,
struct rte_flow_error *error)
{
- struct sfc_adapter *sa =
dev->data->dev_private
;
+ struct sfc_adapter *sa =
sfc_adapter_by_eth_dev(dev)
;
int rc;
rc = sfc_flow_parse_attr(attr, flow, error);
int rc;
rc = sfc_flow_parse_attr(attr, flow, error);
@@
-2298,7
+2299,7
@@
sfc_flow_create(struct rte_eth_dev *dev,
const struct rte_flow_action actions[],
struct rte_flow_error *error)
{
const struct rte_flow_action actions[],
struct rte_flow_error *error)
{
- struct sfc_adapter *sa =
dev->data->dev_private
;
+ struct sfc_adapter *sa =
sfc_adapter_by_eth_dev(dev)
;
struct rte_flow *flow = NULL;
int rc;
struct rte_flow *flow = NULL;
int rc;
@@
-2371,7
+2372,7
@@
sfc_flow_destroy(struct rte_eth_dev *dev,
struct rte_flow *flow,
struct rte_flow_error *error)
{
struct rte_flow *flow,
struct rte_flow_error *error)
{
- struct sfc_adapter *sa =
dev->data->dev_private
;
+ struct sfc_adapter *sa =
sfc_adapter_by_eth_dev(dev)
;
struct rte_flow *flow_ptr;
int rc = EINVAL;
struct rte_flow *flow_ptr;
int rc = EINVAL;
@@
-2400,7
+2401,7
@@
static int
sfc_flow_flush(struct rte_eth_dev *dev,
struct rte_flow_error *error)
{
sfc_flow_flush(struct rte_eth_dev *dev,
struct rte_flow_error *error)
{
- struct sfc_adapter *sa =
dev->data->dev_private
;
+ struct sfc_adapter *sa =
sfc_adapter_by_eth_dev(dev)
;
struct rte_flow *flow;
int rc = 0;
int ret = 0;
struct rte_flow *flow;
int rc = 0;
int ret = 0;
@@
-2422,8
+2423,7
@@
static int
sfc_flow_isolate(struct rte_eth_dev *dev, int enable,
struct rte_flow_error *error)
{
sfc_flow_isolate(struct rte_eth_dev *dev, int enable,
struct rte_flow_error *error)
{
- struct sfc_adapter *sa = dev->data->dev_private;
- struct sfc_port *port = &sa->port;
+ struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev);
int ret = 0;
sfc_adapter_lock(sa);
int ret = 0;
sfc_adapter_lock(sa);
@@
-2433,7
+2433,7
@@
sfc_flow_isolate(struct rte_eth_dev *dev, int enable,
NULL, "please close the port first");
ret = -rte_errno;
} else {
NULL, "please close the port first");
ret = -rte_errno;
} else {
-
port
->isolated = (enable) ? B_TRUE : B_FALSE;
+
sfc_sa2shared(sa)
->isolated = (enable) ? B_TRUE : B_FALSE;
}
sfc_adapter_unlock(sa);
}
sfc_adapter_unlock(sa);