* Re: [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' has been queued to LTS release 17.11.1
@ 2018-02-01 9:17 Yuanhan Liu
0 siblings, 0 replies; 2+ messages in thread
From: Yuanhan Liu @ 2018-02-01 9:17 UTC (permalink / raw)
To: Shachar Beiser; +Cc: dpdk stable
FYI, this one has been reverted, for it breaks the MLX5 build:
drivers/net/mlx5/mlx5_flow.c:1487:37: error: 'IPV6_HDR_FL_MASK' undeclared (first use in this function)
If you think it's a must to have for 17.11.1 release, please do backport.
Thanks.
--yliu
On Wed, Jan 24, 2018 at 11:33:39PM +0800, Yuanhan Liu wrote:
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.1
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 01/26/18. So please
> shout if anyone has objections.
>
> Thanks.
>
> --yliu
>
> ---
> >From ec606da5366e96d020817dc0fb52811204662595 Mon Sep 17 00:00:00 2001
> From: Shachar Beiser <shacharbe@mellanox.com>
> Date: Tue, 16 Jan 2018 11:17:52 +0200
> Subject: [PATCH] net/mlx5: fix IPv6 header fields
>
> [ upstream commit e8aafd9405b9f1da345abd2d5ff0d7aabc1ce6f3 ]
>
> There are parameters that are not copy from
> spec to verbs structure in the vtc_label
>
> Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core")
>
> Signed-off-by: Shachar Beiser <shacharbe@mellanox.com>
> Acked-by: Yongseok Koh <yskoh@mellanox.com>
> ---
> drivers/net/mlx5/mlx5_flow.c | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 00f4bec..654fb1d 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -48,6 +48,7 @@
> #include <rte_flow.h>
> #include <rte_flow_driver.h>
> #include <rte_malloc.h>
> +#include <rte_ip.h>
>
> #include "mlx5.h"
> #include "mlx5_defs.h"
> @@ -1467,6 +1468,8 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
> parser->layer = HASH_RXQ_IPV6;
> if (spec) {
> unsigned int i;
> + uint32_t vtc_flow_val;
> + uint32_t vtc_flow_mask;
>
> if (!mask)
> mask = default_mask;
> @@ -1478,7 +1481,20 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
> RTE_DIM(ipv6.mask.src_ip));
> memcpy(&ipv6.mask.dst_ip, mask->hdr.dst_addr,
> RTE_DIM(ipv6.mask.dst_ip));
> - ipv6.mask.flow_label = mask->hdr.vtc_flow;
> + vtc_flow_val = rte_be_to_cpu_32(spec->hdr.vtc_flow);
> + vtc_flow_mask = rte_be_to_cpu_32(mask->hdr.vtc_flow);
> + ipv6.val.flow_label =
> + rte_cpu_to_be_32((vtc_flow_val & IPV6_HDR_FL_MASK) >>
> + IPV6_HDR_FL_SHIFT);
> + ipv6.val.traffic_class = (vtc_flow_val & IPV6_HDR_TC_MASK) >>
> + IPV6_HDR_TC_SHIFT;
> + ipv6.val.next_hdr = spec->hdr.proto;
> + ipv6.val.hop_limit = spec->hdr.hop_limits;
> + ipv6.mask.flow_label =
> + rte_cpu_to_be_32((vtc_flow_mask & IPV6_HDR_FL_MASK) >>
> + IPV6_HDR_FL_SHIFT);
> + ipv6.mask.traffic_class = (vtc_flow_mask & IPV6_HDR_TC_MASK) >>
> + IPV6_HDR_TC_SHIFT;
> ipv6.mask.next_hdr = mask->hdr.proto;
> ipv6.mask.hop_limit = mask->hdr.hop_limits;
> /* Remove unwanted bits from values. */
> @@ -1487,6 +1503,7 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
> ipv6.val.dst_ip[i] &= ipv6.mask.dst_ip[i];
> }
> ipv6.val.flow_label &= ipv6.mask.flow_label;
> + ipv6.val.traffic_class &= ipv6.mask.traffic_class;
> ipv6.val.next_hdr &= ipv6.mask.next_hdr;
> ipv6.val.hop_limit &= ipv6.mask.hop_limit;
> }
> --
> 2.7.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* [dpdk-stable] patch 'kni: fix build with kernel 4.15' has been queued to LTS release 17.11.1
@ 2018-01-24 15:31 Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' " Yuanhan Liu
0 siblings, 1 reply; 2+ messages in thread
From: Yuanhan Liu @ 2018-01-24 15:31 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 01/26/18. So please
shout if anyone has objections.
Thanks.
--yliu
---
>From c4b60502e7135b683f48de568698281b42dd83f6 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Tue, 28 Nov 2017 23:45:53 +0000
Subject: [PATCH] kni: fix build with kernel 4.15
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit d291fb3a8d162161897636387910637bbe9cbf17 ]
build error:
.../dpdk/build/build/lib/librte_eal/linuxapp/kni/igb_main.c:2809:2:
error: implicit declaration of function ‘setup_timer’;
did you mean ‘sk_stop_timer’? [-Werror=implicit-function-declaration]
setup_timer(&adapter->watchdog_timer, &igb_watchdog,
^~~~~~~~~~~
sk_stop_timer
cc1: all warnings being treated as errors
error observed whed CONFIG_RTE_KNI_KMOD_ETHTOOL config option enabled.
Because Linux removed setup_timer macros for kernel version >= 4.15
Linux: 513ae785c63c ("timer: Remove setup_*timer() interface")
Replaced setup_timer with timer_setup for new kernel versions.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 41 ++++++++++++++++++++++
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 4 +++
2 files changed, 45 insertions(+)
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
index 99338c5..e0f427a 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
@@ -137,11 +137,20 @@ static void igb_clean_all_tx_rings(struct igb_adapter *);
static void igb_clean_all_rx_rings(struct igb_adapter *);
static void igb_clean_tx_ring(struct igb_ring *);
static void igb_set_rx_mode(struct net_device *);
+#ifdef HAVE_TIMER_SETUP
+static void igb_update_phy_info(struct timer_list *);
+static void igb_watchdog(struct timer_list *);
+#else
static void igb_update_phy_info(unsigned long);
static void igb_watchdog(unsigned long);
+#endif
static void igb_watchdog_task(struct work_struct *);
static void igb_dma_err_task(struct work_struct *);
+#ifdef HAVE_TIMER_SETUP
+static void igb_dma_err_timer(struct timer_list *);
+#else
static void igb_dma_err_timer(unsigned long data);
+#endif
static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *);
static struct net_device_stats *igb_get_stats(struct net_device *);
static int igb_change_mtu(struct net_device *, int);
@@ -2806,6 +2815,12 @@ static int __devinit igb_probe(struct pci_dev *pdev,
/* Check if Media Autosense is enabled */
if (hw->mac.type == e1000_82580)
igb_init_mas(adapter);
+#ifdef HAVE_TIMER_SETUP
+ timer_setup(&adapter->watchdog_timer, &igb_watchdog, 0);
+ if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
+ timer_setup(&adapter->dma_err_timer, &igb_dma_err_timer, 0);
+ timer_setup(&adapter->phy_info_timer, &igb_update_phy_info, 0);
+#else
setup_timer(&adapter->watchdog_timer, &igb_watchdog,
(unsigned long) adapter);
if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
@@ -2813,6 +2828,7 @@ static int __devinit igb_probe(struct pci_dev *pdev,
(unsigned long) adapter);
setup_timer(&adapter->phy_info_timer, &igb_update_phy_info,
(unsigned long) adapter);
+#endif
INIT_WORK(&adapter->reset_task, igb_reset_task);
INIT_WORK(&adapter->watchdog_task, igb_watchdog_task);
@@ -4543,9 +4559,15 @@ static void igb_spoof_check(struct igb_adapter *adapter)
/* Need to wait a few seconds after link up to get diagnostic information from
* the phy */
+#ifdef HAVE_TIMER_SETUP
+static void igb_update_phy_info(struct timer_list *t)
+{
+ struct igb_adapter *adapter = from_timer(adapter, t, phy_info_timer);
+#else
static void igb_update_phy_info(unsigned long data)
{
struct igb_adapter *adapter = (struct igb_adapter *) data;
+#endif
e1000_get_phy_info(&adapter->hw);
}
@@ -4594,9 +4616,15 @@ bool igb_has_link(struct igb_adapter *adapter)
* igb_watchdog - Timer Call-back
* @data: pointer to adapter cast into an unsigned long
**/
+#ifdef HAVE_TIMER_SETUP
+static void igb_watchdog(struct timer_list *t)
+{
+ struct igb_adapter *adapter = from_timer(adapter, t, watchdog_timer);
+#else
static void igb_watchdog(unsigned long data)
{
struct igb_adapter *adapter = (struct igb_adapter *)data;
+#endif
/* Do the rest outside of interrupt context */
schedule_work(&adapter->watchdog_task);
}
@@ -4854,9 +4882,15 @@ dma_timer_reset:
* igb_dma_err_timer - Timer Call-back
* @data: pointer to adapter cast into an unsigned long
**/
+#ifdef HAVE_TIMER_SETUP
+static void igb_dma_err_timer(struct timer_list *t)
+{
+ struct igb_adapter *adapter = from_timer(adapter, t, dma_err_timer);
+#else
static void igb_dma_err_timer(unsigned long data)
{
struct igb_adapter *adapter = (struct igb_adapter *)data;
+#endif
/* Do the rest outside of interrupt context */
schedule_work(&adapter->dma_err_task);
}
@@ -10051,6 +10085,12 @@ int igb_kni_probe(struct pci_dev *pdev,
igb_init_mas(adapter);
#ifdef NO_KNI
+#ifdef HAVE_TIMER_SETUP
+ timer_setup(&adapter->watchdog_timer, &igb_watchdog, 0);
+ if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
+ timer_setup(&adapter->dma_err_timer, &igb_dma_err_timer, 0);
+ timer_setup(&adapter->phy_info_timer, &igb_update_phy_info, 0);
+#else
setup_timer(&adapter->watchdog_timer, &igb_watchdog,
(unsigned long) adapter);
if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
@@ -10058,6 +10098,7 @@ int igb_kni_probe(struct pci_dev *pdev,
(unsigned long) adapter);
setup_timer(&adapter->phy_info_timer, &igb_update_phy_info,
(unsigned long) adapter);
+#endif
INIT_WORK(&adapter->reset_task, igb_reset_task);
INIT_WORK(&adapter->watchdog_task, igb_watchdog_task);
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
index e38a756..443a3f2 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
@@ -3941,4 +3941,8 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
#define HAVE_PCI_ENABLE_MSIX
#endif
+#if defined(timer_setup) && defined(from_timer)
+#define HAVE_TIMER_SETUP
+#endif
+
#endif /* _KCOMPAT_H_ */
--
2.7.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' has been queued to LTS release 17.11.1
2018-01-24 15:31 [dpdk-stable] patch 'kni: fix build with kernel 4.15' " Yuanhan Liu
@ 2018-01-24 15:33 ` Yuanhan Liu
0 siblings, 0 replies; 2+ messages in thread
From: Yuanhan Liu @ 2018-01-24 15:33 UTC (permalink / raw)
To: Shachar Beiser; +Cc: Yongseok Koh, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 01/26/18. So please
shout if anyone has objections.
Thanks.
--yliu
---
>From ec606da5366e96d020817dc0fb52811204662595 Mon Sep 17 00:00:00 2001
From: Shachar Beiser <shacharbe@mellanox.com>
Date: Tue, 16 Jan 2018 11:17:52 +0200
Subject: [PATCH] net/mlx5: fix IPv6 header fields
[ upstream commit e8aafd9405b9f1da345abd2d5ff0d7aabc1ce6f3 ]
There are parameters that are not copy from
spec to verbs structure in the vtc_label
Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core")
Signed-off-by: Shachar Beiser <shacharbe@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
drivers/net/mlx5/mlx5_flow.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 00f4bec..654fb1d 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -48,6 +48,7 @@
#include <rte_flow.h>
#include <rte_flow_driver.h>
#include <rte_malloc.h>
+#include <rte_ip.h>
#include "mlx5.h"
#include "mlx5_defs.h"
@@ -1467,6 +1468,8 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
parser->layer = HASH_RXQ_IPV6;
if (spec) {
unsigned int i;
+ uint32_t vtc_flow_val;
+ uint32_t vtc_flow_mask;
if (!mask)
mask = default_mask;
@@ -1478,7 +1481,20 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
RTE_DIM(ipv6.mask.src_ip));
memcpy(&ipv6.mask.dst_ip, mask->hdr.dst_addr,
RTE_DIM(ipv6.mask.dst_ip));
- ipv6.mask.flow_label = mask->hdr.vtc_flow;
+ vtc_flow_val = rte_be_to_cpu_32(spec->hdr.vtc_flow);
+ vtc_flow_mask = rte_be_to_cpu_32(mask->hdr.vtc_flow);
+ ipv6.val.flow_label =
+ rte_cpu_to_be_32((vtc_flow_val & IPV6_HDR_FL_MASK) >>
+ IPV6_HDR_FL_SHIFT);
+ ipv6.val.traffic_class = (vtc_flow_val & IPV6_HDR_TC_MASK) >>
+ IPV6_HDR_TC_SHIFT;
+ ipv6.val.next_hdr = spec->hdr.proto;
+ ipv6.val.hop_limit = spec->hdr.hop_limits;
+ ipv6.mask.flow_label =
+ rte_cpu_to_be_32((vtc_flow_mask & IPV6_HDR_FL_MASK) >>
+ IPV6_HDR_FL_SHIFT);
+ ipv6.mask.traffic_class = (vtc_flow_mask & IPV6_HDR_TC_MASK) >>
+ IPV6_HDR_TC_SHIFT;
ipv6.mask.next_hdr = mask->hdr.proto;
ipv6.mask.hop_limit = mask->hdr.hop_limits;
/* Remove unwanted bits from values. */
@@ -1487,6 +1503,7 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
ipv6.val.dst_ip[i] &= ipv6.mask.dst_ip[i];
}
ipv6.val.flow_label &= ipv6.mask.flow_label;
+ ipv6.val.traffic_class &= ipv6.mask.traffic_class;
ipv6.val.next_hdr &= ipv6.mask.next_hdr;
ipv6.val.hop_limit &= ipv6.mask.hop_limit;
}
--
2.7.4
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-02-01 9:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-01 9:17 [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' has been queued to LTS release 17.11.1 Yuanhan Liu
-- strict thread matches above, loose matches on Subject: below --
2018-01-24 15:31 [dpdk-stable] patch 'kni: fix build with kernel 4.15' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' " Yuanhan Liu
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).