X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fl2fwd-event%2Fl2fwd_common.h;h=396e238c6a2b9334a524511046311ff9c4806947;hb=79aab97c94024c4f969308ec806efb168cccc83d;hp=7e33ee7496690389b7e56ef2a50fd6a2a27cb66a;hpb=080f57bceca4eff7048dc990ec03404d233b885e;p=dpdk.git diff --git a/examples/l2fwd-event/l2fwd_common.h b/examples/l2fwd-event/l2fwd_common.h index 7e33ee7496..396e238c6a 100644 --- a/examples/l2fwd-event/l2fwd_common.h +++ b/examples/l2fwd-event/l2fwd_common.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -56,6 +55,9 @@ #define DEFAULT_TIMER_PERIOD 10 /* default period is 10 seconds */ #define MAX_TIMER_PERIOD 86400 /* 1 day max */ +#define VECTOR_SIZE_DEFAULT MAX_PKT_BURST +#define VECTOR_TMO_NS_DEFAULT 1E6 /* 1ms */ + /* Per-port statistics struct */ struct l2fwd_port_statistics { uint64_t dropped; @@ -63,20 +65,30 @@ struct l2fwd_port_statistics { uint64_t rx; } __rte_cache_aligned; +/* Event vector attributes */ +struct l2fwd_event_vector_params { + uint8_t enabled; + uint16_t size; + uint64_t timeout_ns; +}; + struct l2fwd_resources { volatile uint8_t force_quit; uint8_t event_mode; uint8_t sched_type; uint8_t mac_updating; uint8_t rx_queue_per_lcore; + bool port_pairs; uint16_t nb_rxd; uint16_t nb_txd; uint32_t enabled_port_mask; uint64_t timer_period; struct rte_mempool *pktmbuf_pool; + struct rte_mempool *evt_vec_pool; uint32_t dst_ports[RTE_MAX_ETHPORTS]; struct rte_ether_addr eth_addr[RTE_MAX_ETHPORTS]; struct l2fwd_port_statistics port_stats[RTE_MAX_ETHPORTS]; + struct l2fwd_event_vector_params evt_vec; void *evt_rsrc; void *poll_rsrc; } __rte_cache_aligned; @@ -91,11 +103,11 @@ l2fwd_mac_updating(struct rte_mbuf *m, uint32_t dest_port_id, eth = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); /* 02:00:00:00:00:xx */ - tmp = ð->d_addr.addr_bytes[0]; + tmp = ð->dst_addr.addr_bytes[0]; *((uint64_t *)tmp) = 0x000000000002 + ((uint64_t)dest_port_id << 40); /* src addr */ - rte_ether_addr_copy(addr, ð->s_addr); + rte_ether_addr_copy(addr, ð->src_addr); } static __rte_always_inline struct l2fwd_resources *