在linux内核中实现自定义协议栈

时间:2014-07-03 11:38:00

标签: c linux networking kernel custom-protocol

我们已经在STM32微控制器平台上为传感器网络实现了自定义协议,并且将协议栈移植到Linux内核中的时机已经到了。

情况是这样的:我们有一个定制无线电发射器,内置功能很少(NRF24L01 +)。但同时我们对带宽和功耗有很高的要求,因此我们在简单的NRF24L01 +功能之上设计并实现了时间共享算法(DTDMA)。同样为了连接可靠性,我们已经实现了传输层协议,该协议负责重传(使用一点改进的滑动窗口协议)。我们的网络具有星型拓扑,因此这里不需要路由,并且似乎将来不会改变。

另请注意,另一端的资源太少,无法实现完整的TCP / IP协议栈。所以自定义轻量级协议是强制性的:(。

所以本质上我们有三层:

  • 硬件驱动程序(NRF24L01 +)
  • 时分算法
  • 包控制算法

所以问题是(架构上)时间共享算法应该在哪里?

据我了解,实现NRF驱动程序的最佳方法是使用 linux / netdevice.h 接口,而对于Packet控件(滑动窗口)则使用 linux / net.h 界面(使用 struct proto_ops )。但我无法弄清楚时间分割的适用方式和位置。

非常感谢任何帮助。在此先感谢:)。

0 个答案:

没有答案
相关问题