libmultipath: API for foreign multipath handling
authorMartin Wilck <mwilck@suse.com>
Mon, 5 Mar 2018 23:14:59 +0000 (00:14 +0100)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Wed, 7 Mar 2018 09:39:55 +0000 (10:39 +0100)
commitb2cebb0c94192e11ee9ffa765498d6e5529aeb94
tree7eadfa6ce5c1673a98e07c9f91359464b608e609
parent04fa2c9b950a1f2b974555ff7b6cc3b1e58abeee
libmultipath: API for foreign multipath handling

Add an API for "foreign" multipaths. Foreign libraries are loaded
from ${multipath_dir}/libforeign-*.so, as we do for checkers.

Refer to "foreign.h" for details about the API itself. Like we do for
checkers, high-level multipath code isn't supposed to call the API directly,
but rather the wrapper functions declared in "foreign.h".

This API is used only for displaying information and for logging. An extension to
other functionality (such as monitoring or administration) might be feasible,
but is not planned.

Foreign libraries communicate with libmultipath through the API defined in
"foreign.h". The foreign library can implement multipath maps, pathgroups,
and paths as it likes, they just need to provide the simple interfaces
defined in "generic.h" to libmultipath. These interfaces are used in libmultipath's
"print" implementation to convey various bits of information to users. By
using the same interfaces for printing that libmultipath uses internally,
foreign library implementations can focus on the technical side without
worrying about output formatting compatibility.

Signed-off-by: Martin Wilck <mwilck@suse.com>
libmultipath/Makefile
libmultipath/foreign.c [new file with mode: 0644]
libmultipath/foreign.h [new file with mode: 0644]