fw: implement self-learning forwarding strategy

refs #4279

Change-Id: I3c80820f9e3382d204a75ea3248234581b4d97d2
diff --git a/tests/other/fw/self-learning.md b/tests/other/fw/self-learning.md
new file mode 100644
index 0000000..6dc75c1
--- /dev/null
+++ b/tests/other/fw/self-learning.md
@@ -0,0 +1,27 @@
+This file describes how self-learning forwarding strategy is tested.
+
+Installation/Configuration:
+
+ - Install two NFDs (A and B) with the self-learning forwarding strategy
+
+ - Configure two NFDs to be connected: either both NFDs have to be connected to the same multicast-capable network (they effectively will communicate over it) or faces between two nodes have to be configured and maintained for communication
+
+ - Enable `localhop_security` by editing nfd.conf file for both NFDs
+
+Execution:
+
+ - Run NFD, and choose self-learning forwarding strategy for name prefix /sl on both NFDs with this command:
+   `nfdc strategy set /sl /localhost/nfd/strategy/self-learning`
+
+ - Run ndnpingserver on node A to serve /sl: `ndnpingserver /sl` (Install ndn-tools first)
+
+ - Run ndnping on node B for /sl: `ndnping /sl`
+
+Results:
+
+ - ndnping works
+
+ - run command `nfdc route` to show the newly added route that follows the following format:
+   `prefix=/sl/ping nexthop=<faceID> origin=prefixann cost=2048 flags=child-inherit expires=<duration>`
+
+ - in NFD logs (with DEBUG level enabled), the first Interest is sent to all faces, while the subsequent Interests are sent to only one face
\ No newline at end of file
diff --git a/tests/other/wscript b/tests/other/wscript
index 3c6d1c0..b09be43 100644
--- a/tests/other/wscript
+++ b/tests/other/wscript
@@ -37,7 +37,7 @@
         bld.program(name=module,
                     target='../../%s' % module,
                     source=bld.path.ant_glob('%s*.cpp' % module),
-                    use='daemon-objects unit-tests-base other-tests-%s-main' % module,
+                    use='daemon-objects rib-objects unit-tests-base other-tests-%s-main' % module,
                     defines=['UNIT_TEST_CONFIG_PATH="%s"' % bld.bldnode.make_node('tmp-files')],
                     install_path=None)
 
@@ -45,5 +45,5 @@
     bld.program(name='face-benchmark',
                 target='../../face-benchmark',
                 source=bld.path.ant_glob('face-benchmark*.cpp'),
-                use='daemon-objects',
+                use='daemon-objects rib-objects',
                 install_path=None)