26 #ifndef AUXLIB_ETHERNET_H 27 #define AUXLIB_ETHERNET_H 33 #include <rte_config.h> 34 #include <rte_ether.h> 37 #define BURST_SIZE 4096 40 #define FLEXRAN_UP_VLAN_TAG 2 41 #define ETHER_TYPE_ETHDI ETHER_TYPE_IPv4 42 #define ETHER_TYPE_ECPRI 0xAEFE 43 #define ETHER_TYPE_SYNC 0xBEFE 44 #define ETHER_TYPE_START_TX 0xCEFE 46 #define NUM_MBUFS 65536 47 #define MBUF_CACHE 256 49 #define MBUF_POOL_ELM_SMALL 1500 50 #define MBUF_POOL_ELEMENT MAX_RX_LEN 52 #define MAX_RX_LEN 9600 53 #define MAX_TX_LEN (MAX_RX_LEN - 14) 54 #define MAX_DATA_SIZE (MAX_TX_LEN - sizeof(struct ether_hdr) - \ 55 sizeof(struct ethdi_hdr) - sizeof(struct burst_hdr)) 58 #define MBUF_POOL_ELM_BIG USHRT_MAX 59 #define NUM_MBUFS_BIG 64 61 #define DEFAULT_DUMP_LENGTH 96 89 static char *
const xran_pkt_descriptions[
PKT_LAST + 1] = {
92 "discovery request packet",
95 "discovery reply packet",
100 "Add ethernet port command packet",
127 void xran_memdump(
void *addr,
int len);
128 void xran_add_eth_hdr(
struct ether_addr *dst, uint16_t
ethertype,
struct rte_mbuf *);
129 int xran_send_mbuf(
struct ether_addr *dst,
struct rte_mbuf *mb);
130 int xran_send_message_burst(
int dst_id,
int pkt_type,
void *body,
int len);
131 int xran_show_delayed_message(
void);
138 #define nlog(m, ...) __xran_delayed_msg("%s(): " m "\n", __FUNCTION__, ##__VA_ARGS__) 139 #define delayed_message nlog 140 #define wlog(m, ...) nlog("WARNING: " m, ##__VA_ARGS__) 141 #define elog(m, ...) nlog("ERROR: " m, ##__VA_ARGS__) 143 # define dlog(m, ...) nlog("DEBUG: " m, ##__VA_ARGS__) 145 # define dlog(m, ...) 148 #define PANIC_ON(x, m, ...) do { if (unlikely(x)) \ 149 rte_panic("%s: " m "\n", #x, ##__VA_ARGS__); } while (0) 152 static inline int xran_enqueue_mbuf(
struct rte_mbuf *mb,
struct rte_ring *r)
154 if (rte_ring_enqueue(r, mb) == 0) {
158 rte_pktmbuf_free(mb);
159 wlog(
"failed to enqueue packet on port %d (ring full)", mb->port);
void xran_add_eth_hdr_vlan(struct ether_addr *dst, uint16_t ethertype, struct rte_mbuf *mb, uint16_t vlan_tci)
struct rte_mempool * _eth_mbuf_pool_big
void xran_init_port(int port, struct ether_addr *p_lls_cu_addr)
int __xran_delayed_msg(const char *fmt,...)
struct rte_mempool * _eth_mbuf_pool_small
struct rte_mempool * socket_indirect_pool
void xran_init_mbuf_pool(void)
struct rte_mempool * _eth_mbuf_pool
struct rte_mempool * socket_direct_pool