Re: rtnetlink interface state monitoring problems.
From: jamal <hidden>
Date: 2002-10-21 13:05:43
Also in:
lkml
On Mon, 21 Oct 2002, David Woodhouse wrote:
I'm playing with userspace applications which want to monitor the status of IrDA and Bluetooth devices. Rather than polling for the interface state (this is a handheld device and polling wastes CPU and battery), I want to use netlink. I have two problems: 1. I appear to need CAP_NET_ADMIN to bind to the netlink groups which give me this information. I can poll for it just fine, but need elevated privs to be notified. Why is this, and is there a workaround?
Alexey should be able to give you a better comment. If you can get the status via ioctl there should be no reason why you shouldnt get it via netlink. The change maybe a little involved (look at:net/netlink/af_netlink.c::netlink_bind()) since there are some valid reasons to block non-admin from receiving certain messages. I think the LSM people may have been trying to do this, cant remember details.
2. Even root doesn't get notification of state changes for Bluetooth interfaces, because they're not treated as 'normal' network devices like IrDA devices are. I can see the logic behind that -- by why is it done differently from IrDA? Is there a way to get notification of BT interface state changes?
I cant see anything on netlink and irda; i am also not very familiar with either IrDA or Bluetooth. Regardless, you dont need to be a net device to use netlink. Its a messaging system and you can use it both within the kernel as well as kernel<->userspace. If you get stuck writting the interface ping me privately. cheers, jamal