Qemu端loopback功能实现

一、Qemu代码调研

分析现有qemu代码,发现hw/net/e1000.c中已有对于e1000的loopback功能实现,其工作原理如图所示:

qemu模拟出来的e1000网卡与主机之间通过tap虚拟网卡(或其他如hub等)进行通信,如上图的peer指针,e1000的loopback功能实现要点在于将Tx的数据包直接调用sender->info->receive,而不是发送数据包时的sender->peer->info->receive,这样Tx的数据包进入Rx流程,到达guest OS进入接收处理流程。

二、virtio-net loopback实现

仿照e1000的流程,对于virtio-net,只需要在Tx发送流程中做同样处理,Tx最终调用函数在virtio_net_flush_tx中.同时增加控制接口与guest OS中的virtio-net driver进行交互,以便在virtio-net driver中控制virtio-net是否工作在loopback模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值