doc FEATURE add ABI tracker to provide information about changes in API/ABI
diff --git a/doc/ABI/README b/doc/ABI/README
new file mode 100644
index 0000000..054cfa0
--- /dev/null
+++ b/doc/ABI/README
@@ -0,0 +1,34 @@
+libnetconf2 ABI/API changes
+===========================
+
+Here is a script to build information about changes in libnetconf2 ABI/API
+between its versions. Such an overview can help developers migrating from
+one version to another. The script uses Andrey Ponomarenko's tools from ABI
+Laboratory [1], so it is necessary to install these tools first. To do so,
+you can use the automatic installer from [2]. Target must be 'abi-tracker'.
+
+Note: Some others tools are used by the LVC toolset and not all of them are
+      correctly checked, so be carefull and check warnings and error
+      messages (e.g. I have been missing correct version of ctags).
+
+Then here is the 'abi.sh' to build ABI/API timeline for libnetconf2. By default
+it includes all the versions from the project start to the current devel
+branch.
+
+You can limit the number of included libnetconf2 versions via a number given
+as a parameter to the script. For example
+
+$ ./abi.sh 10
+
+builds overview for the last 10 libnetconf2 versions.
+
+Or you can compare only two specific libnetconf2 versions providing the version
+numbers as script parameters:
+
+$ ./abi.sh 0.1.0 0.2.3
+
+The result is in all cases stored as 'timeline/libnetconf2/index.html' file.
+
+[1] - https://github.com/lvc
+[2] - https://github.com/lvc/installer/releases
+
diff --git a/doc/ABI/abi.sh b/doc/ABI/abi.sh
new file mode 100755
index 0000000..c7d4c6a
--- /dev/null
+++ b/doc/ABI/abi.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+ABI_MON=abi-monitor
+ABI_TRK=abi-tracker
+
+which $ABI_MON > /dev/null || exit 1
+which $ABI_TRK > /dev/null || exit 1
+
+if test -n "$2"; then
+	VER1="$1"
+	VER2="$2"
+elif test -n "$1"; then
+	if test "$1" = "help" -o "$1" = "-h" -o "$1" = "--help"; then
+		echo Usage:
+		echo \t$0 [number of last versions]
+		echo \t$0 [version1] [version2]
+		exit 0
+	fi
+	LIMIT="-limit $1"
+	l=$1
+fi
+
+if [ -e gitrepo ]; then
+	cd gitrepo
+	git pull
+	cd -
+else
+	git clone https://github.com/CESNET/libnetconf2.git gitrepo
+fi
+test -e packages || mkdir packages
+test -e src/libnetconf2 || mkdir -p src/libnetconf2
+rm -rf src/libnetconf2/*
+
+cd gitrepo
+git checkout devel
+VERSIONS=`git log --grep=VERSION --oneline | sed 's/ .* /_/'`
+cd -
+for i in $VERSIONS; do
+	if test "$l" = "0"; then
+		rm -rf abi_dump/libnetconf2/${i//*_}
+		rm -rf installed/libnetconf2/${i//*_}
+	else
+		test -n "$l" && l=$(($l-1))
+		if test -n "$VER1"; then
+			if test "$VER1" != "${i//*_}" -a "$VER2" != "${i//*_}"; then
+				rm -rf abi_dump/libnetconf2/${i//*_}
+				rm -rf installed/libnetconf2/${i//*_}
+				continue
+			fi
+		fi
+		if test ! -f packages/libnetconf2-${i//*_}.tgz; then
+			cd gitrepo
+			git checkout ${i//_*}
+			cd -
+			tar -czf packages/libnetconf2-${i//*_}.tgz gitrepo
+		fi
+		cp packages/libnetconf2-${i//*_}.tgz src/libnetconf2/
+	fi
+done
+
+cp libnetconf2.json libnetconf2.aux
+abi-monitor -get -build $LIMIT libnetconf2.aux
+abi-tracker -build libnetconf2.aux
+rm -rf libnetconf2.aux
+
diff --git a/doc/ABI/build.sh b/doc/ABI/build.sh
new file mode 100755
index 0000000..8fd811e
--- /dev/null
+++ b/doc/ABI/build.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cmake -DENABLE_TLS=ON -DENABLE_SSH=ON -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_TO/usr -DCMAKE_BUILD_TYPE:String="Debug" . && make && make install
+
diff --git a/doc/ABI/libnetconf2.json b/doc/ABI/libnetconf2.json
new file mode 100644
index 0000000..ac3908c
--- /dev/null
+++ b/doc/ABI/libnetconf2.json
@@ -0,0 +1,8 @@
+{
+  "Name":           "libnetconf2",
+  "SourceDir":      "src/libnetconf2/",
+  "BuildScript":    "build.sh",
+  "ChangeLog":      "On",
+  "HeadersDiff":    "On",
+  "PkgDiff":        "On",
+}