diff --git a/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc b/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc
index e6cb919..988b00e 100644
--- a/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc
+++ b/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc
@@ -6,6 +6,8 @@
 
 #include <string>
 
+#include "absl/status/status.h"
+#include "absl/strings/string_view.h"
 #include "quiche/quic/platform/api/quic_test.h"
 #include "quiche/quic/qbone/bonnet/mock_packet_exchanger_stats_interface.h"
 #include "quiche/quic/qbone/mock_qbone_client.h"
@@ -27,6 +29,7 @@
  public:
   MOCK_METHOD(void, OnReadError, (const std::string&), (override));
   MOCK_METHOD(void, OnWriteError, (const std::string&), (override));
+  MOCK_METHOD(absl::Status, OnWrite, (absl::string_view), (override));
 };
 
 class TunDevicePacketExchangerTest : public QuicTest {
@@ -56,6 +59,7 @@
       }));
 
   EXPECT_CALL(mock_visitor_, OnWriteError(_));
+  EXPECT_CALL(mock_visitor_, OnWrite(StrEq(packet))).Times(1);
   exchanger_.WritePacketToNetwork(packet.data(), packet.size());
 }
 
@@ -69,6 +73,7 @@
       }));
 
   EXPECT_CALL(mock_stats_, OnWriteError(_)).Times(1);
+  EXPECT_CALL(mock_visitor_, OnWrite(StrEq(packet))).Times(1);
   exchanger_.WritePacketToNetwork(packet.data(), packet.size());
 }
 
@@ -81,6 +86,7 @@
       }));
 
   EXPECT_CALL(mock_stats_, OnPacketWritten(_)).Times(1);
+  EXPECT_CALL(mock_visitor_, OnWrite(StrEq(packet))).Times(1);
   exchanger_.WritePacketToNetwork(packet.data(), packet.size());
 }
 
diff --git a/quiche/quic/qbone/qbone_packet_exchanger.cc b/quiche/quic/qbone/qbone_packet_exchanger.cc
index aa99a78..f82292c 100644
--- a/quiche/quic/qbone/qbone_packet_exchanger.cc
+++ b/quiche/quic/qbone/qbone_packet_exchanger.cc
@@ -8,6 +8,8 @@
 #include <string>
 #include <utility>
 
+#include "absl/status/status.h"
+
 namespace quic {
 
 bool QbonePacketExchanger::ReadAndDeliverPacket(
@@ -27,6 +29,13 @@
 
 void QbonePacketExchanger::WritePacketToNetwork(const char* packet,
                                                 size_t size) {
+  if (visitor_) {
+    absl::Status status = visitor_->OnWrite(packet);
+    if (!status.ok()) {
+      QUIC_LOG_EVERY_N_SEC(ERROR, 60) << status;
+    }
+  }
+
   bool blocked = false;
   std::string error;
   if (packet_queue_.empty() && !write_blocked_) {
diff --git a/quiche/quic/qbone/qbone_packet_exchanger.h b/quiche/quic/qbone/qbone_packet_exchanger.h
index 4fd617b..c69f9b8 100644
--- a/quiche/quic/qbone/qbone_packet_exchanger.h
+++ b/quiche/quic/qbone/qbone_packet_exchanger.h
@@ -5,6 +5,8 @@
 #ifndef QUICHE_QUIC_QBONE_QBONE_PACKET_EXCHANGER_H_
 #define QUICHE_QUIC_QBONE_QBONE_PACKET_EXCHANGER_H_
 
+#include "absl/status/status.h"
+#include "absl/strings/string_view.h"
 #include "quiche/quic/core/quic_packets.h"
 #include "quiche/quic/qbone/qbone_client_interface.h"
 #include "quiche/quic/qbone/qbone_packet_writer.h"
@@ -21,6 +23,9 @@
     virtual ~Visitor() {}
     virtual void OnReadError(const std::string& error) {}
     virtual void OnWriteError(const std::string& error) {}
+    virtual absl::Status OnWrite(absl::string_view packet) {
+      return absl::OkStatus();
+    }
   };
   // Does not take ownership of visitor.
   QbonePacketExchanger(Visitor* visitor, size_t max_pending_packets)
diff --git a/quiche/quic/qbone/qbone_packet_exchanger_test.cc b/quiche/quic/qbone/qbone_packet_exchanger_test.cc
index 1663907..e9371e4 100644
--- a/quiche/quic/qbone/qbone_packet_exchanger_test.cc
+++ b/quiche/quic/qbone/qbone_packet_exchanger_test.cc
@@ -10,6 +10,8 @@
 #include <utility>
 #include <vector>
 
+#include "absl/status/status.h"
+#include "absl/strings/string_view.h"
 #include "quiche/quic/platform/api/quic_test.h"
 #include "quiche/quic/qbone/mock_qbone_client.h"
 
@@ -25,6 +27,7 @@
  public:
   MOCK_METHOD(void, OnReadError, (const std::string&), (override));
   MOCK_METHOD(void, OnWriteError, (const std::string&), (override));
+  MOCK_METHOD(absl::Status, OnWrite, (absl::string_view), (override));
 };
 
 class FakeQbonePacketExchanger : public QbonePacketExchanger {
