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
app/flow-perf: support meter action
[dpdk.git]
/
examples
/
l3fwd
/
l3fwd_em.c
diff --git
a/examples/l3fwd/l3fwd_em.c
b/examples/l3fwd/l3fwd_em.c
index
1a8bc91
..
9996bfb
100644
(file)
--- a/
examples/l3fwd/l3fwd_em.c
+++ b/
examples/l3fwd/l3fwd_em.c
@@
-28,7
+28,7
@@
#include "l3fwd.h"
#include "l3fwd_event.h"
#include "l3fwd.h"
#include "l3fwd_event.h"
-#if defined(RTE_ARCH_X86) || defined(
RTE_MACHINE_CPUFLAG
_CRC32)
+#if defined(RTE_ARCH_X86) || defined(
__ARM_FEATURE
_CRC32)
#define EM_HASH_CRC 1
#endif
#define EM_HASH_CRC 1
#endif
@@
-48,7
+48,7
@@
struct ipv4_5tuple {
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __
attribute__((__packed__))
;
+} __
rte_packed
;
union ipv4_5tuple_host {
struct {
union ipv4_5tuple_host {
struct {
@@
-71,7
+71,7
@@
struct ipv6_5tuple {
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __
attribute__((__packed__))
;
+} __
rte_packed
;
union ipv6_5tuple_host {
struct {
union ipv6_5tuple_host {
struct {
@@
-204,11
+204,9
@@
ipv6_hash_crc(const void *data, __rte_unused uint32_t data_len,
return init_val;
}
return init_val;
}
-#define IPV4_L3FWD_EM_NUM_ROUTES \
- (sizeof(ipv4_l3fwd_em_route_array) / sizeof(ipv4_l3fwd_em_route_array[0]))
+#define IPV4_L3FWD_EM_NUM_ROUTES RTE_DIM(ipv4_l3fwd_em_route_array)
-#define IPV6_L3FWD_EM_NUM_ROUTES \
- (sizeof(ipv6_l3fwd_em_route_array) / sizeof(ipv6_l3fwd_em_route_array[0]))
+#define IPV6_L3FWD_EM_NUM_ROUTES RTE_DIM(ipv6_l3fwd_em_route_array)
static uint8_t ipv4_l3fwd_out_if[L3FWD_HASH_ENTRIES] __rte_cache_aligned;
static uint8_t ipv6_l3fwd_out_if[L3FWD_HASH_ENTRIES] __rte_cache_aligned;
static uint8_t ipv4_l3fwd_out_if[L3FWD_HASH_ENTRIES] __rte_cache_aligned;
static uint8_t ipv6_l3fwd_out_if[L3FWD_HASH_ENTRIES] __rte_cache_aligned;
@@
-217,7
+215,7
@@
static rte_xmm_t mask0;
static rte_xmm_t mask1;
static rte_xmm_t mask2;
static rte_xmm_t mask1;
static rte_xmm_t mask2;
-#if defined(
RTE_MACHINE_CPUFLAG_SSE2
)
+#if defined(
__SSE2__
)
static inline xmm_t
em_mask_key(void *key, xmm_t mask)
{
static inline xmm_t
em_mask_key(void *key, xmm_t mask)
{
@@
-225,7
+223,7
@@
em_mask_key(void *key, xmm_t mask)
return _mm_and_si128(data, mask);
}
return _mm_and_si128(data, mask);
}
-#elif defined(
RTE_MACHINE_CPUFLAG
_NEON)
+#elif defined(
__ARM
_NEON)
static inline xmm_t
em_mask_key(void *key, xmm_t mask)
{
static inline xmm_t
em_mask_key(void *key, xmm_t mask)
{
@@
-233,7
+231,7
@@
em_mask_key(void *key, xmm_t mask)
return vandq_s32(data, mask);
}
return vandq_s32(data, mask);
}
-#elif defined(
RTE_MACHINE_CPUFLAG_ALTIVEC
)
+#elif defined(
__ALTIVEC__
)
static inline xmm_t
em_mask_key(void *key, xmm_t mask)
{
static inline xmm_t
em_mask_key(void *key, xmm_t mask)
{
@@
-305,7
+303,7
@@
em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct)
return (ret < 0) ? portid : ipv6_l3fwd_out_if[ret];
}
return (ret < 0) ? portid : ipv6_l3fwd_out_if[ret];
}
-#if defined RTE_ARCH_X86 || defined
RTE_MACHINE_CPUFLAG
_NEON
+#if defined RTE_ARCH_X86 || defined
__ARM
_NEON
#if defined(NO_HASH_MULTI_LOOKUP)
#include "l3fwd_em_sequential.h"
#else
#if defined(NO_HASH_MULTI_LOOKUP)
#include "l3fwd_em_sequential.h"
#else
@@
-581,8
+579,7
@@
em_parse_ptype(struct rte_mbuf *m)
l3 = (uint8_t *)eth_hdr + sizeof(struct rte_ether_hdr);
if (ether_type == rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4)) {
ipv4_hdr = (struct rte_ipv4_hdr *)l3;
l3 = (uint8_t *)eth_hdr + sizeof(struct rte_ether_hdr);
if (ether_type == rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4)) {
ipv4_hdr = (struct rte_ipv4_hdr *)l3;
- hdr_len = (ipv4_hdr->version_ihl & RTE_IPV4_HDR_IHL_MASK) *
- RTE_IPV4_IHL_MULTIPLIER;
+ hdr_len = rte_ipv4_hdr_len(ipv4_hdr);
if (hdr_len == sizeof(struct rte_ipv4_hdr)) {
packet_type |= RTE_PTYPE_L3_IPV4;
if (ipv4_hdr->next_proto_id == IPPROTO_TCP)
if (hdr_len == sizeof(struct rte_ipv4_hdr)) {
packet_type |= RTE_PTYPE_L3_IPV4;
if (ipv4_hdr->next_proto_id == IPPROTO_TCP)
@@
-620,7
+617,7
@@
em_cb_parse_ptype(uint16_t port __rte_unused, uint16_t queue __rte_unused,
/* main processing loop */
int
/* main processing loop */
int
-em_main_loop(__
attribute__((unused))
void *dummy)
+em_main_loop(__
rte_unused
void *dummy)
{
struct rte_mbuf *pkts_burst[MAX_PKT_BURST];
unsigned lcore_id;
{
struct rte_mbuf *pkts_burst[MAX_PKT_BURST];
unsigned lcore_id;
@@
-687,7
+684,7
@@
em_main_loop(__attribute__((unused)) void *dummy)
if (nb_rx == 0)
continue;
if (nb_rx == 0)
continue;
-#if defined RTE_ARCH_X86 || defined
RTE_MACHINE_CPUFLAG
_NEON
+#if defined RTE_ARCH_X86 || defined
__ARM
_NEON
l3fwd_em_send_packets(nb_rx, pkts_burst,
portid, qconf);
#else
l3fwd_em_send_packets(nb_rx, pkts_burst,
portid, qconf);
#else
@@
-725,7
+722,7
@@
em_event_loop_single(struct l3fwd_event_resources *evt_rsrc,
struct rte_mbuf *mbuf = ev.mbuf;
struct rte_mbuf *mbuf = ev.mbuf;
-#if defined RTE_ARCH_X86 || defined
RTE_MACHINE_CPUFLAG
_NEON
+#if defined RTE_ARCH_X86 || defined
__ARM
_NEON
mbuf->port = em_get_dst_port(lconf, mbuf, mbuf->port);
process_packet(mbuf, &mbuf->port);
#else
mbuf->port = em_get_dst_port(lconf, mbuf, mbuf->port);
process_packet(mbuf, &mbuf->port);
#else
@@
-786,7
+783,7
@@
em_event_loop_burst(struct l3fwd_event_resources *evt_rsrc,
continue;
}
continue;
}
-#if defined RTE_ARCH_X86 || defined
RTE_MACHINE_CPUFLAG
_NEON
+#if defined RTE_ARCH_X86 || defined
__ARM
_NEON
l3fwd_em_process_events(nb_deq, (struct rte_event **)&events,
lconf);
#else
l3fwd_em_process_events(nb_deq, (struct rte_event **)&events,
lconf);
#else
@@
-837,7
+834,7
@@
em_event_loop(struct l3fwd_event_resources *evt_rsrc,
}
int __rte_noinline
}
int __rte_noinline
-em_event_main_loop_tx_d(__
attribute__((unused))
void *dummy)
+em_event_main_loop_tx_d(__
rte_unused
void *dummy)
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();
@@
-847,7
+844,7
@@
em_event_main_loop_tx_d(__attribute__((unused)) void *dummy)
}
int __rte_noinline
}
int __rte_noinline
-em_event_main_loop_tx_d_burst(__
attribute__((unused))
void *dummy)
+em_event_main_loop_tx_d_burst(__
rte_unused
void *dummy)
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();
@@
-857,7
+854,7
@@
em_event_main_loop_tx_d_burst(__attribute__((unused)) void *dummy)
}
int __rte_noinline
}
int __rte_noinline
-em_event_main_loop_tx_q(__
attribute__((unused))
void *dummy)
+em_event_main_loop_tx_q(__
rte_unused
void *dummy)
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();
@@
-867,7
+864,7
@@
em_event_main_loop_tx_q(__attribute__((unused)) void *dummy)
}
int __rte_noinline
}
int __rte_noinline
-em_event_main_loop_tx_q_burst(__
attribute__((unused))
void *dummy)
+em_event_main_loop_tx_q_burst(__
rte_unused
void *dummy)
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();
{
struct l3fwd_event_resources *evt_rsrc =
l3fwd_get_eventdev_rsrc();