Linux API 之网络设备与 RDMA 详解
1. 网络设备分配与初始化
在 Linux 系统中,网络设备的分配和初始化是网络编程的基础操作。 alloc_netdev(sizeof_priv, name, setup) 宏用于分配和初始化一个网络设备。它实际上是 alloc_netdev_mqs() 的封装,默认使用一个发送队列(Tx)和一个接收队列(Rx)。其中, sizeof_priv 是为私有数据分配的空间大小, setup 方法是用于初始化网络设备的回调函数。对于以太网设备,通常使用 ether_setup() 作为 setup 回调。
// 示例代码
struct net_device *dev = alloc_netdev(sizeof_priv, name, ether_setup);
对于以太网设备,还可以使用 alloc_etherdev() 或 alloc_etherdev_mq() 宏,它们最终会调用 alloc_etherdev_mqs() ,而 alloc_etherdev_mqs() 同样是 alloc_netdev_mqs() 的封装,并且使用 ether_setup() 作为 setup 回
超级会员免费看
订阅专栏 解锁全文
51

被折叠的 条评论
为什么被折叠?



