我们正在使用自定义物理层设计自定义通信,该物理层将在立方体卫星中使用,我正在研究如何为 Linux 创建自定义第 3 层驱动程序(类似于 ipv4,但不是,标头完全不同)。
我查看了 net/af_inet.c,开始了解它如何注册 AF_INET 协议族。然而,查看 net/sockets.c 内部,它似乎依赖于高达 PF_MAX 的定义值。所以我不能随机定义一个新的协议族。我是否只需调整并在 PF_MAX 之前插入 PF_xxxx 即可?或者我错过了什么?如果可能的话,我想避免侵入内核并坚持使用可加载模块。
欢迎任何有关该主题的材料,尽管我已经阅读了 LDD3,这就是我为 phy 编写设备驱动程序的方式。
编辑:我忘了提及数据链路层也是自定义的,并且具有与以太网不同的标头
编辑:添加了下面的框图
PHY 在 FPGA 中实现,并通过 AXI 连接到 Cortex-A9。