Loopback回环网卡设备及其驱动的实现
Loopback回环网卡设备及其驱动实现开发进度
Loopback开发思路
参考virto_net网卡,Loopback设备自顶向下由LoopbackInterface层、LoopbackDeviceInnerWapper层、LoopbackDeviceInner层、Loopback层实现,每层有自己的功能实现。
Loopback层是Loopback实现的核心,其结构为一个VecDeque<Vec<v8»,VecDeque<Vec<v8»负责形成回环结构,从头部发送数据,接收的数据从尾部传入,FIFO。
对LoopbackDeviceInner层实现phy::Device接口,重写capability函数、receive函数、transmit函数;
capability函数重写:创建默认DeviceCapability结构体,设置max_transmission_unit = 65535;设置max_burst_size = 1;
receive函数重写:在这个方法中,我们首先尝试从self.inner.lock().queue的前端弹出一个数据包。这个队列是一个VecDeque<Vec
transmit函数重写: 返回Loopback的queue用于send
对LoopbackDeviceInnerWapper层实现Send、Sync、Deref、DereMut
对LoopbackInterface实现Device、NetDevice、KObject
以上是初步实现Loopback的大致思路,如果有不妥的地方,希望大家留言纠正!
Loopback驱动开发思路
目前开发进度到Loopback设备实现。