linux网卡驱动的关键就是处理两个问题

来源:本站
导读:目前正在解读《linux网卡驱动的关键就是处理两个问题》的相关信息,《linux网卡驱动的关键就是处理两个问题》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《linux网卡驱动的关键就是处理两个问题》的详细说明。
简介:文章主要介绍了linux网卡驱动的数据发送与接收问题

linux网卡驱动的关键就是处理两个问题

1。如何发送数据

也就是ndev->hard_start_xmit 函数的实现啦。

从上层扔下来的sk_buff中拿到数据,放到网卡的缓冲区里面。

2。如何接收数据

数据的接收是不用提供驱动接口的。

目前多采用中断接收,然后将网卡缓冲区的数据重新打包为sk_buff,扔给上层即可。

netif_rx(skb);

既然接收程序不是驱动提供的接口,可以很灵活的实现。

我们可以另外写个驱动,启动个定时器,周期构造sk_buff,扔给上层即可。

这样做没有什么意义,但可以更好的理解接收是怎么回事。

3。对于多个网卡共用一个驱动,处理起来可能要小心了

系统有2个PCI网卡,使用一个linux RTL8139驱动。

从上层扔下来的sk_buff中拿到数据,这时该怎么办呢???

扔到哪个网卡的缓冲区里面呢?

网卡驱动是看不到IP的,如何做到正确处理的呢?

这点留给今后吧。当然,内核早已经很好的解决这个问题,不用担心。

提醒:《linux网卡驱动的关键就是处理两个问题》最后刷新时间 2024-03-14 01:05:21,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《linux网卡驱动的关键就是处理两个问题》该内容的真实性请自行鉴别。