diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 7746db9..f31b29d 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -128,7 +128,11 @@
 
     def getGeneralFlags(self, conf):
         """Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are always needed"""
-        return {'CXXFLAGS': [], 'LINKFLAGS': [], 'DEFINES': []}
+        return {
+            'CXXFLAGS': [],
+            'LINKFLAGS': [],
+            'DEFINES': ['BOOST_FILESYSTEM_NO_DEPRECATED'],
+        }
 
     def getDebugFlags(self, conf):
         """Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are needed only in debug mode"""
diff --git a/README-dev.md b/README-dev.md
index c559250..b5c4cf3 100644
--- a/README-dev.md
+++ b/README-dev.md
@@ -59,7 +59,7 @@
     # Run NFD RIB management tests
     ./build/unit-tests-rib
 
-The [Boost.Test framework](https://www.boost.org/doc/libs/1_65_1/libs/test/doc/html/index.html)
+The [Boost.Test framework](https://www.boost.org/doc/libs/1_71_0/libs/test/doc/html/index.html)
 is very flexible and allows a number of run-time customization of what tests should be run.
 For example, it is possible to choose to run only a specific test suite, only a specific
 test case within a suite, or specific test cases within specific test suites:
@@ -92,4 +92,4 @@
 
 There are many more command line options available, information about which can be obtained
 either from the command line using the `--help` switch, or online on the
-[Boost.Test website](https://www.boost.org/doc/libs/1_65_1/libs/test/doc/html/index.html).
+[Boost.Test website](https://www.boost.org/doc/libs/1_71_0/libs/test/doc/html/boost_test/runtime_config.html).
diff --git a/tests/daemon/mgmt/rib-manager.t.cpp b/tests/daemon/mgmt/rib-manager.t.cpp
index 417500e..ded13e2 100644
--- a/tests/daemon/mgmt/rib-manager.t.cpp
+++ b/tests/daemon/mgmt/rib-manager.t.cpp
@@ -185,7 +185,7 @@
       data->setContent(resp.wireEncode());
       m_keyChain.sign(*data, ndn::security::SigningInfo(ndn::security::SigningInfo::SIGNER_TYPE_SHA256));
 
-      boost::asio::post(m_face.getIoService(), [this, data] { m_face.receive(*data); });
+      boost::asio::post(m_face.getIoContext(), [this, data] { m_face.receive(*data); });
     };
 
     const Name commandPrefix("/localhost/nfd/fib/add-nexthop");
diff --git a/tests/tools/ndn-autoconfig-server/program.t.cpp b/tests/tools/ndn-autoconfig-server/program.t.cpp
index ee99740..cf81b7b 100644
--- a/tests/tools/ndn-autoconfig-server/program.t.cpp
+++ b/tests/tools/ndn-autoconfig-server/program.t.cpp
@@ -88,7 +88,7 @@
   }
   this->initialize(options);
 
-  DummyClientFace clientFace(face.getIoService());
+  DummyClientFace clientFace(face.getIoContext());
   clientFace.linkTo(face);
 
   Name baseName("/localhop/nfd/rib/routable-prefixes");
diff --git a/tests/tools/ndn-autoconfig/procedure.t.cpp b/tests/tools/ndn-autoconfig/procedure.t.cpp
index d6a024d..0f09eea 100644
--- a/tests/tools/ndn-autoconfig/procedure.t.cpp
+++ b/tests/tools/ndn-autoconfig/procedure.t.cpp
@@ -108,16 +108,16 @@
   boost::asio::io_context& m_io;
 };
 
-/** \brief Two-stage Procedure where the first stage succeeds and the second stage fails.
- *
- *  But the second stage shouldn't be invoked after the first stage succeeds.
+/**
+ * Two-stage Procedure where the first stage succeeds and the second stage fails,
+ * but the second stage shouldn't be invoked after the first stage succeeds.
  */
 class ProcedureSuccessFailure : public Procedure
 {
 public:
   ProcedureSuccessFailure(Face& face, KeyChain& keyChain)
     : Procedure(face, keyChain)
-    , m_io(face.getIoService())
+    , m_io(face.getIoContext())
   {
   }
 
@@ -137,14 +137,15 @@
   boost::asio::io_context& m_io;
 };
 
-/** \brief Two-stage Procedure where the first stage fails and the second stage succeeds.
+/**
+ * Two-stage Procedure where the first stage fails and the second stage succeeds.
  */
 class ProcedureFailureSuccess : public Procedure
 {
 public:
   ProcedureFailureSuccess(Face& face, KeyChain& keyChain)
     : Procedure(face, keyChain)
-    , m_io(face.getIoService())
+    , m_io(face.getIoContext())
   {
   }
 
diff --git a/tools/ndn-autoconfig/main.cpp b/tools/ndn-autoconfig/main.cpp
index 3b30001..9602a92 100644
--- a/tools/ndn-autoconfig/main.cpp
+++ b/tools/ndn-autoconfig/main.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-2023,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -60,10 +60,10 @@
 static void
 runDaemon(Procedure& proc)
 {
-  boost::asio::signal_set terminateSignals(proc.getIoService());
+  boost::asio::signal_set terminateSignals(proc.getIoContext());
   terminateSignals.add(SIGINT);
   terminateSignals.add(SIGTERM);
-  terminateSignals.async_wait([&] (const boost::system::error_code& error, int signalNo) {
+  terminateSignals.async_wait([&] (const auto& error, int signalNo) {
     if (error) {
       return;
     }
@@ -76,10 +76,10 @@
       std::cerr << signalName;
     }
     std::cerr << std::endl;
-    proc.getIoService().stop();
+    proc.getIoContext().stop();
   });
 
-  Scheduler sched(proc.getIoService());
+  Scheduler sched(proc.getIoContext());
   scheduler::ScopedEventId runEvt;
   auto scheduleRerun = [&] (time::nanoseconds delay) {
     runEvt = sched.schedule(delay, [&] { proc.runOnce(); });
@@ -89,11 +89,11 @@
     scheduleRerun(DAEMON_UNCONDITIONAL_INTERVAL);
   });
 
-  net::NetworkMonitor netmon(proc.getIoService());
+  net::NetworkMonitor netmon(proc.getIoContext());
   netmon.onNetworkStateChanged.connect([&] { scheduleRerun(NETMON_DAMPEN_PERIOD); });
 
   scheduleRerun(DAEMON_INITIAL_DELAY);
-  proc.getIoService().run();
+  proc.getIoContext().run();
 }
 
 static int
diff --git a/tools/ndn-autoconfig/procedure.cpp b/tools/ndn-autoconfig/procedure.cpp
index f7295d3..ebeaae2 100644
--- a/tools/ndn-autoconfig/procedure.cpp
+++ b/tools/ndn-autoconfig/procedure.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-2023,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -108,7 +108,7 @@
       std::cerr << "Failed to canonize HUB FaceUri: " << reason << std::endl;
       this->onComplete(false);
     },
-    m_face.getIoService(), FACEURI_CANONIZE_TIMEOUT);
+    m_face.getIoContext(), FACEURI_CANONIZE_TIMEOUT);
 }
 
 void
diff --git a/tools/ndn-autoconfig/procedure.hpp b/tools/ndn-autoconfig/procedure.hpp
index d9513ed..a15b117 100644
--- a/tools/ndn-autoconfig/procedure.hpp
+++ b/tools/ndn-autoconfig/procedure.hpp
@@ -52,15 +52,16 @@
   void
   initialize(const Options& options);
 
-  /** \brief Run HUB discovery procedure once.
+  /**
+   * \brief Run the HUB discovery procedure once.
    */
   void
   runOnce();
 
   boost::asio::io_context&
-  getIoService()
+  getIoContext() const noexcept
   {
-    return m_face.getIoService();
+    return m_face.getIoContext();
   }
 
 private:
diff --git a/tools/nfd-autoreg.cpp b/tools/nfd-autoreg.cpp
index 292ccc8..58ce2c7 100644
--- a/tools/nfd-autoreg.cpp
+++ b/tools/nfd-autoreg.cpp
@@ -173,7 +173,7 @@
     m_faceMonitor.onNotification.connect([this] (const auto& notif) { onNotification(notif); });
     m_faceMonitor.start();
 
-    boost::asio::signal_set signalSet(m_face.getIoService(), SIGINT, SIGTERM);
+    boost::asio::signal_set signalSet(m_face.getIoContext(), SIGINT, SIGTERM);
     signalSet.async_wait([this] (auto&&...) { m_face.shutdown(); });
 
     m_face.processEvents();
diff --git a/tools/nfdc/face-helpers.cpp b/tools/nfdc/face-helpers.cpp
index 36982a4..780422f 100644
--- a/tools/nfdc/face-helpers.cpp
+++ b/tools/nfdc/face-helpers.cpp
@@ -186,7 +186,7 @@
   uri.canonize(
     [&result] (const auto& canonicalUri) { result = canonicalUri; },
     [&error] (const auto& errorReason) { error = errorReason; },
-    ctx.face.getIoService(), ctx.getTimeout());
+    ctx.face.getIoContext(), ctx.getTimeout());
   ctx.face.processEvents();
 
   return {result, error};
