dect
/
libnl
Archived
13
0
Fork 0
netlink Library with DECT support
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
roopa bc7c822f54 Add support for updating objects in the cache
This patch adds support to update a cache object during cache_include instead
of the current approach of deleting the original object and adding a new one.
This operation is conditional on the object implementing the operation. If
the update is not successful, cache_include falls back to the existing cache
inclusion process of deleting and adding the object.

It adds a new object operation called oo_update. oo_update takes two objects
as arguments, first being the existing cache object that needs update, the
second argument being the new object. Currently it is left to the implementor
to use the msg type to decide wether to delete or add the new object attributes
to the old one. But the operation type or msg type can be easily made part of the
object arguments.

The motivation for this change is explained below in the context of including
support for AF_BRIDGE objects into the link cache.

libnl today deletes an object before it includes an identical object.
But for some objects like the AF_BRIDGE objects this does not work well.
link cache uses the ifindex as its key in object searches.
If link cache were to support AF_BRIDGE family objects, todays implementation,
	- will replace the original link object with the bridge port link object
	  for add notifications
	- And a bridge port delete notification from kernel would delete the
	link object from the cache leaving the cache without the link object
	until the kernel sends another notification for that link

The bridge port link notification contains some base link object attributes
plus bridge specific protocol info attributes. In such cases we think an
operation to update the existing object in place in cache might be useful.

This can be made to work for AF_INET6 link objects too.

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Reviewed-by: Nolan Leake <nolan@cumulusnetworks.com>
Reviewed-by: Shrijeet Mukherjee <shm@cumulusnetworks.com>
Reviewed-by: Wilson Kok <wkok@cumulusnetworks.com>
2012-11-05 13:58:50 +01:00
doc Don't include doc/ in toplevel dist 2012-10-22 12:09:03 +02:00
etc pktloc: support to specify a shift operator for packet locations 2010-11-04 20:01:36 +01:00
include Add support for updating objects in the cache 2012-11-05 13:58:50 +01:00
lib Add support for updating objects in the cache 2012-11-05 13:58:50 +01:00
m4 doc: Check documentation generation requirements with autoconf 2012-05-09 10:06:24 +02:00
man genl: Update genl-ctrl-list(8) 2012-06-01 13:10:03 +02:00
python Enabled the use of Links as context managers. 2012-10-04 16:36:55 -04:00
src Merge branch 'master' of https://github.com/rmfought/libnl 2012-10-26 12:48:22 +02:00
tests genl: modify genl_ctrl_resolve and friends to allow for module auto-loading 2012-06-03 13:52:16 +02:00
.gitignore doc: Update Doxyfile config to latest release 2012-08-30 13:22:21 +02:00
COPYING Update COPYING to fix FSF address 2012-01-17 12:38:37 +01:00
ChangeLog libnl 3.2.10 2012-06-06 11:43:53 +02:00
Makefile.am Don't include doc/ in toplevel dist 2012-10-22 12:09:03 +02:00
autogen.sh doc: Split doc/ into separate packages 2012-10-19 16:16:06 +02:00
configure.in Add configure option to disable pthreads support 2012-10-26 12:19:26 -07:00
libnl-3.0.pc.in Switch to libtool versioning system 2011-09-13 22:58:08 +02:00
libnl-cli-3.0.pc.in Add libnl-cli-3.0 to pkg-config tool 2011-10-10 11:39:24 +02:00
libnl-genl-3.0.pc.in Switch to libtool versioning system 2011-09-13 22:58:08 +02:00
libnl-nf-3.0.pc.in Switch to libtool versioning system 2011-09-13 22:58:08 +02:00
libnl-route-3.0.pc.in Switch to libtool versioning system 2011-09-13 22:58:08 +02:00