iproute2/lib
Serhey Popovych 7bf5e876d0 utils: Fast inet address classification after get_addr()
It looks very useful to receive additional information
from get_addr_1() and get_addr() about address to simplify
caller and get rid of code duplications.

For now following information can be returned:

  1) address is unspecified (zero)
  2) address is multicast
  3) address is internet: family is either AF_INET or
     AF_INET6.

More information can be added in the future.

Introduce inline helpers to make code using this new
address classification interface more self explaining:

  bool is_addrtype_inet(inet_prefix *addr)
    true if @addr is inet address

  bool is_addrtype_inet_unspec(inet_prefix *addr)
    true if @addr is unspecified inet address

  bool is_addrtype_inet_multi(inet_prefix *addr)
    true if @addr is multicast inet address

  bool is_addrtype_inet_not_unspec(inet_prefix *addr)
    true if @addr is not unspecified inet address
    false if @addr is not inet or unspecified inet

  bool is_addrtype_inet_not_multi(inet_prefix *addr)
    true if @addr is not multicast inet address
    false if @addr is not inet or multicast inet

Last two are useful for case when we need inet address
that is not unspecified or multicast.

Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
2018-01-21 09:38:21 -08:00
..
Makefile SPDX license identifiers 2017-11-24 12:21:35 -08:00
bpf.c bpf: support map offload 2018-01-19 12:35:41 -08:00
color.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
coverity_model.c scrub out whitespace issues 2016-03-27 10:50:14 -07:00
dnet_ntop.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
dnet_pton.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
exec.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
fs.c Convert the obvious cases to strlcpy() 2017-09-01 12:10:54 -07:00
inet_proto.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
ipx_ntop.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
ipx_pton.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
json_print.c lib: json_print: rework 'new_json_obj' drop FILE* argument 2017-09-29 10:10:47 -07:00
json_writer.c json_writer: add new json handlers (null, float with format, lluint, hu) 2017-08-17 18:02:40 -07:00
libgenl.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
libnetlink.c lib/libnetlink: Add a new function rtnl_talk_iov 2018-01-14 09:03:33 -08:00
ll_addr.c utils: ll_addr: Handle ARPHRD_IP6GRE in ll_addr_n2a() 2017-12-26 09:07:42 -08:00
ll_map.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
ll_proto.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
ll_types.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
mpls_ntop.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
mpls_pton.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
names.c Replace malloc && memset by calloc 2016-07-20 12:05:24 -07:00
namespace.c lib/namespace: fix fd leakage in non-error case 2015-08-19 16:32:56 -07:00
rt_names.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
utils.c utils: Fast inet address classification after get_addr() 2018-01-21 09:38:21 -08:00