91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-22
  • 語言: 其他
  • 標簽: dpdk??

資源簡介

使用dpdk的模式抓取網卡上的數據包,使用多線程安全,無鎖隊列

資源截圖

代碼片段和文件信息

#include?“jz_dpdk_api.h“??
#include?“ini/iniparser.h“??
??
/**************************宏********************************/??
#define?NUM_MBUFS_?8191??
#define?MBUF_CACHE_SIZE_?512??
#define?RX_RING_SIZE_?128??
#define?TX_RING_SIZE_?512??
??
/**************************全局變量**************************/??
int?rx_number??=?0;??
uint64_t?total_pkts[512]?=?{0};??
uint64_t?last_total_pkts[512]?=?{0};??
uint64_t?total_pkts_bytes[512]?=?{0};??
uint64_t?last_total_pkts_bytes[512]?=?{0};??
uint64_t?last_time?=?0;??
static?const?struct?rte_eth_conf?port_conf_default?=???
{??
????.rxmode?=?{??
????????????????.max_rx_pkt_len?=?ETHER_MAX_LEN??
????????????????.mq_mode?=?ETH_MQ_RX_RSS??
??????????????}??
????.rx_adv_conf?=?{??
????????????.rss_conf?=?{??
????????????????.rss_key?=?NULL??
????????????????.rss_hf?=?ETH_RSS_IP??
????????????}??????
????????}??
};??
??
/**************************函數聲明*************************/??
static?int??config_init(const?char?*filename);??
static?int??port_init(int?portstruct?rte_mempool?*mbuf_pool);??
static?void?recv_pkt_init(void);??
??
/**************************接口實現*************************/??
int?jz_dpdk_init(int?argcchar?**argv)??
{??
????const?char?*filename?=?“conf.ini“;??
??
????//?0.配置文件讀取??
????rx_number?=?config_init(filename);??
????if(?rx_number?????{??
????????printf(“錯誤:讀取配置文件[conf.ini]?失敗!\n“);??
????????return?-1;??
????}??
??????
????//?1.?DPDK?EAL初始化??
????if(?rte_eal_init(argcargv)?????{??
????????printf(“錯誤:EAL初始化失敗!\n“);??
????????return?-1;??
????}??
????else??
????{??
?????????printf(“EAL初始化成功。\n“);??
????}??
??
????//?2.?檢測至少有一個端口(即網口)??
????if(?rte_eth_dev_count()?!=?1)??
????{??
????????printf(“錯誤:只能有一個端口(網口)。\n“);??
????????return?-1;??
????}??
??
????//?3.?內存池的創建??
????struct?rte_mempool?*mbuf_pool?=?rte_pktmbuf_pool_create(“JZ_MBUF_POOL“??
????????????????????????????????????NUM_MBUFS_?*?rte_eth_dev_count()?MBUF_CACHE_SIZE_?0??
????????????????????????????????????RTE_MBUF_DEFAULT_BUF_SIZE?rte_socket_id());??
????if(?NULL?==?mbuf_pool?)??
????{??
????????printf(“錯誤:創建內存池失敗。\n“);??
????????return?-1;??
????}??
????else??
????{??
?????????printf(“創建內存池成功。\n“);??
????}??
??
????//?4.?對端口進行初始化??
????int?port?=?0;??
????for?(;?port?????{??
????????if(?port_init(port?mbuf_pool)?????????{??
????????????printf(“錯誤:端口初始化失敗。\n“);??
????????????return?-1;??
????????}??
????????else??
????????{??
?????????????printf(“端口初始化成功。\n“);??
????????}??
????}??
??????
????recv_pkt_init();??
????printf(“\n恭喜:jz_dpdk?初始化成功!\n“);??
??????
????return?0;??
}??
??
int?jz_dpdk_recv_pkts(uint8_t?port_iduint16_t?queue_idstruct?rte_mbuf?*pkts[]const?uint16_t?nb_pkts)??
{??
????uint16_t?nb_rx?=?rte_eth_rx_burst(port_id?queue_id?pkts?nb_pkts);??
??????
????if(?nb_rx?>?0)??
????{??
????????total_pkts[queue_id]?+=?nb_rx;??
????????uint16_t?i;??
??
????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????7571??2018-06-20?16:45??jz_dpdk17.5\jz_dpdk_api.c

?????文件???????2183??2018-06-20?16:45??jz_dpdk17.5\jz_dpdk_api.h

?????文件???????2096??2018-06-20?15:04??jz_dpdk17.5\makefile

?????文件????????622??2018-06-20?15:18??jz_dpdk17.5\Makefile.txt

?????目錄??????????0??2018-06-20?16:55??jz_dpdk17.5

-----------?---------??----------?-----??----

????????????????12472????????????????????5


評論

共有 條評論