rte_mbuf与vring_desc的关系

评论

1 个数据包=1 buf_vector1 数据包=M mbuf1 数据包=N desc

这里N=num_buffers。如果协商了VIRTIO_NET_FMRG_RXBUF,则num_buffers=1(根据消息的实际长度确定)。如果VIRTIO_NET_FMRG_RXBUF 未协商,则num_buffers=1。

rte_mbuf和vring_desc的关系

这里M是根据消息的实际长度来确定的。

buf_vector数组的作用

rte_mbuf和vring_desc的关系

struct buf_vertor数组用于mbuf和desc之间的相互转换。 mbuf 和desc 都通过fill_buf_vec_split(packed) 函数转换为buf_vector[] 数组:

Guest vm tx 方向:mbuf - buf_vector - desc,通过mbuf_to_desc 函数实现。

rte_mbuf和vring_desc的关系

Guest vm rx方向:desc - buf_vector - mbuf,通过copy_desc_to_mbuf函数实现。

mbuf_to_desc 函数:在消息传递给驱动程序之前,会要求用户将消息串入mbuf 链(每个链一条消息),然后将其传递给驱动程序。

用户评论

無極卍盜

这篇文章讲得真详细,rte_mbuf和vring_desc的关系我一直搞不清楚,现在终于明白了。

    有7位网友表示赞同!

冷青裳

看了这个标题,我还以为会很难懂呢,没想到解释得这么清楚,太感谢作者了!

    有7位网友表示赞同!

把孤独喂饱

rte_mbuf和vring_desc的关系,这个点真的很关键,对网络编程有很大帮助。

    有7位网友表示赞同!

弃我者亡

虽然看不懂,但还是想试试理解这两者的关系,希望以后能用到。

    有20位网友表示赞同!

哭花了素颜

作者真是用心良苦,把这么复杂的知识点解释得这么通俗易懂。

    有20位网友表示赞同!

墨染天下

这篇文章让我对rte_mbuf和vring_desc有了新的认识,感谢分享!

    有9位网友表示赞同!

墨城烟柳

这个关系好复杂啊,看了还是有点晕,希望能有人帮忙解答。

    有12位网友表示赞同!

白恍

读完这篇文章,感觉自己对网络编程的理解又深了一层。

    有6位网友表示赞同!

歆久

rte_mbuf和vring_desc的关系,这个标题让我想起了之前的一个难题,现在终于解决了。

    有14位网友表示赞同!

我要变勇敢℅℅

作者真是高手,把这么专业的知识点讲得那么接地气,太佩服了。

    有12位网友表示赞同!

一点一点把你清空

对于初学者来说,这篇文章可能还是有点难度,希望能有更简单的解释。

    有19位网友表示赞同!

念旧情i

这篇文章让我对rte_mbuf和vring_desc有了更深入的理解,真是受益匪浅。

    有9位网友表示赞同!

红尘烟雨

虽然我不是专业人士,但觉得这篇文章很有用,希望能多写一些类似的文章。

    有8位网友表示赞同!

回忆未来

rte_mbuf和vring_desc的关系,这个标题让我想到了以前的项目,现在终于找到答案了。

    有9位网友表示赞同!

〆mè村姑

这篇文章让我对网络编程有了新的认识,感觉自己的知识体系又完善了。

    有7位网友表示赞同!

旧爱剩女

作者解释得很到位,但我觉得可以加上一些实例,这样更容易理解。

    有11位网友表示赞同!

醉红颜

rte_mbuf和vring_desc的关系,这个点我之前一直没搞明白,现在终于豁然开朗了。

    有5位网友表示赞同!

陌上花

这篇文章让我对网络编程有了新的认识,感觉自己的技术水平又提高了。

    有8位网友表示赞同!

龙卷风卷走爱情

看了这篇文章,我对rte_mbuf和vring_desc的关系有了更清晰的认识,感谢作者的分享。

    有8位网友表示赞同!

若他只爱我。

这篇文章让我对网络编程有了更深入的理解,感觉自己的学习方向更明确了。

    有9位网友表示赞同!

标签: