Thread (9 messages) 9 messages, 5 authors, 2002-10-24

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help