有什麼簡單的方法可以增加Linux內核中SKB緩衝區的引用計數,以便硬件不會釋放它。增加SKB的引用計數
我知道使用skb_clone引用計數會自動增加,但是我想知道如何在不創建克隆的情況下如何增加SKB引用計數。
我的目的是多次發送相同的數據包,我不想每次都執行此操作的skb_clone,因爲我想重複使用相同的內存。
我使用相同的SKB示例代碼如下所示
for (i=0;i<=100;i++)
{
tmp_skb = skb_get(skb);
if (tmp_skb == NULL)
{
printk ("Clone Failed");
continue;
}
if ((err = dev_queue_xmit(tmp_skb)) != NETDEV_TX_OK) {
if(unlikely(enable_error))
printk("ERROR - DEV QUEUE FAILED %d\n", err);
err = -ENETDOWN; /* Probably we need a better error here */
continue;
}
if (i==100)
{
printk("Loop is done\n");
kfree_skb(skb);
return(len);
}
}
什麼內核版本,什麼底層硬件網絡驅動程序做使用用途? –
我使用的是3.4.10內核版本,而nic卡是intel千兆位nic卡 – codingfreak
只是使用克隆:) –