当设备驱动程序中的IP地址更改时得到通知

问题描述 投票:1回答:1

我开发了Linux设备驱动程序,除其他外,该驱动程序在实时嵌入式系统中架起了专用和公用网络的桥梁,以提供管理流量的路径。

我知道可以使用ioctl call从用户空间向内核询问网络设备的ip地址,但是我需要能够在设备驱动程序中进行操作,并且理想情况下会被告知该ip地址已更改而无需轮询,或者最好还是直接管理更改地址的过程。

当前,通过侦听DHCP和ARP通知设备地址更改,驱动程序通过了DHCP和ARP,但是它们没有任何有意义的方式进行管理。但是,这是一个笨拙的解决方案。

设备的公共端可通过操作系统访问,并且可以通过调用ifconfig等来更改IP。如果为设备分配了与网络无关的静态IP,则最终可以解决此问题当通信失败时,但这并不理想。

驱动程序已经提供了许多ioctl处理程序,是否可以提供一种方法来直接将ip地址分配给设备,如果可以,它需要管理哪些接口?

我浏览了net_device结构,但找不到与IP地址相关的任何内容,也找不到在线有关设备驱动程序这方面的任何文档。

谢谢

linux-kernel ip kernel-module
1个回答
0
投票

有一个netdev通知程序,您可以register to。根据您的情况,您将注册到NETDEV_CHANGEADDR事件(或NETDEV_PRE_CHANGEADDR,取决于您的使用情况)。

© www.soinside.com 2019 - 2024. All rights reserved.