<feed xmlns='http://www.w3.org/2005/Atom'>
<title>platform_external_libnl/lib/fib_lookup, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/'/>
<entry>
<title>Add SPDX identifiers</title>
<updated>2019-08-12T13:01:16+00:00</updated>
<author>
<name>Yegor Yefremov</name>
<email>yegorslists@googlemail.com</email>
</author>
<published>2019-06-20T14:33:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=cee0b1b50c2ec4e3c4b88deaf0887133f4adf4d3'/>
<id>cee0b1b50c2ec4e3c4b88deaf0887133f4adf4d3</id>
<content type='text'>
Software Package Data Exchange identifiers help to detect source file
licenses and hence simplify the FOSS compliance process.

Signed-off-by: Yegor Yefremov &lt;yegorslists@googlemail.com&gt;

https://github.com/thom311/libnl/pull/219

---

FILES=(
  lib/addr.c
  lib/attr.c
  lib/cache.c
  lib/cache_mngr.c
  lib/cache_mngt.c
  lib/data.c
  lib/error.c
  lib/fib_lookup/lookup.c
  lib/fib_lookup/request.c
  lib/genl/ctrl.c
  lib/genl/family.c
  lib/genl/genl.c
  lib/genl/mngt.c
  lib/handlers.c
  lib/hash.c
  lib/hashtable.c
  lib/idiag/idiag.c
  lib/idiag/idiag_meminfo_obj.c
  lib/idiag/idiag_msg_obj.c
  lib/idiag/idiag_req_obj.c
  lib/idiag/idiag_vegasinfo_obj.c
  lib/mpls.c
  lib/msg.c
  lib/netfilter/ct.c
  lib/netfilter/ct_obj.c
  lib/netfilter/exp.c
  lib/netfilter/exp_obj.c
  lib/netfilter/log.c
  lib/netfilter/log_msg.c
  lib/netfilter/log_msg_obj.c
  lib/netfilter/log_obj.c
  lib/netfilter/netfilter.c
  lib/netfilter/nfnl.c
  lib/netfilter/queue.c
  lib/netfilter/queue_msg.c
  lib/netfilter/queue_msg_obj.c
  lib/netfilter/queue_obj.c
  lib/nl.c
  lib/object.c
  lib/route/act.c
  lib/route/addr.c
  lib/route/class.c
  lib/route/classid.c
  lib/route/cls.c
  lib/route/link.c
  lib/route/neigh.c
  lib/route/neightbl.c
  lib/route/netconf.c
  lib/route/nexthop.c
  lib/route/nexthop_encap.c
  lib/route/nh_encap_mpls.c
  lib/route/pktloc.c
  lib/route/qdisc.c
  lib/route/route.c
  lib/route/route_obj.c
  lib/route/route_utils.c
  lib/route/rtnl.c
  lib/route/rule.c
  lib/route/tc.c
  lib/socket.c
  lib/utils.c
  lib/version.c
  lib/xfrm/ae.c
  lib/xfrm/lifetime.c
  lib/xfrm/sa.c
  lib/xfrm/selector.c
  lib/xfrm/sp.c
  lib/xfrm/template.c
  src/genl-ctrl-list.c
  src/idiag-socket-details.c
  src/lib/addr.c
  src/lib/class.c
  src/lib/cls.c
  src/lib/ct.c
  src/lib/exp.c
  src/lib/link.c
  src/lib/neigh.c
  src/lib/qdisc.c
  src/lib/route.c
  src/lib/rule.c
  src/lib/tc.c
  src/lib/utils.c
  src/nf-ct-add.c
  src/nf-ct-events.c
  src/nf-ct-list.c
  src/nf-exp-add.c
  src/nf-exp-delete.c
  src/nf-exp-list.c
  src/nf-log.c
  src/nf-monitor.c
  src/nf-queue.c
  src/nl-addr-add.c
  src/nl-addr-delete.c
  src/nl-addr-list.c
  src/nl-class-add.c
  src/nl-class-delete.c
  src/nl-class-list.c
  src/nl-classid-lookup.c
  src/nl-cls-add.c
  src/nl-cls-delete.c
  src/nl-cls-list.c
  src/nl-fib-lookup.c
  src/nl-link-enslave.c
  src/nl-link-ifindex2name.c
  src/nl-link-list.c
  src/nl-link-name2ifindex.c
  src/nl-link-release.c
  src/nl-link-set.c
  src/nl-link-stats.c
  src/nl-list-caches.c
  src/nl-list-sockets.c
  src/nl-monitor.c
  src/nl-neigh-add.c
  src/nl-neigh-delete.c
  src/nl-neigh-list.c
  src/nl-neightbl-list.c
  src/nl-pktloc-lookup.c
  src/nl-qdisc-add.c
  src/nl-qdisc-delete.c
  src/nl-qdisc-list.c
  src/nl-route-add.c
  src/nl-route-delete.c
  src/nl-route-get.c
  src/nl-route-list.c
  src/nl-rule-list.c
  src/nl-tctree-list.c
  src/nl-util-addr.c
)

sed '1s#^#/* SPDX-License-Identifier: LGPL-2.1-only */\n#' "${FILES[@]}" -i
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Software Package Data Exchange identifiers help to detect source file
licenses and hence simplify the FOSS compliance process.

Signed-off-by: Yegor Yefremov &lt;yegorslists@googlemail.com&gt;

https://github.com/thom311/libnl/pull/219

---

FILES=(
  lib/addr.c
  lib/attr.c
  lib/cache.c
  lib/cache_mngr.c
  lib/cache_mngt.c
  lib/data.c
  lib/error.c
  lib/fib_lookup/lookup.c
  lib/fib_lookup/request.c
  lib/genl/ctrl.c
  lib/genl/family.c
  lib/genl/genl.c
  lib/genl/mngt.c
  lib/handlers.c
  lib/hash.c
  lib/hashtable.c
  lib/idiag/idiag.c
  lib/idiag/idiag_meminfo_obj.c
  lib/idiag/idiag_msg_obj.c
  lib/idiag/idiag_req_obj.c
  lib/idiag/idiag_vegasinfo_obj.c
  lib/mpls.c
  lib/msg.c
  lib/netfilter/ct.c
  lib/netfilter/ct_obj.c
  lib/netfilter/exp.c
  lib/netfilter/exp_obj.c
  lib/netfilter/log.c
  lib/netfilter/log_msg.c
  lib/netfilter/log_msg_obj.c
  lib/netfilter/log_obj.c
  lib/netfilter/netfilter.c
  lib/netfilter/nfnl.c
  lib/netfilter/queue.c
  lib/netfilter/queue_msg.c
  lib/netfilter/queue_msg_obj.c
  lib/netfilter/queue_obj.c
  lib/nl.c
  lib/object.c
  lib/route/act.c
  lib/route/addr.c
  lib/route/class.c
  lib/route/classid.c
  lib/route/cls.c
  lib/route/link.c
  lib/route/neigh.c
  lib/route/neightbl.c
  lib/route/netconf.c
  lib/route/nexthop.c
  lib/route/nexthop_encap.c
  lib/route/nh_encap_mpls.c
  lib/route/pktloc.c
  lib/route/qdisc.c
  lib/route/route.c
  lib/route/route_obj.c
  lib/route/route_utils.c
  lib/route/rtnl.c
  lib/route/rule.c
  lib/route/tc.c
  lib/socket.c
  lib/utils.c
  lib/version.c
  lib/xfrm/ae.c
  lib/xfrm/lifetime.c
  lib/xfrm/sa.c
  lib/xfrm/selector.c
  lib/xfrm/sp.c
  lib/xfrm/template.c
  src/genl-ctrl-list.c
  src/idiag-socket-details.c
  src/lib/addr.c
  src/lib/class.c
  src/lib/cls.c
  src/lib/ct.c
  src/lib/exp.c
  src/lib/link.c
  src/lib/neigh.c
  src/lib/qdisc.c
  src/lib/route.c
  src/lib/rule.c
  src/lib/tc.c
  src/lib/utils.c
  src/nf-ct-add.c
  src/nf-ct-events.c
  src/nf-ct-list.c
  src/nf-exp-add.c
  src/nf-exp-delete.c
  src/nf-exp-list.c
  src/nf-log.c
  src/nf-monitor.c
  src/nf-queue.c
  src/nl-addr-add.c
  src/nl-addr-delete.c
  src/nl-addr-list.c
  src/nl-class-add.c
  src/nl-class-delete.c
  src/nl-class-list.c
  src/nl-classid-lookup.c
  src/nl-cls-add.c
  src/nl-cls-delete.c
  src/nl-cls-list.c
  src/nl-fib-lookup.c
  src/nl-link-enslave.c
  src/nl-link-ifindex2name.c
  src/nl-link-list.c
  src/nl-link-name2ifindex.c
  src/nl-link-release.c
  src/nl-link-set.c
  src/nl-link-stats.c
  src/nl-list-caches.c
  src/nl-list-sockets.c
  src/nl-monitor.c
  src/nl-neigh-add.c
  src/nl-neigh-delete.c
  src/nl-neigh-list.c
  src/nl-neightbl-list.c
  src/nl-pktloc-lookup.c
  src/nl-qdisc-add.c
  src/nl-qdisc-delete.c
  src/nl-qdisc-list.c
  src/nl-route-add.c
  src/nl-route-delete.c
  src/nl-route-get.c
  src/nl-route-list.c
  src/nl-rule-list.c
  src/nl-tctree-list.c
  src/nl-util-addr.c
)

sed '1s#^#/* SPDX-License-Identifier: LGPL-2.1-only */\n#' "${FILES[@]}" -i
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: switch to using strerror_l() instead of strerror_r()</title>
<updated>2016-08-25T15:32:57+00:00</updated>
<author>
<name>André Draszik</name>
<email>adraszik@tycoint.com</email>
</author>
<published>2016-08-25T12:15:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=c1948ec29b8dcdc58d2d92700c325abdeab111a6'/>
<id>c1948ec29b8dcdc58d2d92700c325abdeab111a6</id>
<content type='text'>
glibc provides two versions of strerror_r(), which
can be chosen between using feature test macros
_GNU_SOURCE and _POSIX_C_SOURCE. libnl is built using
the former, hence we get the glibc special version,
and all code so far has been written for this.

Other C libraries like musl on the other hand only try
to be posix compliant, and only ever provide the posix
version of strerror_r(), which has a different signature.

Uses in libnl hence generally cause printf() of an *int*
with a *string format* specifier for that reason.

Additionally, strerror_r() has been deprecated:
  http://austingroupbugs.net/view.php?id=655

Switch to using strerror_l() (via our wrapper just
introduced).

Signed-off-by: André Draszik &lt;adraszik@tycoint.com&gt;
Reviewed-by: Stephane Ayotte &lt;sayotte@tycoint.com&gt;
Signed-off-by: Thomas Haller &lt;thaller@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
glibc provides two versions of strerror_r(), which
can be chosen between using feature test macros
_GNU_SOURCE and _POSIX_C_SOURCE. libnl is built using
the former, hence we get the glibc special version,
and all code so far has been written for this.

Other C libraries like musl on the other hand only try
to be posix compliant, and only ever provide the posix
version of strerror_r(), which has a different signature.

Uses in libnl hence generally cause printf() of an *int*
with a *string format* specifier for that reason.

Additionally, strerror_r() has been deprecated:
  http://austingroupbugs.net/view.php?id=655

Switch to using strerror_l() (via our wrapper just
introduced).

Signed-off-by: André Draszik &lt;adraszik@tycoint.com&gt;
Reviewed-by: Stephane Ayotte &lt;sayotte@tycoint.com&gt;
Signed-off-by: Thomas Haller &lt;thaller@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: update ce-mask to uint64_t</title>
<updated>2016-02-12T17:09:04+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-12-18T17:50:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=a09b8558148b31e469d463907d103fa78d81612c'/>
<id>a09b8558148b31e469d463907d103fa78d81612c</id>
<content type='text'>
lib/route/link.c already defines 32 attributes which fills the current
uint32_t used for ce_mask. To accommodate more attributes the mask needs
to be expanded. This patch updates the definition to uint64_t.

The nl_object_diff API is maintained for ABI with existing users. A new
nl_object_diff64 API is added for the expanded attribute list. The MSB
of the 32-bit API is used to indicate if higher order attributes had a
mismatch. (Suggested by Thomas).

Note that LINK_ATTR_LINK_NETNSID changes. But since the attribute flags
are not public API it shouldn't be a problem.

http://lists.infradead.org/pipermail/libnl/2015-December/002078.html
http://lists.infradead.org/pipermail/libnl/2015-December/002083.html

Signed-off-by: David Ahern &lt;dsa@cumulusnetworks.com&gt;
Signed-off-by: Thomas Haller &lt;thaller@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
lib/route/link.c already defines 32 attributes which fills the current
uint32_t used for ce_mask. To accommodate more attributes the mask needs
to be expanded. This patch updates the definition to uint64_t.

The nl_object_diff API is maintained for ABI with existing users. A new
nl_object_diff64 API is added for the expanded attribute list. The MSB
of the 32-bit API is used to indicate if higher order attributes had a
mismatch. (Suggested by Thomas).

Note that LINK_ATTR_LINK_NETNSID changes. But since the attribute flags
are not public API it shouldn't be a problem.

http://lists.infradead.org/pipermail/libnl/2015-December/002078.html
http://lists.infradead.org/pipermail/libnl/2015-December/002083.html

Signed-off-by: David Ahern &lt;dsa@cumulusnetworks.com&gt;
Signed-off-by: Thomas Haller &lt;thaller@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cache: avoid duplicate check on initial dump</title>
<updated>2014-11-23T14:58:13+00:00</updated>
<author>
<name>Holger Eitzenberger</name>
<email>holger@eitzenberger.org</email>
</author>
<published>2014-11-23T14:40:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=0020ba1212caad02841f72d680815e67d7180683'/>
<id>0020ba1212caad02841f72d680815e67d7180683</id>
<content type='text'>
The cache pickup does a check for duplicates for some time now.

However, the pickup in nl_cache_refill() explicitely clears the
cache, so the pickup doesn't need to actually do the dupe check,
as uniqueness is already guaranteed be Netlink subsystem.

And avoiding the dup check is beneficitial for performance
reasons, as the current algorithm is O(n^2).

http://lists.infradead.org/pipermail/libnl/2014-October/001680.html

Fixes: 96bb7c9a4cdd10a2665c0f56120943e79e33c560
Signed-off-by: Holger Eitzenberger &lt;holger@eitzenberger.org&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: Thomas Haller &lt;thaller@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The cache pickup does a check for duplicates for some time now.

However, the pickup in nl_cache_refill() explicitely clears the
cache, so the pickup doesn't need to actually do the dupe check,
as uniqueness is already guaranteed be Netlink subsystem.

And avoiding the dup check is beneficitial for performance
reasons, as the current algorithm is O(n^2).

http://lists.infradead.org/pipermail/libnl/2014-October/001680.html

Fixes: 96bb7c9a4cdd10a2665c0f56120943e79e33c560
Signed-off-by: Holger Eitzenberger &lt;holger@eitzenberger.org&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: Thomas Haller &lt;thaller@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use thread-safe strerror_r() instead of strerror()</title>
<updated>2013-02-28T12:07:04+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@suug.ch</email>
</author>
<published>2013-02-28T12:07:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=4d7680c19c131175e2ec431de9a026230c968a7e'/>
<id>4d7680c19c131175e2ec431de9a026230c968a7e</id>
<content type='text'>
We have only ever fed well known error codes into strerror()
so it should never have been a problem though.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We have only ever fed well known error codes into strerror()
so it should never have been a problem though.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Move private header files to &lt;netlink-private/*&gt;</title>
<updated>2013-01-24T12:51:24+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@suug.ch</email>
</author>
<published>2013-01-24T12:51:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=9680f910f46b78d700ae66a16c08d8927dfc2199'/>
<id>9680f910f46b78d700ae66a16c08d8927dfc2199</id>
<content type='text'>
This clarifies the seperation between public and private
header files.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This clarifies the seperation between public and private
header files.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: documentation restructuring</title>
<updated>2012-05-10T10:03:59+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@redhat.com</email>
</author>
<published>2012-05-10T10:03:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=fec10a282355def49133e63b8a4591cc51b46478'/>
<id>fec10a282355def49133e63b8a4591cc51b46478</id>
<content type='text'>
- changes the modules hierarchy to better represent the set of libaries
- list the header file that needs to be included
- remove examples/doc from api ref that is included in the guide
- add references to the guide
- fix doxygen api linking for version 1.8.0
- readd doxygen mainpage to config file
- fix a couple of doxygen doc bugs
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- changes the modules hierarchy to better represent the set of libaries
- list the header file that needs to be included
- remove examples/doc from api ref that is included in the guide
- add references to the guide
- fix doxygen api linking for version 1.8.0
- readd doxygen mainpage to config file
- fix a couple of doxygen doc bugs
</pre>
</div>
</content>
</entry>
<entry>
<title>Updated link documentation</title>
<updated>2011-07-28T14:23:57+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@suug.ch</email>
</author>
<published>2011-07-28T14:23:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=70c93717607a15d37b60d7caefb58e78d28c5e59'/>
<id>70c93717607a15d37b60d7caefb58e78d28c5e59</id>
<content type='text'>
- API documentation
- developer guide
- enabled doxygen navbar
- fixed css
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- API documentation
- developer guide
- enabled doxygen navbar
- fixed css
</pre>
</div>
</content>
</entry>
<entry>
<title>Documentation updates</title>
<updated>2011-03-21T23:40:26+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@suug.ch</email>
</author>
<published>2011-03-21T23:40:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=c1073d6172223be9837141da149c8876ce46884b'/>
<id>c1073d6172223be9837141da149c8876ce46884b</id>
<content type='text'>
Mostly killing doxygen warnings, some doc updates to caching
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mostly killing doxygen warnings, some doc updates to caching
</pre>
</div>
</content>
</entry>
<entry>
<title>restructure module documentation order</title>
<updated>2008-12-10T17:12:30+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgr@plip.localdomain</email>
</author>
<published>2008-12-10T17:12:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_external_libnl/commit/?id=6782b6f709d03877a5661a4c8d8f8bd1b461f43f'/>
<id>6782b6f709d03877a5661a4c8d8f8bd1b461f43f</id>
<content type='text'>
split hiearchy into one top level module per library
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
split hiearchy into one top level module per library
</pre>
</div>
</content>
</entry>
</feed>
