DPDKカードの初期化

関与するいくつかのオブジェクトDPDKカードの初期化プロセス

DEV

デバイスのPCIに対応するNICデバイス・オブジェクト

同様のネットワークインタフェースifconfigコマンドに対応するポートオブジェクト、

rx_queue / tx_queue

ポートトランシーバキューオブジェクト
マルチコア環境では、ポートはパケットを処理するためのCPUを指定するには、応答パケットを受信することができます。
コンピューティングリソースの初期負荷分散を達成するために、ペンタッドハッシュコア割当処理に従って、送受信キューを増加させることによって
、保留中のCPUの対応するキューに送られ、計算されたハッシュRSSモジュールによって着信パケットのポートごとに

たtx_desc / rx_desc

トランシーバキューのNICドライバのDMA番号。
トランシーバDESCは、送信元/宛先アドレス、長さ、送信およびDMAを受信するために必要な情報を記述する

関連API

トランシーバポートキュー番号、およびポートパラメータを設定します

int rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_queue,
        uint16_t nb_tx_queue, const struct rte_eth_conf *eth_conf);

パケット処理コアトランシーバの数:に従って構成nb_rx_queue / nb_tx_queue

ポートは、受信キューに設定します。rte_eth_dev_info_getはrx_confのデフォルトの設定を取得することができます

int rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
        uint16_t nb_rx_desc, unsigned int socket_id,
        const struct rte_eth_rxconf *rx_conf,
        struct rte_mempool *mb_pool);

nb_rx_descに従って構成:NICハードウェア、にリングmb_poolの数を超えることはできない
mb_pool:NICを- >ドライブの分布は、パケット・メモリ・プールを受け取ります

ポート送信キューを設定します。rte_eth_dev_info_getはtx_confのデフォルトの設定を取得することができます

int rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id,
        uint16_t nb_tx_desc, unsigned int socket_id,
        const struct rte_eth_txconf *tx_conf);

NICハードウェア:に従って構成nb_tx_desc

各NICは、TX / RXディスクリプタが決定され、すべてのポートキューは記述子を共有
rte_eth_rx_queue_setupディスクリプタの番号を、各キューのrte_eth_tx_queue_setupは、QoSキューの最初の認識に基づいて、特定の割り当てを占有できます

おすすめ

転載: www.cnblogs.com/zl-yang/p/11058277.html