diff --git a/docs/conf.py b/docs/conf.py
index 8ea25f5..92bf794 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -18,7 +18,7 @@
 # -- Project information -----------------------------------------------------
 
 project = u'Named Data Networking Forwarding Daemon (NFD)'
-copyright = u'Copyright © 2014-2020 Named Data Networking Project.'
+copyright = u'Copyright © 2014-2021 Named Data Networking Project.'
 author = u'Named Data Networking Project'
 
 # The short X.Y version.
diff --git a/docs/manpages/nfd-asf-strategy.rst b/docs/manpages/nfd-asf-strategy.rst
index 5a7d785..7d84607 100644
--- a/docs/manpages/nfd-asf-strategy.rst
+++ b/docs/manpages/nfd-asf-strategy.rst
@@ -3,7 +3,7 @@
 
 SYNOPSIS
 --------
-| nfdc strategy set prefix <PREFIX> strategy /localhost/nfd/strategy/asf/%FD%02[/probing-interval~<PROBING-INTERVAL>][/n-silent-timeouts~<N-SILENT-TIMEOUTS>]
+| nfdc strategy set prefix <PREFIX> strategy /localhost/nfd/strategy/asf[/v=4][/probing-interval~<PROBING-INTERVAL>][/n-silent-timeouts~<N-SILENT-TIMEOUTS>]
 
 DESCRIPTION
 -----------
@@ -24,7 +24,7 @@
     This behavior may be too sensitive for application use and appropriate only for link
     failures and not transient timeouts. So this parameter makes ASF switch paths
     only after it has encountered the specified number of timeouts (non-negative integer).
-    Default and minimum value is 0 i.e. switch immediately.
+    Default and minimum value is 0, i.e., switch immediately.
     It is optional to specify n-silent-timeouts.
 
 EXAMPLES
@@ -32,15 +32,15 @@
 nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf
     Use the default values.
 
-nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/%FD%03/probing-interval~30000
+nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=4/probing-interval~30000
     Set probing interval as 30 seconds.
 
-nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/%FD%03/n-silent-timeouts~5
+nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=4/n-silent-timeouts~5
     Set n-silent-timeouts as 5.
 
-nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/%FD%03/probing-interval~30000/n-silent-timeouts~5
+nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=4/probing-interval~30000/n-silent-timeouts~5
     Set probing interval as 30 seconds and n-silent-timeouts as 5.
 
 SEE ALSO
 --------
-nfdc(1), nfdc-strategy(1)
\ No newline at end of file
+nfdc(1), nfdc-strategy(1)
diff --git a/docs/manpages/nfdc-strategy.rst b/docs/manpages/nfdc-strategy.rst
index 6084c05..f4a4041 100644
--- a/docs/manpages/nfdc-strategy.rst
+++ b/docs/manpages/nfdc-strategy.rst
@@ -63,8 +63,8 @@
 nfdc strategy set prefix / strategy /localhost/nfd/strategy/best-route
     Set the default strategy to best-route, latest version.
 
-nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/multicast/%FD%04
-    Set the strategy of the "/ndn" prefix to multicast, version 4.
+nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/multicast/v=4
+    Set the strategy for the "/ndn" prefix to multicast, version 4.
 
 nfdc strategy unset prefix /ndn
     Clear the strategy choice for the "/ndn" prefix.
diff --git a/tests/daemon/mgmt/tables-config-section.t.cpp b/tests/daemon/mgmt/tables-config-section.t.cpp
index df9992f..4f07f78 100644
--- a/tests/daemon/mgmt/tables-config-section.t.cpp
+++ b/tests/daemon/mgmt/tables-config-section.t.cpp
@@ -24,6 +24,8 @@
  */
 
 #include "mgmt/tables-config-section.hpp"
+
+#include "fw/best-route-strategy.hpp"
 #include "fw/forwarder.hpp"
 #include "table/cs-policy-lru.hpp"
 #include "table/cs-policy-priority-fifo.hpp"
@@ -40,17 +42,10 @@
 {
 protected:
   TablesConfigSectionFixture()
-    : forwarder(faceTable)
-    , cs(forwarder.getCs())
-    , strategyChoice(forwarder.getStrategyChoice())
-    , networkRegionTable(forwarder.getNetworkRegionTable())
-    , tablesConfig(forwarder)
-    , strategyP(Name("/tables-config-section-strategy-P").appendVersion(2))
-    , strategyP1(Name("/tables-config-section-strategy-P").appendVersion(1))
-    , strategyQ(Name("/tables-config-section-strategy-Q").appendVersion(2))
   {
     DummyStrategy::registerAs(strategyP);
     DummyStrategy::registerAs(strategyP1);
+    // strategyP1Marker is NOT registered
     DummyStrategy::registerAs(strategyQ);
   }
 
@@ -64,16 +59,18 @@
 
 protected:
   FaceTable faceTable;
-  Forwarder forwarder;
-  Cs& cs;
-  StrategyChoice& strategyChoice;
-  NetworkRegionTable& networkRegionTable;
+  Forwarder forwarder{faceTable};
+  Cs& cs{forwarder.getCs()};
+  StrategyChoice& strategyChoice{forwarder.getStrategyChoice()};
+  NetworkRegionTable& networkRegionTable{forwarder.getNetworkRegionTable()};
 
-  TablesConfigSection tablesConfig;
+  TablesConfigSection tablesConfig{forwarder};
 
-  const Name strategyP;
-  const Name strategyP1;
-  const Name strategyQ;
+  const Name defaultStrategy = fw::BestRouteStrategy::getStrategyName();
+  const Name strategyP = Name("/tables-config-section-strategy-P").appendVersion(2);
+  const Name strategyP1 = "/tables-config-section-strategy-P/v=1";
+  const Name strategyP1Marker = "/tables-config-section-strategy-P/%FD%01";
+  const Name strategyQ = Name("/tables-config-section-strategy-Q").appendVersion(2);
 };
 
 BOOST_AUTO_TEST_SUITE(Mgmt)
@@ -290,21 +287,21 @@
   BOOST_REQUIRE_NO_THROW(runConfig(CONFIG, true));
   {
     fw::Strategy& rootStrategy = strategyChoice.findEffectiveStrategy("/");
-    BOOST_CHECK_NE(rootStrategy.getInstanceName(), strategyP.getPrefix(-1));
-    BOOST_CHECK_NE(rootStrategy.getInstanceName(), strategyQ.getPrefix(-1));
+    BOOST_CHECK_EQUAL(rootStrategy.getInstanceName(), defaultStrategy);
 
     fw::Strategy& aStrategy = strategyChoice.findEffectiveStrategy("/a");
-    BOOST_CHECK_NE(aStrategy.getInstanceName(), strategyP.getPrefix(-1));
-    BOOST_CHECK_NE(aStrategy.getInstanceName(), strategyQ.getPrefix(-1));
+    BOOST_CHECK_EQUAL(aStrategy.getInstanceName(), defaultStrategy);
   }
 
   BOOST_REQUIRE_NO_THROW(runConfig(CONFIG, false));
   {
     fw::Strategy& rootStrategy = strategyChoice.findEffectiveStrategy("/");
     BOOST_CHECK_EQUAL(rootStrategy.getInstanceName(), strategyP.getPrefix(-1));
+    NFD_CHECK_TYPEID_EQUAL(rootStrategy, DummyStrategy);
 
     fw::Strategy& aStrategy = strategyChoice.findEffectiveStrategy("/a");
     BOOST_CHECK_EQUAL(aStrategy.getInstanceName(), strategyQ.getPrefix(-1));
+    NFD_CHECK_TYPEID_EQUAL(aStrategy, DummyStrategy);
   }
 }
 
@@ -316,7 +313,8 @@
       strategy_choice
       {
         /test/latest /tables-config-section-strategy-P
-        /test/old /tables-config-section-strategy-P/%FD%01
+        /test/old /tables-config-section-strategy-P/v=1
+        /test/marker /tables-config-section-strategy-P/%FD%01
       }
     }
   )CONFIG";
@@ -324,21 +322,28 @@
   BOOST_REQUIRE_NO_THROW(runConfig(CONFIG, true));
   {
     fw::Strategy& testLatestStrategy = strategyChoice.findEffectiveStrategy("/test/latest");
-    BOOST_CHECK_NE(testLatestStrategy.getInstanceName(), strategyP.getPrefix(-1));
-    BOOST_CHECK_NE(testLatestStrategy.getInstanceName(), strategyP1);
+    BOOST_CHECK_EQUAL(testLatestStrategy.getInstanceName(), defaultStrategy);
 
     fw::Strategy& testOldStrategy = strategyChoice.findEffectiveStrategy("/test/old");
-    BOOST_CHECK_NE(testOldStrategy.getInstanceName(), strategyP.getPrefix(-1));
-    BOOST_CHECK_NE(testOldStrategy.getInstanceName(), strategyP1);
+    BOOST_CHECK_EQUAL(testOldStrategy.getInstanceName(), defaultStrategy);
+
+    fw::Strategy& testMarkerStrategy = strategyChoice.findEffectiveStrategy("/test/marker");
+    BOOST_CHECK_EQUAL(testMarkerStrategy.getInstanceName(), defaultStrategy);
   }
 
   BOOST_REQUIRE_NO_THROW(runConfig(CONFIG, false));
   {
     fw::Strategy& testLatestStrategy = strategyChoice.findEffectiveStrategy("/test/latest");
     BOOST_CHECK_EQUAL(testLatestStrategy.getInstanceName(), strategyP.getPrefix(-1));
+    NFD_CHECK_TYPEID_EQUAL(testLatestStrategy, DummyStrategy);
 
     fw::Strategy& testOldStrategy = strategyChoice.findEffectiveStrategy("/test/old");
     BOOST_CHECK_EQUAL(testOldStrategy.getInstanceName(), strategyP1);
+    NFD_CHECK_TYPEID_EQUAL(testOldStrategy, DummyStrategy);
+
+    fw::Strategy& testMarkerStrategy = strategyChoice.findEffectiveStrategy("/test/marker");
+    BOOST_CHECK_EQUAL(testMarkerStrategy.getInstanceName(), strategyP1Marker);
+    NFD_CHECK_TYPEID_EQUAL(testMarkerStrategy, DummyStrategy);
   }
 }
 
@@ -399,7 +404,7 @@
     {
       strategy_choice
       {
-        / /localhost/nfd/strategy/best-route/%FD%05/param
+        / /localhost/nfd/strategy/best-route/v=5/param
       }
     }
   )CONFIG";
diff --git a/tests/tools/nfdc/strategy-choice-module.t.cpp b/tests/tools/nfdc/strategy-choice-module.t.cpp
index 634682b..22f7d92 100644
--- a/tests/tools/nfdc/strategy-choice-module.t.cpp
+++ b/tests/tools/nfdc/strategy-choice-module.t.cpp
@@ -69,8 +69,8 @@
 
   this->execute("strategy list");
   BOOST_CHECK_EQUAL(exitCode, 0);
-  BOOST_CHECK(out.is_equal("prefix=/ strategy=/strategyP/%FD%01\n"
-                           "prefix=/52VRvpL9/Yqfut4TNHv strategy=/strategyQ/%FD%02\n"));
+  BOOST_CHECK(out.is_equal("prefix=/ strategy=/strategyP/v=1\n"
+                           "prefix=/52VRvpL9/Yqfut4TNHv strategy=/strategyQ/v=2\n"));
   BOOST_CHECK(err.is_empty());
 }
 
@@ -97,7 +97,7 @@
   this->execute("strategy show /I1Ixgg0X");
   BOOST_CHECK_EQUAL(exitCode, 0);
   BOOST_CHECK(out.is_equal("  prefix=/\n"
-                           "strategy=/strategyP/%FD%01\n"));
+                           "strategy=/strategyP/v=1\n"));
   BOOST_CHECK(err.is_empty());
 }
 
@@ -110,7 +110,7 @@
   this->execute("strategy show /52VRvpL9/Yqfut4TNHv/Y5gY7gom");
   BOOST_CHECK_EQUAL(exitCode, 0);
   BOOST_CHECK(out.is_equal("  prefix=/52VRvpL9/Yqfut4TNHv\n"
-                           "strategy=/strategyQ/%FD%02\n"));
+                           "strategy=/strategyQ/v=2\n"));
   BOOST_CHECK(err.is_empty());
 }
 
@@ -145,7 +145,7 @@
 
   this->execute("strategy set /VBXSJg3m/XYs81ARNhx /strategyP");
   BOOST_CHECK_EQUAL(exitCode, 0);
-  BOOST_CHECK(out.is_equal("strategy-set prefix=/VBXSJg3m/XYs81ARNhx strategy=/strategyP/%FD%05\n"));
+  BOOST_CHECK(out.is_equal("strategy-set prefix=/VBXSJg3m/XYs81ARNhx strategy=/strategyP/v=5\n"));
   BOOST_CHECK(err.is_empty());
 }
 
@@ -225,13 +225,13 @@
     <strategyChoice>
       <namespace>/</namespace>
       <strategy>
-        <name>/localhost/nfd/strategy/best-route/%FD%04</name>
+        <name>/localhost/nfd/strategy/best-route/v=4</name>
       </strategy>
     </strategyChoice>
     <strategyChoice>
       <namespace>/localhost</namespace>
       <strategy>
-        <name>/localhost/nfd/strategy/multicast/%FD%04</name>
+        <name>/localhost/nfd/strategy/multicast/v=4</name>
       </strategy>
     </strategyChoice>
   </strategyChoices>
@@ -239,8 +239,8 @@
 
 const std::string STATUS_TEXT = std::string(R"TEXT(
 Strategy choices:
-  prefix=/ strategy=/localhost/nfd/strategy/best-route/%FD%04
-  prefix=/localhost strategy=/localhost/nfd/strategy/multicast/%FD%04
+  prefix=/ strategy=/localhost/nfd/strategy/best-route/v=4
+  prefix=/localhost strategy=/localhost/nfd/strategy/multicast/v=4
 )TEXT").substr(1);
 
 BOOST_FIXTURE_TEST_CASE(Status, StatusFixture<StrategyChoiceModule>)
