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 e1502b233407b5dfaf530de5c3cf97a5c20ab92b (commit)
from 9405b1770b78b774e7dbe6073f3f85d709541a26 (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 e1502b233407b5dfaf530de5c3cf97a5c20ab92b
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Wed Jul 13 19:23:16 2016 -0500
linux-generic: pktio: remove doxygen for unused socket_id parameter
The ODP version of the _ring_create() routine does not use a socket_id
parameter, so remove the doxygen that refers to it to resolve Bug
https://bugs.linaro.org/show_bug.cgi?id=2413
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/include/odp_packet_io_ring_internal.h b/platform/linux-generic/include/odp_packet_io_ring_internal.h
index f1188c3..d044f93 100644
--- a/platform/linux-generic/include/odp_packet_io_ring_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_ring_internal.h
@@ -180,7 +180,6 @@ typedef struct _ring {
* The name of the ring.
* @param count
* The size of the ring (must be a power of 2).
- * @param socket_id (dummy, not included : todo)
* @param flags
* An OR of the following:
* - RING_F_SP_ENQ: If this flag is set, the default behavior when
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/include/odp_packet_io_ring_internal.h | 1 -
1 file changed, 1 deletion(-)
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, next has been updated
discards c53a2a74017a8b61a7b37bf43f2e9663e9faf8a3 (commit)
discards 35e5e2bc98dcf673f63016e10a374cdf18689d92 (commit)
via 93e8b141c7bdfa626f8d058e4566760e13551155 (commit)
via 3bff219f684de044bd5ab83137e1e85093a622eb (commit)
via c595949e3e724102f2cdbd5edefcdc83f7b754fe (commit)
via 9405b1770b78b774e7dbe6073f3f85d709541a26 (commit)
via 86939bf150967b4f2a9f0580aab9727388662496 (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (c53a2a74017a8b61a7b37bf43f2e9663e9faf8a3)
\
N -- N -- N (93e8b141c7bdfa626f8d058e4566760e13551155)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
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 93e8b141c7bdfa626f8d058e4566760e13551155
Author: Barry Spinney <spinney(a)mellanox.com>
Date: Wed Jul 13 11:59:40 2016 -0500
api: tm: resolve todo
This todo just asks a question which is no longer important.
Signed-off-by: Barry Spinney <spinney(a)mellanox.com>
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/odp/api/spec/traffic_mngr.h b/include/odp/api/spec/traffic_mngr.h
index c9e6f8f..3473648 100644
--- a/include/odp/api/spec/traffic_mngr.h
+++ b/include/odp/api/spec/traffic_mngr.h
@@ -93,7 +93,6 @@ extern "C" {
* @def ODP_TM_MAX_TM_NODE_FANIN
* The largest number of fan-in "inputs" that can be simultaneously connected
* to a single tm_node.
- * @todo Does this need to be as large as ODP_TM_MAX_TM_QUEUES?
*/
/**
@@ -886,7 +885,7 @@ typedef struct {
/** In the case that sched_modes for a given strict priority level
* indicates the use of weighted scheduling, this field supplies the
* weighting factors. The weights - when defined - are used such that
- * the (adjusted) frame lengths are divided by these 8-bit weights
+ * the (adjusted) frame lengths are divided by these 8-bit weights
* (i.e. they are divisors and not multipliers). Consequently a
* weight of 0 (when sched_mode is ODP_TM_BYTE_BASED_WEIGHTS) is
* illegal. */
commit 3bff219f684de044bd5ab83137e1e85093a622eb
Author: Balasubramanian Manoharan <bala.manoharan(a)linaro.org>
Date: Tue Jun 28 17:35:54 2016 +0530
api: traffic_mngr: Add pktio interface to odp_tm_egress_t struct
Replaces pktio interface as input to TM system instead of
odp_pktout_queue_t.This creates an 1 to 1 mapping between a TM system
and pktio interface.
Signed-off-by: Balasubramanian Manoharan <bala.manoharan(a)linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen(a)nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/odp/api/spec/traffic_mngr.h b/include/odp/api/spec/traffic_mngr.h
index 83b89e7..c9e6f8f 100644
--- a/include/odp/api/spec/traffic_mngr.h
+++ b/include/odp/api/spec/traffic_mngr.h
@@ -270,6 +270,12 @@ typedef struct {
* have their fan_in only from tm_queues. */
uint8_t max_levels;
+ /** egress_fcn_supported indicates whether the tm system supports
+ * egress function. It is an optional feature used to receive the
+ * packet from the tm system and its performance might be limited.
+ */
+ odp_bool_t egress_fcn_supported;
+
/** tm_queue_shaper_supported indicates that the tm_queues support
* proper TM shaping. Note that TM Shaping is NOT the same thing as
* Ingress Metering/Policing as specified by RFC 2697 (A Single Rate
@@ -467,7 +473,7 @@ typedef struct {
odp_tm_egress_kind_t egress_kind; /**< Union discriminator */
union {
- odp_pktout_queue_t pktout;
+ odp_pktio_t pktio;
odp_tm_egress_fcn_t egress_fcn;
};
} odp_tm_egress_t;
diff --git a/platform/linux-generic/include/odp_traffic_mngr_internal.h b/platform/linux-generic/include/odp_traffic_mngr_internal.h
index 15451ac..e4bc5ce 100644
--- a/platform/linux-generic/include/odp_traffic_mngr_internal.h
+++ b/platform/linux-generic/include/odp_traffic_mngr_internal.h
@@ -380,7 +380,7 @@ typedef struct {
tm_queue_info_t priority_info[ODP_TM_MAX_PRIORITIES];
tm_random_data_t tm_random_data;
-
+ odp_pktout_queue_t pktout;
uint64_t current_time;
uint8_t tm_idx;
uint8_t first_enq;
diff --git a/platform/linux-generic/odp_traffic_mngr.c b/platform/linux-generic/odp_traffic_mngr.c
index 7a8b647..e668bf9 100644
--- a/platform/linux-generic/odp_traffic_mngr.c
+++ b/platform/linux-generic/odp_traffic_mngr.c
@@ -2108,7 +2108,7 @@ static void tm_send_pkt(tm_system_t *tm_system, uint32_t max_sends)
tm_system->egress_pkt_desc = EMPTY_PKT_DESC;
if (tm_system->egress.egress_kind == ODP_TM_EGRESS_PKT_IO)
- odp_pktout_send(tm_system->egress.pktout, &odp_pkt, 1);
+ odp_pktout_send(tm_system->pktout, &odp_pkt, 1);
else if (tm_system->egress.egress_kind == ODP_TM_EGRESS_FN)
tm_system->egress.egress_fcn(odp_pkt);
else
@@ -2426,6 +2426,7 @@ int odp_tm_capabilities(odp_tm_capabilities_t capabilities[] ODP_UNUSED,
cap_ptr->max_tm_queues = ODP_TM_MAX_TM_QUEUES;
cap_ptr->max_levels = ODP_TM_MAX_LEVELS;
cap_ptr->tm_queue_shaper_supported = true;
+ cap_ptr->egress_fcn_supported = true;
cap_ptr->tm_queue_wred_supported = true;
cap_ptr->tm_queue_dual_slope_supported = true;
cap_ptr->vlan_marking_supported = true;
@@ -2607,6 +2608,7 @@ odp_tm_t odp_tm_create(const char *name,
tm_system_t *tm_system;
odp_bool_t create_fail;
odp_tm_t odp_tm;
+ odp_pktout_queue_t pktout;
uint32_t malloc_len, max_num_queues, max_queued_pkts, max_timers;
uint32_t max_tm_queues, max_sorted_lists;
int rc;
@@ -2627,6 +2629,10 @@ odp_tm_t odp_tm_create(const char *name,
return ODP_TM_INVALID;
}
+ if (odp_pktout_queue(egress->pktio, &pktout, 1) != 1)
+ return ODP_TM_INVALID;
+
+ tm_system->pktout = pktout;
tm_system->name_tbl_id = name_tbl_id;
max_tm_queues = requirements->max_tm_queues;
memcpy(&tm_system->egress, egress, sizeof(odp_tm_egress_t));
diff --git a/test/validation/traffic_mngr/traffic_mngr.c b/test/validation/traffic_mngr/traffic_mngr.c
index 1c4e90b..b857800 100644
--- a/test/validation/traffic_mngr/traffic_mngr.c
+++ b/test/validation/traffic_mngr/traffic_mngr.c
@@ -323,7 +323,7 @@ static odp_pktio_t pktios[MAX_NUM_IFACES];
static odp_pktin_queue_t pktins[MAX_NUM_IFACES];
static odp_pktout_queue_t pktouts[MAX_NUM_IFACES];
static odp_pktin_queue_t rcv_pktin;
-static odp_pktout_queue_t xmt_pktout;
+static odp_pktio_t xmt_pktio;
static odph_ethaddr_t src_mac;
static odph_ethaddr_t dst_mac;
@@ -543,7 +543,7 @@ static int open_pktios(void)
}
if (2 <= num_ifaces) {
- xmt_pktout = pktouts[0];
+ xmt_pktio = pktios[0];
rcv_pktin = pktins[1];
ret = odp_pktio_start(pktios[1]);
if (ret != 0) {
@@ -551,7 +551,7 @@ static int open_pktios(void)
return -1;
}
} else {
- xmt_pktout = pktouts[0];
+ xmt_pktio = pktios[0];
rcv_pktin = pktins[0];
}
@@ -1627,7 +1627,7 @@ static int create_tm_system(void)
}
egress.egress_kind = ODP_TM_EGRESS_PKT_IO;
- egress.pktout = xmt_pktout;
+ egress.pktio = xmt_pktio;
snprintf(tm_name, sizeof(tm_name), "TM_system_%u", num_odp_tm_systems);
odp_tm = odp_tm_create(tm_name, &requirements, &egress);
commit c595949e3e724102f2cdbd5edefcdc83f7b754fe
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Tue May 10 18:34:37 2016 +0300
api: system: specify default huge page size
System can have different sizes for huge pages. Clarify that
this api returns default system huge page size, which is usually
2Mb on x86 reachable with:
grep Hugepagesize: /proc/meminfo
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen(a)nokia.com>
diff --git a/include/odp/api/spec/system_info.h b/include/odp/api/spec/system_info.h
index 6957731..c5a5fd0 100644
--- a/include/odp/api/spec/system_info.h
+++ b/include/odp/api/spec/system_info.h
@@ -24,9 +24,9 @@ extern "C" {
*/
/**
- * Huge page size in bytes
+ * Default system huge page size in bytes
*
- * @return Huge page size in bytes
+ * @return Default huge page size in bytes
*/
uint64_t odp_sys_huge_page_size(void);
-----------------------------------------------------------------------
Summary of changes:
include/odp/api/spec/traffic_mngr.h | 3 +-
.../include/odp_traffic_mngr_internal.h | 3 ++
platform/linux-generic/odp_name_table.c | 2 +-
platform/linux-generic/odp_traffic_mngr.c | 37 ++++++++--------------
4 files changed, 19 insertions(+), 26 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, api-next has been updated
via 77a27212b563299959fb2a609b86bb9117a8f918 (commit)
via ca7514cf4325838ca04c3a21a972cb963efd07a4 (commit)
via 9405b1770b78b774e7dbe6073f3f85d709541a26 (commit)
via 86939bf150967b4f2a9f0580aab9727388662496 (commit)
via 7f87f43fca88cac2cd36ed5fcffcea8ebee10694 (commit)
via 8b10c2fece805dd35b7396526ee0a09b8fee91c7 (commit)
via 43cad57aab56e07303514e6f8d2c85d773a3a2d4 (commit)
via fbe74cce0bbe02430de3439b594bf712e791419a (commit)
from 1e919d30be9ecf9683e30bba3f6109d9356b4638 (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 77a27212b563299959fb2a609b86bb9117a8f918
Author: Barry Spinney <spinney(a)mellanox.com>
Date: Wed Jul 13 11:59:40 2016 -0500
api: tm: resolve todo
This todo just asks a question which is no longer important.
Signed-off-by: Barry Spinney <spinney(a)mellanox.com>
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/odp/api/spec/traffic_mngr.h b/include/odp/api/spec/traffic_mngr.h
index c9e6f8f..3473648 100644
--- a/include/odp/api/spec/traffic_mngr.h
+++ b/include/odp/api/spec/traffic_mngr.h
@@ -93,7 +93,6 @@ extern "C" {
* @def ODP_TM_MAX_TM_NODE_FANIN
* The largest number of fan-in "inputs" that can be simultaneously connected
* to a single tm_node.
- * @todo Does this need to be as large as ODP_TM_MAX_TM_QUEUES?
*/
/**
@@ -886,7 +885,7 @@ typedef struct {
/** In the case that sched_modes for a given strict priority level
* indicates the use of weighted scheduling, this field supplies the
* weighting factors. The weights - when defined - are used such that
- * the (adjusted) frame lengths are divided by these 8-bit weights
+ * the (adjusted) frame lengths are divided by these 8-bit weights
* (i.e. they are divisors and not multipliers). Consequently a
* weight of 0 (when sched_mode is ODP_TM_BYTE_BASED_WEIGHTS) is
* illegal. */
commit ca7514cf4325838ca04c3a21a972cb963efd07a4
Merge: 1e919d3 9405b17
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Thu Jul 14 12:53:48 2016 +0300
Merge branch 'master' into api-next
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
-----------------------------------------------------------------------
Summary of changes:
doc/images/abi_llvm.svg | 125 ++++++
doc/images/abi_traditional.svg | 89 +++++
doc/implementers-guide/implementers-guide.adoc | 430 ++++++++++++++-------
include/odp/api/spec/traffic_mngr.h | 3 +-
.../include/odp_traffic_mngr_internal.h | 3 +
platform/linux-generic/odp_name_table.c | 2 +-
platform/linux-generic/odp_traffic_mngr.c | 37 +-
test/performance/odp_l2fwd.c | 3 +
8 files changed, 532 insertions(+), 160 deletions(-)
create mode 100644 doc/images/abi_llvm.svg
create mode 100644 doc/images/abi_traditional.svg
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 9405b1770b78b774e7dbe6073f3f85d709541a26 (commit)
via 86939bf150967b4f2a9f0580aab9727388662496 (commit)
from 7f87f43fca88cac2cd36ed5fcffcea8ebee10694 (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 9405b1770b78b774e7dbe6073f3f85d709541a26
Author: Barry Spinney <spinney(a)mellanox.com>
Date: Wed Jul 13 11:59:42 2016 -0500
linux-generic: tm: Add pthread_join call when destroying
Resolved a valgrind issue by adding pthread_join and pthread_attr_destroy
calls when destroying a tm_system.
Also resolve a todo by removing some code that was being #if'd out.
Signed-off-by: Barry Spinney <spinney(a)mellanox.com>
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/include/odp_traffic_mngr_internal.h b/platform/linux-generic/include/odp_traffic_mngr_internal.h
index 85a31e9..15451ac 100644
--- a/platform/linux-generic/include/odp_traffic_mngr_internal.h
+++ b/platform/linux-generic/include/odp_traffic_mngr_internal.h
@@ -19,6 +19,7 @@
extern "C" {
#endif
+#include <pthread.h>
#include <odp/api/traffic_mngr.h>
#include <odp/api/packet_io.h>
#include <odp_name_table_internal.h>
@@ -352,6 +353,8 @@ typedef struct {
odp_barrier_t tm_system_destroy_barrier;
odp_atomic_u64_t destroying;
_odp_int_name_t name_tbl_id;
+ pthread_t thread;
+ pthread_attr_t attr;
void *trace_buffer;
uint32_t next_queue_num;
diff --git a/platform/linux-generic/odp_traffic_mngr.c b/platform/linux-generic/odp_traffic_mngr.c
index aa14b6b..7a8b647 100644
--- a/platform/linux-generic/odp_traffic_mngr.c
+++ b/platform/linux-generic/odp_traffic_mngr.c
@@ -2580,19 +2580,19 @@ static uint32_t tm_thread_cpu_select(void)
static int tm_thread_create(tm_system_t *tm_system)
{
- pthread_attr_t attr;
- pthread_t thread;
cpu_set_t cpu_set;
uint32_t cpu_num;
int rc;
- pthread_attr_init(&attr);
+ pthread_attr_init(&tm_system->attr);
cpu_num = tm_thread_cpu_select();
CPU_ZERO(&cpu_set);
CPU_SET(cpu_num, &cpu_set);
- pthread_attr_setaffinity_np(&attr, sizeof(cpu_set_t), &cpu_set);
+ pthread_attr_setaffinity_np(&tm_system->attr, sizeof(cpu_set_t),
+ &cpu_set);
- rc = pthread_create(&thread, &attr, tm_system_thread, tm_system);
+ rc = pthread_create(&tm_system->thread, &tm_system->attr,
+ tm_system_thread, tm_system);
if (rc != 0)
ODP_DBG("Failed to start thread on cpu num=%u\n", cpu_num);
@@ -2748,16 +2748,22 @@ int odp_tm_capability(odp_tm_t odp_tm, odp_tm_capabilities_t *capabilities)
int odp_tm_destroy(odp_tm_t odp_tm)
{
tm_system_t *tm_system;
+ int rc;
tm_system = GET_TM_SYSTEM(odp_tm);
- /* First mark the tm_system as being in the destroying state so that
- * all new pkts are prevented from coming in.
- */
+ /* First mark the tm_system as being in the destroying state so that
+ * all new pkts are prevented from coming in.
+ */
odp_barrier_init(&tm_system->tm_system_destroy_barrier, 2);
odp_atomic_inc_u64(&tm_system->destroying);
odp_barrier_wait(&tm_system->tm_system_destroy_barrier);
+ /* Next wait for the thread to exit. */
+ rc = pthread_join(tm_system->thread, NULL);
+ ODP_ASSERT(rc == 0);
+ pthread_attr_destroy(&tm_system->attr);
+
input_work_queue_destroy(tm_system->input_work_queue);
_odp_sorted_pool_destroy(tm_system->_odp_int_sorted_pool);
_odp_queue_pool_destroy(tm_system->_odp_int_queue_pool);
@@ -4104,21 +4110,6 @@ int odp_tm_enq_with_cnt(odp_tm_queue_t tm_queue, odp_packet_t pkt)
return pkt_cnt;
}
-#ifdef NOT_USED /* @todo use or delete */
-static uint32_t odp_tm_input_work_queue_fullness(odp_tm_t odp_tm ODP_UNUSED)
-{
- input_work_queue_t *input_work_queue;
- tm_system_t *tm_system;
- uint32_t queue_cnt, fullness;
-
- tm_system = GET_TM_SYSTEM(odp_tm);
- input_work_queue = tm_system->input_work_queue;
- queue_cnt = odp_atomic_load_u64(&input_work_queue->queue_cnt);
- fullness = (100 * queue_cnt) / INPUT_WORK_RING_SIZE;
- return fullness;
-}
-#endif
-
int odp_tm_node_info(odp_tm_node_t tm_node, odp_tm_node_info_t *info)
{
tm_queue_thresholds_t *threshold_params;
commit 86939bf150967b4f2a9f0580aab9727388662496
Author: Barry Spinney <spinney(a)mellanox.com>
Date: Wed Jul 13 11:59:41 2016 -0500
linux-generic: tm: resolve todo in odp_name_table.c
Resolved todo by just removing the comment.
Signed-off-by: Barry Spinney <spinney(a)mellanox.com>
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/odp_name_table.c b/platform/linux-generic/odp_name_table.c
index 675d96d..b116904 100644
--- a/platform/linux-generic/odp_name_table.c
+++ b/platform/linux-generic/odp_name_table.c
@@ -956,7 +956,7 @@ uint64_t _odp_int_name_tbl_user_data(_odp_int_name_t odp_name)
name_tbl_entry = name_tbl_id_parse(odp_name, NULL);
if (!name_tbl_entry)
- return 0; /* @todo */
+ return 0;
else
return name_tbl_entry->user_data;
}
-----------------------------------------------------------------------
Summary of changes:
.../include/odp_traffic_mngr_internal.h | 3 ++
platform/linux-generic/odp_name_table.c | 2 +-
platform/linux-generic/odp_traffic_mngr.c | 37 ++++++++--------------
3 files changed, 18 insertions(+), 24 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 7f87f43fca88cac2cd36ed5fcffcea8ebee10694 (commit)
from 8b10c2fece805dd35b7396526ee0a09b8fee91c7 (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 7f87f43fca88cac2cd36ed5fcffcea8ebee10694
Author: Matias Elo <matias.elo(a)nokia.com>
Date: Thu Jul 7 17:52:27 2016 +0300
test: l2fwd: prefetch packet data
Prefetch ethernet addresses. This is a no-op on odp-linux but improves
performance significantly on odp-dpdk implementation.
Signed-off-by: Matias Elo <matias.elo(a)nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/performance/odp_l2fwd.c b/test/performance/odp_l2fwd.c
index 164f7f5..e296b94 100644
--- a/test/performance/odp_l2fwd.c
+++ b/test/performance/odp_l2fwd.c
@@ -255,6 +255,9 @@ static inline void fill_eth_addrs(odp_packet_t pkt_tbl[],
for (i = 0; i < num; ++i) {
pkt = pkt_tbl[i];
+
+ odp_packet_prefetch(pkt, 0, ODPH_ETHHDR_LEN);
+
if (odp_packet_has_eth(pkt)) {
eth = (odph_ethhdr_t *)odp_packet_l2_ptr(pkt, NULL);
-----------------------------------------------------------------------
Summary of changes:
test/performance/odp_l2fwd.c | 3 +++
1 file changed, 3 insertions(+)
hooks/post-receive
--