diff --git a/tests/daemon/mgmt/face-manager-create-face.t.cpp b/tests/daemon/mgmt/face-manager-create-face.t.cpp
index 45ddc1f..8f789c6 100644
--- a/tests/daemon/mgmt/face-manager-create-face.t.cpp
+++ b/tests/daemon/mgmt/face-manager-create-face.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -23,13 +23,13 @@
  * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#define BOOST_MPL_LIMIT_VECTOR_SIZE 40
-
 #include "mgmt/face-manager.hpp"
 #include "face/generic-link-service.hpp"
+
 #include "face-manager-command-fixture.hpp"
 
+#include <boost/mp11/list.hpp>
+
 namespace nfd::tests {
 
 BOOST_AUTO_TEST_SUITE(Mgmt)
@@ -302,36 +302,35 @@
   }
 };
 
-namespace mpl = boost::mpl;
-
-// pairs of CreateCommand and Success/Failure status
-using TestCases = mpl::vector<
-                    mpl::pair<TcpFaceOnDemand, CommandFailure<406>>,
-                    mpl::pair<TcpFacePersistent, CommandSuccess>,
-                    mpl::pair<TcpFacePermanent, CommandSuccess>,
-                    mpl::pair<UdpFaceOnDemand, CommandFailure<406>>,
-                    mpl::pair<UdpFacePersistent, CommandSuccess>,
-                    mpl::pair<UdpFacePermanent, CommandSuccess>,
-                    mpl::pair<LocalTcpFaceLocalFieldsEnabled, CommandSuccess>,
-                    mpl::pair<LocalTcpFaceLocalFieldsDisabled, CommandSuccess>,
-                    mpl::pair<NonLocalUdpFaceLocalFieldsEnabled, CommandFailure<406>>,
-                    mpl::pair<NonLocalUdpFaceLocalFieldsDisabled, CommandSuccess>,
-                    mpl::pair<TcpFaceLpReliabilityEnabled, CommandSuccess>,
-                    mpl::pair<TcpFaceLpReliabilityDisabled, CommandSuccess>,
-                    mpl::pair<UdpFaceLpReliabilityEnabled, CommandSuccess>,
-                    mpl::pair<UdpFaceLpReliabilityDisabled, CommandSuccess>,
-                    mpl::pair<TcpFaceCongestionMarkingEnabled, CommandSuccess>,
-                    mpl::pair<TcpFaceCongestionMarkingDisabled, CommandSuccess>,
-                    mpl::pair<TcpFaceMtuOverride, CommandFailure<406>>,
-                    mpl::pair<UdpFaceMtuOverride, CommandSuccess>,
-                    mpl::pair<FaceUriMalformed, CommandFailure<400>>,
-                    mpl::pair<FaceUriNonCanonical, CommandFailure<400>>,
-                    mpl::pair<FaceUriUnsupportedScheme, CommandFailure<406>>>;
+// Pairs of CreateCommand and success/failure status
+using TestCases = boost::mp11::mp_list<
+  boost::mp11::mp_list<TcpFaceOnDemand, CommandFailure<406>>,
+  boost::mp11::mp_list<TcpFacePersistent, CommandSuccess>,
+  boost::mp11::mp_list<TcpFacePermanent, CommandSuccess>,
+  boost::mp11::mp_list<UdpFaceOnDemand, CommandFailure<406>>,
+  boost::mp11::mp_list<UdpFacePersistent, CommandSuccess>,
+  boost::mp11::mp_list<UdpFacePermanent, CommandSuccess>,
+  boost::mp11::mp_list<LocalTcpFaceLocalFieldsEnabled, CommandSuccess>,
+  boost::mp11::mp_list<LocalTcpFaceLocalFieldsDisabled, CommandSuccess>,
+  boost::mp11::mp_list<NonLocalUdpFaceLocalFieldsEnabled, CommandFailure<406>>,
+  boost::mp11::mp_list<NonLocalUdpFaceLocalFieldsDisabled, CommandSuccess>,
+  boost::mp11::mp_list<TcpFaceLpReliabilityEnabled, CommandSuccess>,
+  boost::mp11::mp_list<TcpFaceLpReliabilityDisabled, CommandSuccess>,
+  boost::mp11::mp_list<UdpFaceLpReliabilityEnabled, CommandSuccess>,
+  boost::mp11::mp_list<UdpFaceLpReliabilityDisabled, CommandSuccess>,
+  boost::mp11::mp_list<TcpFaceCongestionMarkingEnabled, CommandSuccess>,
+  boost::mp11::mp_list<TcpFaceCongestionMarkingDisabled, CommandSuccess>,
+  boost::mp11::mp_list<TcpFaceMtuOverride, CommandFailure<406>>,
+  boost::mp11::mp_list<UdpFaceMtuOverride, CommandSuccess>,
+  boost::mp11::mp_list<FaceUriMalformed, CommandFailure<400>>,
+  boost::mp11::mp_list<FaceUriNonCanonical, CommandFailure<400>>,
+  boost::mp11::mp_list<FaceUriUnsupportedScheme, CommandFailure<406>>
+>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(NewFace, T, TestCases, FaceManagerCommandFixture)
 {
-  using FaceType = typename T::first;
-  using CreateResult = typename T::second;
+  using FaceType = boost::mp11::mp_first<T>;
+  using CreateResult = boost::mp11::mp_second<T>;
 
   Interest req = makeControlCommandRequest("/localhost/nfd/faces/create", FaceType::getParameters());
 
diff --git a/tests/daemon/mgmt/face-manager-update-face.t.cpp b/tests/daemon/mgmt/face-manager-update-face.t.cpp
index 6000380..ebc794a 100644
--- a/tests/daemon/mgmt/face-manager-update-face.t.cpp
+++ b/tests/daemon/mgmt/face-manager-update-face.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -31,17 +31,15 @@
 
 #include <ndn-cxx/lp/tags.hpp>
 
-#include <thread>
-
 #include <boost/logic/tribool.hpp>
+#include <boost/mp11/list.hpp>
+#include <thread>
 
 namespace nfd::tests {
 
 BOOST_AUTO_TEST_SUITE(Mgmt)
 BOOST_AUTO_TEST_SUITE(TestFaceManager)
 
-namespace mpl = boost::mpl;
-
 class FaceManagerUpdateFixture : public FaceManagerCommandFixture
 {
 public:
@@ -202,15 +200,15 @@
   });
 }
 
-using UpdatePersistencyTests = mpl::vector<
-  mpl::pair<DummyTransportBase<true>, CommandSuccess>,
-  mpl::pair<DummyTransportBase<false>, CommandFailure<409>>
+using UpdatePersistencyTests = boost::mp11::mp_list<
+  boost::mp11::mp_list<DummyTransportBase<true>, CommandSuccess>,
+  boost::mp11::mp_list<DummyTransportBase<false>, CommandFailure<409>>
 >;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(UpdatePersistency, T, UpdatePersistencyTests, FaceManagerUpdateFixture)
 {
-  using TransportType = typename T::first;
-  using ResultType = typename T::second;
+  using TransportType = boost::mp11::mp_first<T>;
+  using ResultType = boost::mp11::mp_second<T>;
 
   auto face = make_shared<face::Face>(make_unique<face::GenericLinkService>(),
                                       make_unique<TransportType>());
@@ -511,18 +509,18 @@
   }
 };
 
-using LocalFieldFaces = mpl::vector<
-  mpl::pair<TcpLocalFieldsEnable, CommandSuccess>,
-  mpl::pair<TcpLocalFieldsDisable, CommandSuccess>,
-  mpl::pair<UdpLocalFieldsEnable, CommandFailure<409>>,
-  mpl::pair<UdpLocalFieldsDisable, CommandSuccess>,
-  mpl::pair<UdpLocalFieldsEnableNoMaskBit, CommandSuccess>
+using LocalFieldFaces = boost::mp11::mp_list<
+  boost::mp11::mp_list<TcpLocalFieldsEnable, CommandSuccess>,
+  boost::mp11::mp_list<TcpLocalFieldsDisable, CommandSuccess>,
+  boost::mp11::mp_list<UdpLocalFieldsEnable, CommandFailure<409>>,
+  boost::mp11::mp_list<UdpLocalFieldsDisable, CommandSuccess>,
+  boost::mp11::mp_list<UdpLocalFieldsEnableNoMaskBit, CommandSuccess>
 >;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(UpdateLocalFields, T, LocalFieldFaces)
 {
-  using TestType = typename T::first;
-  using ResultType = typename T::second;
+  using TestType = boost::mp11::mp_first<T>;
+  using ResultType = boost::mp11::mp_second<T>;
 
   createFace(TestType::getUri(), TestType::getPersistency(), {}, {},
              TestType::getInitLocalFieldsEnabled());
diff --git a/tests/daemon/mgmt/rib-manager.t.cpp b/tests/daemon/mgmt/rib-manager.t.cpp
index 65dcf05..43c69df 100644
--- a/tests/daemon/mgmt/rib-manager.t.cpp
+++ b/tests/daemon/mgmt/rib-manager.t.cpp
@@ -32,6 +32,7 @@
 #include <ndn-cxx/mgmt/nfd/face-status.hpp>
 #include <ndn-cxx/mgmt/nfd/rib-entry.hpp>
 
+#include <boost/mp11/algorithm.hpp>
 #include <boost/property_tree/info_parser.hpp>
 
 namespace nfd::tests {
@@ -303,21 +304,21 @@
   }
 };
 
-template<typename Fixture, auto Format>
+template<typename Fixture, typename Format>
 struct FixtureWithFormat : public Fixture
 {
-  static constexpr ndn::security::SignedInterestFormat signedInterestFmt = Format;
+  static constexpr ndn::security::SignedInterestFormat signedInterestFmt = Format::value;
 };
 
-using AllFixtures = boost::mpl::vector<
-  FixtureWithFormat<UnauthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V02>,
-  FixtureWithFormat<UnauthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V03>,
-  FixtureWithFormat<LocalhostAuthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V02>,
-  FixtureWithFormat<LocalhostAuthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V03>,
-  FixtureWithFormat<LocalhopAuthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V02>,
-  FixtureWithFormat<LocalhopAuthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V03>,
-  FixtureWithFormat<AuthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V02>,
-  FixtureWithFormat<AuthorizedRibManagerFixture, ndn::security::SignedInterestFormat::V03>
+using AllFixtures = boost::mp11::mp_product<
+  FixtureWithFormat,
+  boost::mp11::mp_list<UnauthorizedRibManagerFixture,
+                       LocalhostAuthorizedRibManagerFixture,
+                       LocalhopAuthorizedRibManagerFixture,
+                       AuthorizedRibManagerFixture>,
+  boost::mp11::mp_list_c<ndn::security::SignedInterestFormat,
+                         ndn::security::SignedInterestFormat::V02,
+                         ndn::security::SignedInterestFormat::V03>
 >;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(CommandAuthorization, T, AllFixtures, T)
