This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via 2fbddb94b8d8be47151332ba9e9eab5475e2a669 (commit)
from cb400906ef0e1a59d5844bfb686e816b6d47ca25 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2fbddb94b8d8be47151332ba9e9eab5475e2a669
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Fri Mar 2 18:14:46 2018 -0600
changelog: fix bug3611 status for v1.18.0.0
Bug 3611 is not fixed in v1.18.0.0 and is still a Known Issue
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/CHANGELOG b/CHANGELOG
index d6ef2077..cfebbbdc 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -216,9 +216,6 @@ new generator test assumes that null:0 pktio is always present
==== https://bugs.linaro.org/show_bug.cgi?id=3613[Bug 3613]
packet_main test can fail
-==== https://bugs.linaro.org/show_bug.cgi?id=3611[Bug 3611]
-ODP linux-generic fails on AArch64 in non-ABI-compat mode
-
==== https://bugs.linaro.org/show_bug.cgi?id=3618[Bug 3618]
DPDK pktio stops receiving packets if all configured RX queues are not used
@@ -234,6 +231,9 @@ undefined behavior
==== https://bugs.linaro.org/show_bug.cgi?id=2988[Bug 2988]
ODP exposes symbols outside of odp*/_odp* namespace
+==== https://bugs.linaro.org/show_bug.cgi?id=3611[Bug 3611]
+ODP linux-generic fails on AArch64 in non-ABI-compat mode
+
== OpenDataPlane (1.17.0.0)
=== New Features
ODP v1.17.0.0 is Tiger Moth Release Candidate 1 (RC 1). It introduces
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
hooks/post-receive
--
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via cb400906ef0e1a59d5844bfb686e816b6d47ca25 (commit)
from e1c0e4570a45d05dd9f2e8e052ce71164209d112 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit cb400906ef0e1a59d5844bfb686e816b6d47ca25
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Mon Feb 26 12:13:28 2018 -0600
changelog: updates for odp v1.18.0.0
Add updates for v1.18.0.0 (Tiger Moth RC2)
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/CHANGELOG b/CHANGELOG
index 377486e2..d6ef2077 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,239 @@
+== OpenDataPlane (1.18.0.0)
+=== New Features
+ODP v1.18.0.0 is Tiger Moth Release Candidate 2 (RC 2). It completes the new
+APIs that are part of the Tiger Moth Long Term Support (LTS) release of ODP
+as well as various performance refinements and bug fixes. As of RC2 the ODP
+API is now frozen for the Tiger Moth development series.
+
+==== APIs
+The following new and changed APIs are included in this release:
+
+===== Addition of Shared Memory (SHM) Initialization Parameters
+The `odp_init_t` struct used as the argument to the `odp_init_global()` API
+has been expanded to include a `max_memory` field that specifies the maximum
+amount of shared memory (shm) that the application will use. This is to
+better enable ODP implementations to optimize their use of shared memory in
+support of the application. If left as (or defaulted) to 0, the implementation
+may choose a default limit for the application.
+
+===== Crypto Changes
+A number of crypto refinements are included in this release:
+
+* The single initialization vector (`iv`) in the `odp_crypto_session_param_t`
+is replaced by a separate `cipher_iv` and `auth_iv` fields.
+
+* The single initialization vector (`override_iv_ptr`) in the
+`odp_crypto_op_param_t` is replaced by a separate `cipher_iv_ptr` and
+`auth_iv_ptr` fields.
+
+* The special nature of GCM and GMAC authenticated encryption modes is
+clarified in that these ciphers always combine ciphering with authentication
+and hence require both to be specified when used. This is simply a
+documentation change as this requirement has always existed.
+
+* Enumerations for AES_CCM (`ODP_CIPHER_ALG_AES_CCM` and
+`ODP_AUTH_ALG_AES_CCM`) authenticated encryption modes are added.
+
+* Enumeration for the AES_CMAC authenticated encryption mode
+(`ODP_AUTH_ALG_AES_CMAC`) is added.
+
+* Enumerations for the ChaCha20-Poly1305 (`ODP_CIPHER_ALG_CHACHA20_POLY1305`
+and `ODP_AUTH_ALG_CHACHA20_POLY1305`) authenticated encryption modes are
+added.
+
+* Enumeration for the SHA-384 authentication algorithm
+(`ODP_AUTH_ALG_SHA384_HMAC`) is added.
+
+* Enumeration for the AES-XCBC-MAC authentication algorithm
+(`ODP_AUTH_ALG_AES_XCBC_MAC`) is added.
+
+===== Lock-free and block-free queues
+The `odp_nonblocking_t` enums introduced in ODP v1.17.0.0 are now returned
+as separate `odp_queue_capability()` limits for plain and scheduled queues. The
+ODP reference implementations now support `ODP_NONBLOCKING_LF` queues.
+
+===== User pointer initialized to NULL
+The specification for `odp_packet_user_ptr()` is clarified that unless
+overridden by `odp_packet_user_ptr_set()` the value of NULL will be returned.
+
+===== Removal of `ODP_PKTIN_WAIT` option
+The `ODP_PKTIN_WAIT` option on `odp_pktin_recv_tmo()` and
+`odp_pktin_recv_mq_tmo()` is removed. Timeout options now consist of
+`ODP_PKTIN_NO_WAIT` and a user-supplied timeout value. Since this timeout
+value can be specified to be arbitrarily long, there is no need for an
+indefinite wait capability as provision of such a capability proved
+problematic for some ODP implementations.
+
+===== Addition of packet protocol APIs
+The APIs `odp_packet_l2_type()`, `odp_packet_l3_type()`, and
+`odp_packet_l4_type()` are added to return the Layer 2, 3, and 4 protocols,
+respectively, associated with packets that have been parsed to the
+corresponding layer. If the packet was not parsed to the associated layer
+these return `ODP_PROTO_Ln_TYPE_NONE`.
+
+===== Packet addressability improvements
+The documentation of `odp_packet_data()` is clarified to indicated when this
+shortcut may be used safely and a new API, `odp_packet_data_seg_len()`, is
+added that returns both the address of the start of packet data as well
+as the number of bytes addressable from that pointer.
+
+===== Asynchronous ordered locks
+Two new APIs, `odp_schedule_order_lock_start()` and
+`odp_schedule_order_lock_wait()` are added to allow for asynchronous
+ordered lock acquisition in addition to the existing synchronous
+`odp_schedule_order_lock()` API. In some implementations and applications,
+there may be a performance advantage to indicating the intent to acquire an
+ordered lock to allow the implementation to prepare for this while the
+application continues parallel processing and then enter the critical section
+protected by the ordered lock at a later time. In this case ordered lock
+protection is not guaranteed until the `odp_schedule_order_lock_wait()` call
+returns.
+
+===== IPsec API miscellaneous changes and enhancements
+IPsec support is further enhanced with the following:
+
+* The `odp_ipsec_ipv4_param_t` and `odp_ipsec_ipv6_param_t` structures
+are added to formalize the specification of IPv4 and IPv6 options in the
+`odp_ipsec_tunnel_param_t` configuration.
+
+* The `mode` field of the `odp_ipsec_out_t` is renamed to `frag_mode` for
+better clarity. In addition the `flag.frag-mode` option bit in the
+`odp_ipsec_out_opt_t` struct is defined to hold per-operation options for
+the `odp_ipsec_out_param_t` struct.
+
+* The `odp_ipsec_capability_t` struct returned by the `odp_ipsec_capability()`
+API is expanded to include the `odp_proto_chksums_t` available on inbound
+IPsec traffic. This indicates whether and how inbound packet checksums may
+be validated for decrypted IPsec traffic.
+
+===== IPsec Traffic Flow Confidentiality (TFC) support
+Traffic Flow Confidentiality (TFC) allows applications to defend against
+traffic analysis attacks by inserting dummy packets as well as add pad bytes
+to packets traversing IPsec flows.
+
+Dummy packets have an L3 type of `ODP_PROTO_L3_TYPE_NONE` in tunnel mode and
+`ODP_PROTO_L4_TYPE_NO_NEXT` in transport mode. Padded packets have additional
+data suffixed to them that extends beyond the L3 or L4 packet lengths.
+
+For RX processing, inline dummy packets may or may not be dropped from the
+inbound packet stream. For lookaside processing they are always visible. For TX
+processing, the `odp_ipsec_out_opt_t` struct specifies the `tfc_pad` bit if
+the packet is to be padded or the `tfc_dummy` bit if a dummy packet is to
+be inserted. The dummy packet length is specified by the `tfc_pad_len` option.
+
+=== Streamlined ABI Support
+ABI support has been reorganized to make it more modular and to omit headers
+and related ABI files when configure to disable this support.
+
+=== Reference Implementation Fixes and Improvements
+The ODP Reference Implementation corporates a number of improvements that
+result in better code organization as well as improved processing efficiency.
+
+==== Pktio null device support
+In the LNG Reference Implemenations of ODP, the `odp_pktio_open()` API may now
+specify devices of class `null` to indicate the PktIO is treated as a dummy
+device. Null devices behave just like Linux `/dev/null` in that they never
+receive packets and simply discard any packets sent to them.
+
+Note that not all ODP implementations may support this device class. The
+specific device classes supported by each ODP implementation may vary and are
+listed in their own documentation.
+
+==== Runtime Scheduler Selection
+The ODP Reference Implementation offers both a default and a number of
+alternate scheduler implementations. Previously these were selectable only at
+`configure` time. They can now be dynamically selected at runtime by the use
+of the `ODP_SCHEDULER` environment variable. If this environment variable is
+not set, the default (basic) scheduler is used. It can be set to select
+alternate schedulers:
+
+* `ODP_SCHEDULER=basic` Explicitly selects the default scheduler
+* `ODP_SCHEDULER=sp` Selects the strict priority scheduler
+* `ODP_SCHEDULER=iquery` Selects the iQuery scheduler
+* `ODP_SCHEDULER=scalable` Selects the scalable scheduler
+
+==== Streamlined Queue Implementation
+The ODP Reference Implementation now uses a ring model for implementing
+ODP queues. This results in greatly improved efficiency for queue operations.
+The default maximum queue depth used is 4096 elements, and this information is
+returned via the `odp_queue_capability()` API.
+
+==== Validation Test Simplification
+The tests that are part of the validation test suite are reorganized and
+simplified by having a single test file for each API rather than separate
+CUnit driver files and test files.
+
+=== Test/Example Improvements
+
+==== Crypto Test Improvements
+The `crypto` validation test suite now offers better information on which
+crypto algorithms were skipped because they are not available. Testing of
+full HMAC lengths is now added
+
+==== ODP Generator Improvements
+The `odp_generator` example now offers configurable RX burst size, selectable
+packet handling (Direct I/O or Scheduled I/O), as well as streamlined packet
+processing.
+
+==== `l2fwd` Example Improvements
+The `l2fwd` example offers improved efficiency via better cache usage.
+
+=== Bug Fixes
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3517[Bug 3517]
+timer test might fail
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3572[Bug 3572]
+time_main test fails if run under heavy load
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3576[Bug 3576]
+classification: CoS queues in invalid table index
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3577[Bug 3577]
+classification: multiqueue CoS will always fail
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3578[Bug 3578]
+classification: requested number of queues is ignored in multiqueue CoS
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3579[Bug 3579]
+cls: capability to return max hash queues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3581[Bug 3581]
+classification: invalid memory access in RSS hash
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3582[Bug 3582]
+classification: incorrect IPv6 RSS hash
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3594[Bug 3594]
+IPsec SA may be used before fully initialized
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3595[Bug 3595]
+IPsec SA lookup may leave extra SAs locked
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3597[Bug 3597]
+new generator test assumes that null:0 pktio is always present
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3613[Bug 3613]
+packet_main test can fail
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3611[Bug 3611]
+ODP linux-generic fails on AArch64 in non-ABI-compat mode
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3618[Bug 3618]
+DPDK pktio stops receiving packets if all configured RX queues are not used
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3628[Bug 3628]
+Another timer_main failure
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3632[Bug 3632]
+Creating a pool with total size over 4.29GB (UINT32_MAX) leads to
+undefined behavior
+
+=== Known Issues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2988[Bug 2988]
+ODP exposes symbols outside of odp*/_odp* namespace
+
== OpenDataPlane (1.17.0.0)
=== New Features
ODP v1.17.0.0 is Tiger Moth Release Candidate 1 (RC 1). It introduces
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 236 insertions(+)
hooks/post-receive
--
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via 3984ba4cd16a02e3fa98ccd432a06663de3fa993 (commit)
via 9b1578f349a35854af7c5b2875cda5589edbda89 (commit)
via 4ed64972ef6e08588592930b32e8a11da45297f5 (commit)
via 6d634f6a0707b068d6dcaf761bf0b918be3871db (commit)
from 92fd43fcb2e4d6c2cee5655ceb5a62a11f82817b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3984ba4cd16a02e3fa98ccd432a06663de3fa993
Author: Petri Savolainen <petri.savolainen(a)linaro.org>
Date: Thu Feb 22 15:26:19 2018 +0200
validation: packet: test packet_data_seg_len
Test the new combined packet data and seg_len function.
Signed-off-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Balasubramanian Manoharan <bala.manoharan(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/validation/api/packet/packet.c b/test/validation/api/packet/packet.c
index 3e8e00d9..03449f26 100644
--- a/test/validation/api/packet/packet.c
+++ b/test/validation/api/packet/packet.c
@@ -636,7 +636,8 @@ static void packet_test_basic_metadata(void)
static void packet_test_length(void)
{
odp_packet_t pkt = test_packet;
- uint32_t buf_len, headroom, tailroom;
+ uint32_t buf_len, headroom, tailroom, seg_len;
+ void *data;
odp_pool_capability_t capa;
CU_ASSERT_FATAL(odp_pool_capability(&capa) == 0);
@@ -644,8 +645,13 @@ static void packet_test_length(void)
buf_len = odp_packet_buf_len(pkt);
headroom = odp_packet_headroom(pkt);
tailroom = odp_packet_tailroom(pkt);
+ data = odp_packet_data(pkt);
+ CU_ASSERT(data != NULL);
CU_ASSERT(odp_packet_len(pkt) == packet_len);
+ CU_ASSERT(odp_packet_seg_len(pkt) <= packet_len);
+ CU_ASSERT(odp_packet_data_seg_len(pkt, &seg_len) == data);
+ CU_ASSERT(seg_len == odp_packet_seg_len(pkt));
CU_ASSERT(headroom >= capa.pkt.min_headroom);
CU_ASSERT(tailroom >= capa.pkt.min_tailroom);
commit 9b1578f349a35854af7c5b2875cda5589edbda89
Author: Petri Savolainen <petri.savolainen(a)linaro.org>
Date: Thu Feb 22 15:08:19 2018 +0200
linux-gen: packet: implement packet_data_seg_len
Implement the new combined packet data and seg_len function.
Signed-off-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Balasubramanian Manoharan <bala.manoharan(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/include/odp/api/plat/packet_inlines.h b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
index b6b49336..ae90ec5b 100644
--- a/platform/linux-generic/include/odp/api/plat/packet_inlines.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
@@ -63,6 +63,13 @@ static inline uint32_t _odp_packet_seg_len(odp_packet_t pkt)
return _odp_pkt_get(pkt, uint32_t, seg_len);
}
+static inline void *_odp_packet_data_seg_len(odp_packet_t pkt,
+ uint32_t *seg_len)
+{
+ *seg_len = _odp_packet_seg_len(pkt);
+ return _odp_packet_data(pkt);
+}
+
static inline uint32_t _odp_packet_len(odp_packet_t pkt)
{
return _odp_pkt_get(pkt, uint32_t, frame_len);
diff --git a/platform/linux-generic/include/odp/api/plat/packet_inlines_api.h b/platform/linux-generic/include/odp/api/plat/packet_inlines_api.h
index d0f3adc1..76210e00 100644
--- a/platform/linux-generic/include/odp/api/plat/packet_inlines_api.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_inlines_api.h
@@ -23,6 +23,11 @@ _ODP_INLINE uint32_t odp_packet_seg_len(odp_packet_t pkt)
return _odp_packet_seg_len(pkt);
}
+_ODP_INLINE void *odp_packet_data_seg_len(odp_packet_t pkt, uint32_t *seg_len)
+{
+ return _odp_packet_data_seg_len(pkt, seg_len);
+}
+
_ODP_INLINE uint32_t odp_packet_len(odp_packet_t pkt)
{
return _odp_packet_len(pkt);
commit 4ed64972ef6e08588592930b32e8a11da45297f5
Author: Petri Savolainen <petri.savolainen(a)linaro.org>
Date: Thu Feb 22 14:53:29 2018 +0200
api: packet: add combined packet data and seg len
Packet data pointer and segment length used often. Combine
two calls into one call. One call performs better in ABI
compatible mode than two calls.
Signed-off-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Balasubramanian Manoharan <bala.manoharan(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/odp/api/spec/packet.h b/include/odp/api/spec/packet.h
index 746f6fbf..e1f2f221 100644
--- a/include/odp/api/spec/packet.h
+++ b/include/odp/api/spec/packet.h
@@ -439,6 +439,22 @@ void *odp_packet_data(odp_packet_t pkt);
*/
uint32_t odp_packet_seg_len(odp_packet_t pkt);
+/**
+ * Packet data pointer with segment length
+ *
+ * Returns both data pointer and number of data bytes (in the segment)
+ * following it. This is equivalent to calling odp_packet_data() and
+ * odp_packet_seg_len().
+ *
+ * @param pkt Packet handle
+ * @param[out] seg_len Pointer to output segment length
+ *
+ * @return Pointer to the packet data
+ *
+ * @see odp_packet_data(), odp_packet_seg_len()
+ */
+void *odp_packet_data_seg_len(odp_packet_t pkt, uint32_t *seg_len);
+
/**
* Packet data length
*
commit 6d634f6a0707b068d6dcaf761bf0b918be3871db
Author: Petri Savolainen <petri.savolainen(a)linaro.org>
Date: Thu Feb 22 09:44:30 2018 +0200
api: packet: improve segmented packet documentation
Improve documentation text to be more explicit that
packets may be segmented.
Signed-off-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Balasubramanian Manoharan <bala.manoharan(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/odp/api/spec/packet.h b/include/odp/api/spec/packet.h
index 079a1ae1..746f6fbf 100644
--- a/include/odp/api/spec/packet.h
+++ b/include/odp/api/spec/packet.h
@@ -401,30 +401,39 @@ uint32_t odp_packet_buf_len(odp_packet_t pkt);
/**
* Packet data pointer
*
- * Returns the current packet data pointer. When a packet is received
- * from packet input, this points to the first byte of the received
- * packet. Packet level offsets are calculated relative to this position.
+ * Returns pointer to the first byte of packet data. When packet is segmented,
+ * only a portion of packet data follows the pointer. When unsure, use e.g.
+ * odp_packet_seg_len() to check the data length following the pointer. Packet
+ * level offsets are calculated relative to this position.
*
- * User can adjust the data pointer with head_push/head_pull (does not modify
- * segmentation) and add_data/rem_data calls (may modify segmentation).
+ * When a packet is received from packet input, this points to the first byte
+ * of the received packet. Pool configuration parameters may be used to ensure
+ * that the first packet segment contains all/most of the data relevant to the
+ * application.
+ *
+ * User can adjust the data pointer with e.g. push_head/pull_head (does not
+ * modify segmentation) and extend_head/trunc_head (may modify segmentation)
+ * calls.
*
* @param pkt Packet handle
*
* @return Pointer to the packet data
*
- * @see odp_packet_l2_ptr(), odp_packet_seg_len()
+ * @see odp_packet_seg_len(), odp_packet_push_head(), odp_packet_extend_head()
*/
void *odp_packet_data(odp_packet_t pkt);
/**
- * Packet segment data length
+ * Packet data length following the data pointer
*
- * Returns number of data bytes following the current data pointer
- * (odp_packet_data()) location in the segment.
+ * Returns number of data bytes (in the segment) following the current data
+ * pointer position. When unsure, use this function to check how many bytes
+ * can be accessed linearly after data pointer (odp_packet_data()). This
+ * equals to odp_packet_len() for single segment packets.
*
* @param pkt Packet handle
*
- * @return Segment data length in bytes (pointed by odp_packet_data())
+ * @return Segment data length in bytes following odp_packet_data()
*
* @see odp_packet_data()
*/
@@ -433,11 +442,14 @@ uint32_t odp_packet_seg_len(odp_packet_t pkt);
/**
* Packet data length
*
- * Returns sum of data lengths over all packet segments.
+ * Returns total data length over all packet segments. This equals the sum of
+ * segment level data lengths (odp_packet_seg_data_len()).
*
* @param pkt Packet handle
*
* @return Packet data length
+ *
+ * @see odp_packet_seg_len(), odp_packet_data(), odp_packet_seg_data_len()
*/
uint32_t odp_packet_len(odp_packet_t pkt);
-----------------------------------------------------------------------
Summary of changes:
include/odp/api/spec/packet.h | 50 +++++++++++++++++-----
.../include/odp/api/plat/packet_inlines.h | 7 +++
.../include/odp/api/plat/packet_inlines_api.h | 5 +++
test/validation/api/packet/packet.c | 8 +++-
4 files changed, 58 insertions(+), 12 deletions(-)
hooks/post-receive
--