From: Luca Boccassi Date: Thu, 16 Nov 2017 13:18:21 +0000 (+0000) Subject: New upstream version 17.11 X-Git-Tag: upstream/18.02~1 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=deb_dpdk.git;a=commitdiff_plain;h=169a9de21e263aa6599cdc2d87a45ae158d9f509 New upstream version 17.11 Change-Id: Iee75c1267695faa05f289fe9bb512945507a4c45 Signed-off-by: Luca Boccassi --- diff --git a/MAINTAINERS b/MAINTAINERS index 6ed2277c..f0baeb42 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -296,6 +296,12 @@ F: doc/guides/prog_guide/event_ethernet_rx_adapter.rst Bus Drivers ----------- +NXP buses +M: Hemant Agrawal +M: Shreyansh Jain +F: drivers/bus/dpaa/ +F: drivers/bus/fslmc/ + PCI bus driver F: drivers/bus/pci/ @@ -460,7 +466,6 @@ F: doc/guides/nics/features/nfp*.ini NXP dpaa M: Hemant Agrawal M: Shreyansh Jain -F: drivers/bus/dpaa/ F: drivers/mempool/dpaa/ F: drivers/net/dpaa/ F: doc/guides/nics/dpaa.rst @@ -469,7 +474,6 @@ F: doc/guides/nics/features/dpaa.ini NXP dpaa2 M: Hemant Agrawal M: Shreyansh Jain -F: drivers/bus/fslmc/ F: drivers/mempool/dpaa2/ F: drivers/net/dpaa2/ F: doc/guides/nics/dpaa2.rst diff --git a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst index 4bbf01a4..ef1de53d 100644 --- a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst +++ b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst @@ -120,7 +120,7 @@ in :numref:`figure_gso-output-segment-format`. .. _figure_gso-output-segment-format: -.. figure:: img/gso-output-segment-format.svg +.. figure:: img/gso-output-segment-format.* :align: center Two-part GSO output segment @@ -160,7 +160,7 @@ next input segment). .. _figure_gso-three-seg-mbuf: -.. figure:: img/gso-three-seg-mbuf.svg +.. figure:: img/gso-three-seg-mbuf.* :align: center Three-part GSO output segment diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 6d9517ef..13e85432 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -45,5 +45,11 @@ Deprecation Notices Target release for removal of the legacy API will be defined once most PMDs have switched to rte_flow. +* i40e: The default flexible payload configuration which extracts the first 16 + bytes of the payload for RSS will be deprecated starting from 18.02. If + required the previous behavior can be configured using existing flow + director APIs. There is no ABI/API break. This change will just remove a + global configuration setting and require explicit configuration. + * librte_meter: The API will change to accommodate configuration profiles. Most of the API functions will have an additional opaque parameter. diff --git a/doc/guides/rel_notes/release_17_11.rst b/doc/guides/rel_notes/release_17_11.rst index 57966434..016a08c8 100644 --- a/doc/guides/rel_notes/release_17_11.rst +++ b/doc/guides/rel_notes/release_17_11.rst @@ -539,6 +539,9 @@ The libraries prepended with a plus sign were incremented in this version. librte_acl.so.2 + librte_bitratestats.so.2 + + librte_bus_dpaa.so.1 + + librte_bus_fslmc.so.1 + + librte_bus_pci.so.1 + librte_bus_vdev.so.1 librte_cfgfile.so.2 librte_cmdline.so.2 diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 3df8fba4..f32dfdd3 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -1930,6 +1930,7 @@ priv_flow_create(struct priv *priv, flow->queues = (uint16_t (*)[])(flow + 1); memcpy(flow->queues, parser.queues, parser.queues_n * sizeof(uint16_t)); flow->queues_n = parser.queues_n; + flow->mark = parser.mark; /* Copy RSS configuration. */ flow->rss_conf = parser.rss_conf; flow->rss_conf.rss_key = flow->rss_key; @@ -2915,8 +2916,8 @@ priv_fdir_filter_delete(struct priv *priv, if (memcmp(spec, flow_spec, RTE_MIN(attr_h->size, flow_h->size))) goto wrong_flow; - spec = (void *)((uintptr_t)attr + attr_h->size); - flow_spec = (void *)((uintptr_t)flow_attr + + spec = (void *)((uintptr_t)spec + attr_h->size); + flow_spec = (void *)((uintptr_t)flow_spec + flow_h->size); } /* At this point, the flow match. */ diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 9658b378..2d30c507 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -524,7 +524,9 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) 0, }; ds = 1; +#ifdef MLX5_PMD_SOFT_COUNTERS total_length = 0; +#endif k++; goto next_wqe; } diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c index 2ae095b2..7816393b 100644 --- a/drivers/net/sfc/sfc_rx.c +++ b/drivers/net/sfc/sfc_rx.c @@ -780,9 +780,8 @@ sfc_rx_qcheck_conf(struct sfc_adapter *sa, uint16_t nb_rx_desc, if (rx_conf->rx_thresh.pthresh != 0 || rx_conf->rx_thresh.hthresh != 0 || rx_conf->rx_thresh.wthresh != 0) { - sfc_err(sa, + sfc_warn(sa, "RxQ prefetch/host/writeback thresholds are not supported"); - rc = EINVAL; } if (rx_conf->rx_free_thresh > rx_free_thresh_max) { diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c index 127d59e6..d1320f46 100644 --- a/drivers/net/sfc/sfc_tx.c +++ b/drivers/net/sfc/sfc_tx.c @@ -79,9 +79,8 @@ sfc_tx_qcheck_conf(struct sfc_adapter *sa, uint16_t nb_tx_desc, if (tx_conf->tx_thresh.pthresh != 0 || tx_conf->tx_thresh.hthresh != 0 || tx_conf->tx_thresh.wthresh != 0) { - sfc_err(sa, + sfc_warn(sa, "prefetch/host/writeback thresholds are not supported"); - rc = EINVAL; } if (((flags & ETH_TXQ_FLAGS_NOMULTSEGS) == 0) && diff --git a/lib/librte_eal/common/include/rte_version.h b/lib/librte_eal/common/include/rte_version.h index fa018074..b176f658 100644 --- a/lib/librte_eal/common/include/rte_version.h +++ b/lib/librte_eal/common/include/rte_version.h @@ -71,14 +71,14 @@ extern "C" { /** * Extra string to be appended to version number */ -#define RTE_VER_SUFFIX "-rc" +#define RTE_VER_SUFFIX "" /** * Patch release number * 0-15 = release candidates * 16 = release */ -#define RTE_VER_RELEASE 4 +#define RTE_VER_RELEASE 16 /** * Macro to compute a version number usable for comparisons diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index 2e08b9e9..7543662f 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -203,7 +203,7 @@ void rte_mbuf_sanity_check(const struct rte_mbuf *m, int is_header) { const struct rte_mbuf *m_seg; - unsigned nb_segs; + unsigned int nb_segs; if (m == NULL) rte_panic("mbuf is NULL\n"); @@ -239,7 +239,7 @@ void rte_pktmbuf_dump(FILE *f, const struct rte_mbuf *m, unsigned dump_len) { unsigned int len; - unsigned nb_segs; + unsigned int nb_segs; __rte_mbuf_sanity_check(m, 1); diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index 7e326bbc..ce8a05dd 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -584,6 +584,9 @@ struct rte_mbuf { } __rte_cache_aligned; +/**< Maximum number of nb_segs allowed. */ +#define RTE_MBUF_MAX_NB_SEGS UINT16_MAX + /** * Prefetch the first part of the mbuf * @@ -1447,7 +1450,7 @@ static inline struct rte_mbuf *rte_pktmbuf_clone(struct rte_mbuf *md, { struct rte_mbuf *mc, *mi, **prev; uint32_t pktlen; - uint8_t nseg; + uint16_t nseg; if (unlikely ((mc = rte_pktmbuf_alloc(mp)) == NULL)) return NULL; @@ -1807,14 +1810,14 @@ static inline const void *rte_pktmbuf_read(const struct rte_mbuf *m, * * @return * - 0, on success. - * - -EOVERFLOW, if the chain is full (256 entries) + * - -EOVERFLOW, if the chain segment limit exceeded */ static inline int rte_pktmbuf_chain(struct rte_mbuf *head, struct rte_mbuf *tail) { struct rte_mbuf *cur_tail; /* Check for number-of-segments-overflow */ - if (head->nb_segs + tail->nb_segs >= 1 << (sizeof(head->nb_segs) * 8)) + if (head->nb_segs + tail->nb_segs > RTE_MBUF_MAX_NB_SEGS) return -EOVERFLOW; /* Chain 'tail' onto the old tail */ @@ -1822,7 +1825,7 @@ static inline int rte_pktmbuf_chain(struct rte_mbuf *head, struct rte_mbuf *tail cur_tail->next = tail; /* accumulate number of segments and total length. */ - head->nb_segs = (uint8_t)(head->nb_segs + tail->nb_segs); + head->nb_segs += tail->nb_segs; head->pkt_len += tail->pkt_len; /* pkt_len is only set in the head */ diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c index 29a6c99b..bc18f814 100644 --- a/lib/librte_pdump/rte_pdump.c +++ b/lib/librte_pdump/rte_pdump.c @@ -139,7 +139,7 @@ pdump_pktmbuf_copy(struct rte_mbuf *m, struct rte_mempool *mp) { struct rte_mbuf *m_dup, *seg, **prev; uint32_t pktlen; - uint8_t nseg; + uint16_t nseg; m_dup = rte_pktmbuf_alloc(mp); if (unlikely(m_dup == NULL)) @@ -353,7 +353,7 @@ set_pdump_rxtx_cbs(struct pdump_request *p) &port); if (ret < 0) { RTE_LOG(ERR, PDUMP, - "failed to get potid for device id=%s\n", + "failed to get port id for device id=%s\n", p->data.en_v1.device); return -EINVAL; } @@ -365,7 +365,7 @@ set_pdump_rxtx_cbs(struct pdump_request *p) &port); if (ret < 0) { RTE_LOG(ERR, PDUMP, - "failed to get potid for device id=%s\n", + "failed to get port id for device id=%s\n", p->data.dis_v1.device); return -EINVAL; } diff --git a/pkg/dpdk.spec b/pkg/dpdk.spec index fd1b5ef7..6a41fc71 100644 --- a/pkg/dpdk.spec +++ b/pkg/dpdk.spec @@ -30,7 +30,7 @@ # OF THE POSSIBILITY OF SUCH DAMAGE. Name: dpdk -Version: 17.08 +Version: 17.11 Release: 1 Packager: packaging@6wind.com URL: http://dpdk.org