1,simple:前后端通用
这是最简单的一种情况,对应最大1518 bytes包长的报文。此时只需要一个单独的描述符就可以表示一个完整的报文。
2,jumbo:vm前端构造vhost后端使用
这种情况一般用于jumbo帧,即大于1518 bytes的报文。此时用一个描述符链表装载一个完整报文,除了链表末尾的描述符以外,其他的描述符的next指针都指向下一个描述符,且其flag带有VRING_DESC_F_NEXT标识。 这里要注意的是,虽然一个描述符链表实际上有多个描述符,但它们隶属同一个逻辑描述符,所以在virtio net header中,num_buffers为1。另外要注意的是,上述逻辑描述符是由前端虚拟机分配的,后端能够使用这种链式的逻辑描述符,但是不能构造它,也就是说后端并不能自己去把多个简单描述符串起来形成一个链式的逻辑描述符交给前端。链式逻辑描述符除了第一个简单描述符的索引会出现在available ring和used ring里面,链表后面的简单描述符的索引不会出现在available ring和used ring里。