History log of /system/core/include/sysutils/NetlinkEvent.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d7ff7ea65220718398cae1e1aa0005072229b4e7 11-Jun-2014 Lorenzo Colitti <lorenzo@google.com> Support parsing netlink route messages.

Bug: 9180552
Change-Id: I4a36d869ac692647fb226d0912285bdf2ffcb1fa
/system/core/include/sysutils/NetlinkEvent.h
9b34293566833ead1d7bac7518e5ccad0d92d61c 19-Jun-2014 Lorenzo Colitti <lorenzo@google.com> Improvements to netlink event parsing.

1. Accept that parseNetlinkMessage can only parse one netlink
message, because its way of returning output is to modify its
member variables (mAction, mParams, etc.). Currently, it
loops through all the messages it finds, updating its member
variables as it goes along, and always returns true at the end
of the buffer. This has the following problems:

1. Since the function always returns true even when no
messages were parsed, the caller has no way to know if
parsing succeeded, and we get lots of "No subsystem found
in netlink event" logs if the buffer did not contain any
valid messages we were interested in.
2. If there are multiple messages in the buffer, all but the
last message will be silently ignored.
3. If there are multiple messages and previous messages have
more parameters than the last one, the resulting event will
have a mixture of parameters from multiple messages.

Instead of doing all this, change the contract to "parse the
first valid message of interest in the buffer and return true,
or return false if there were no such messages", and update
the code and the comments accordingly.

2. Modify the caller (NetlinkListener) so it doesn't log an
error when parseBinaryNetlinkMessage returns false, because
this can now simply mean that we weren't interested in that
particular message. parseBinaryNetlinkMessage already logs
more informative errors.

3. Provide utility functions to check received message lengths and
to convert message types to message names.

4. Simplify logging duplicate attributes.

5. Use the appropriate IFLA_xxx macros instead of rolling our own
code to parse link state messages.

6. Move all the parsing code out to per-message-type parsing
functions to order to simplify parseBinaryNetlinkMessage.

Bug: 9180552
Change-Id: I6bbc2f7a104f618674dde2369c1fd5e93ea49430
/system/core/include/sysutils/NetlinkEvent.h
b185e90dcc6ac111bff908edcc6d89fd6b37dc11 12-Aug-2013 Lorenzo Colitti <lorenzo@google.com> Support parsing RDNSS ND options from netlink.

The RDNSS options (RFC 6106) used to configure DNS servers via
router advertisements are passed from the kernel to userspace via
RTM_NEWNDUSEROPT netlink messages. Add code to NetlinkEvent to
parse them.

Also fix a compiler warning and a couple of style issues.

Bug: 9180552
Change-Id: I6c532c8f0ceef3afdc977a431a036df398013e1a
/system/core/include/sysutils/NetlinkEvent.h
f34861346d5c207912075fba9874090e4c947869 02-Sep-2013 Lorenzo Colitti <lorenzo@google.com> Switch back to subsystem "net" for netlink events.

The change to enable address tracking via netlink incorrectly
changed the subsystem of rtnetlink events from "net" to
"interface". This broke interface add/delete notifications,
which come from the kernel with subsystem "net".

Switch back to "net" and deal with address tracking via new
action codes instead of a new subsystem.

Bug: 10433320
Change-Id: Ibf30efb426949dfd02304cc1d9adb1c005a539a6
/system/core/include/sysutils/NetlinkEvent.h
a4b4e9ad8e35ab424e61d76ebe6654445fc61e63 01-Aug-2013 Lorenzo Colitti <lorenzo@google.com> Parse IP address changes in NetlinkEvent.

This adds support for parsing RTM_NEWADDR and RTM_DELADDR
netlink messages received on netd's netlink socket and
formatting them them so NetlinkHandler can process them.

Address changes are notified in subsystem "address". Interface
changes, which used to be notified in subsystem "net", are now
notified in subsystem "interface" to avoid confusion.

Bug: 10232006
Change-Id: I93a50e8de17014e118a42f5cc0eb90a0cbfa73cc
/system/core/include/sysutils/NetlinkEvent.h
b982bce73b7e2c824ffb50115ea382fe45c751a4 27-Apr-2012 JP Abgrall <jpa@google.com> Revert "libsysutils: NetlinkEvent: add support for interface xt_IDLETIMER events."

This reverts commit 731d831e91d5d9f8b15ca95367977abe35967166.

Now that the xt_IDLETIMER uses the KOBJECT_UEVENT netlink, this
change is not needed anymore.
/system/core/include/sysutils/NetlinkEvent.h
731d831e91d5d9f8b15ca95367977abe35967166 11-Apr-2012 Ashish Sharma <ashishsharma@google.com> libsysutils: NetlinkEvent: add support for interface xt_IDLETIMER events.

xt_IDLETIMER events are used to infer the interface (radio) state
based on a inactivity timeout value.

Change-Id: I755eb54a048ca1c6ce0c646564d61188d8241851
/system/core/include/sysutils/NetlinkEvent.h
17260b14682d4fe59dad3de2de8c9370e6ba9a71 24-Jun-2011 Mike J. Chen <mjchen@google.com> Cleanup NetlinkListener and NetlinkEvent

To make it easier to be compatible with older existing code, use
default parameters instead of separate functions for setting.

Also, reintroduce the const usage that was not in the original
changes by Stan.

Also fix some indent spacing.

Change-Id: Ice9ec7f0d5c4a0673037e2e04a764d88a98f68eb
Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/core/include/sysutils/NetlinkEvent.h
ec16b9d47cacb0d873ee0ff80c919f49215c0005 23-Jun-2011 Mike J. Chen <mjchen@google.com> Revert "Revert "Add NETLINK_ROUTE processing to the netlink client code, so that Ethernet""

This reverts commit 1d504eeb50d980c222572629383bb76315f32ca0.

Conflicts:

libsysutils/src/NetlinkEvent.cpp

Bring back the changes from Stan Chesnutt regarding adding NETLINK_ROUTE
processing. The original commit message description was:

Add NETLINK_ROUTE processing to the netlink client code, so that Ethernet
physical-layer up/down events can be tracked. Upper layers will use these
events to enable/disable Ethernet connectivity.

The original change was reverted due to an incompatiblity with Motorola's
ril.so binary. I'll submit a patch to workaround that incompatiblity
separately.

Change-Id: I4e97ac98833b10543e654c63ecae3b9b8c7db44f
Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/core/include/sysutils/NetlinkEvent.h
1d504eeb50d980c222572629383bb76315f32ca0 09-Jan-2011 Wink Saville <wink@google.com> Revert "Add NETLINK_ROUTE processing to the netlink client code, so that Ethernet"

This reverts commit 8418ac8ba59bd140b5a2432c99501cc79debdefc.
/system/core/include/sysutils/NetlinkEvent.h
8418ac8ba59bd140b5a2432c99501cc79debdefc 27-Dec-2010 Stan Chesnutt <chesnutt@google.com> Add NETLINK_ROUTE processing to the netlink client code, so that Ethernet
physical-layer up/down events can be tracked. Upper layers will use these
events to enable/disable Ethernet connectivity.

Change-Id: If07c30c4d79f26cf94eb5597be651ebbf9d072c6
/system/core/include/sysutils/NetlinkEvent.h
d674413ff460afe1da049e54bb7a489132799749 24-Dec-2009 San Mehat <san@google.com> sysutils: Add dump() to NetlinkEvent

Signed-off-by: San Mehat <san@google.com>
/system/core/include/sysutils/NetlinkEvent.h
168415b822cae1f8b54ef09c41c11a9b97b87f40 06-May-2009 San Mehat <san@google.com> libsysutils: New C++ system convenience library

This library contains re-usable classes for common
system level daemons. Initial consumers of this library
are 'nexus' and 'vold2'

Signed-off-by: San Mehat <san@google.com>
/system/core/include/sysutils/NetlinkEvent.h