diff --git a/quic/qbone/bonnet/mock_qbone_tunnel.h b/quic/qbone/bonnet/mock_qbone_tunnel.h
new file mode 100644
index 0000000..ab27c9d
--- /dev/null
+++ b/quic/qbone/bonnet/mock_qbone_tunnel.h
@@ -0,0 +1,43 @@
+// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_QBONE_BONNET_MOCK_QBONE_TUNNEL_H_
+#define QUICHE_QUIC_QBONE_BONNET_MOCK_QBONE_TUNNEL_H_
+
+#include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
+#include "net/third_party/quiche/src/quic/qbone/bonnet/qbone_tunnel_interface.h"
+
+namespace quic {
+
+class MockQboneTunnel : public QboneTunnelInterface {
+ public:
+  MockQboneTunnel() = default;
+
+  MOCK_METHOD(bool, WaitForEvents, (), (override));
+
+  MOCK_METHOD(void, Wake, (), (override));
+
+  MOCK_METHOD(void, ResetTunnel, (), (override));
+
+  MOCK_METHOD(State, Disconnect, (), (override));
+
+  MOCK_METHOD(void, OnControlRequest, (const quic::QboneClientRequest&),
+              (override));
+
+  MOCK_METHOD(void, OnControlError, (), (override));
+
+  MOCK_METHOD(bool, AwaitConnection, ());
+
+  MOCK_METHOD(std::string, StateToString, (State), (override));
+
+  MOCK_METHOD(quic::QboneClient*, client, (), (override));
+
+  MOCK_METHOD(State, state, ());
+
+  MOCK_METHOD(std::string, HealthString, ());
+};
+
+}  // namespace quic
+
+#endif  // QUICHE_QUIC_QBONE_BONNET_MOCK_QBONE_TUNNEL_H_
diff --git a/quic/qbone/bonnet/qbone_tunnel_interface.h b/quic/qbone/bonnet/qbone_tunnel_interface.h
new file mode 100644
index 0000000..f5a17fd
--- /dev/null
+++ b/quic/qbone/bonnet/qbone_tunnel_interface.h
@@ -0,0 +1,68 @@
+// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_QBONE_BONNET_QBONE_TUNNEL_INTERFACE_H_
+#define QUICHE_QUIC_QBONE_BONNET_QBONE_TUNNEL_INTERFACE_H_
+
+#include "net/third_party/quiche/src/quic/qbone/qbone_client.h"
+
+namespace quic {
+
+// Interface for establishing bidirectional communication between a network
+// device and a QboneClient.
+class QboneTunnelInterface : public quic::QboneClientControlStream::Handler {
+ public:
+  QboneTunnelInterface() = default;
+
+  QboneTunnelInterface(const QboneTunnelInterface&) = delete;
+  QboneTunnelInterface& operator=(const QboneTunnelInterface&) = delete;
+
+  QboneTunnelInterface(QboneTunnelInterface&&) = delete;
+  QboneTunnelInterface& operator=(QboneTunnelInterface&&) = delete;
+
+  enum State {
+    UNINITIALIZED,
+    IP_RANGE_REQUESTED,
+    START_REQUESTED,
+    STARTED,
+    LAME_DUCK_REQUESTED,
+    END_REQUESTED,
+    ENDED,
+    FAILED,
+  };
+
+  // Wait and handle any events which occur.
+  // Returns true if there are any outstanding requests.
+  virtual bool WaitForEvents() = 0;
+
+  // Wakes the tunnel if it is currently in WaitForEvents.
+  virtual void Wake() = 0;
+
+  // Disconnect the tunnel, resetting it to an uninitialized state. This will
+  // force ConnectIfNeeded to reconnect on the next epoll cycle.
+  virtual void ResetTunnel() = 0;
+
+  // Disconnect from the QBONE server.
+  virtual State Disconnect() = 0;
+
+  // Callback handling responses from the QBONE server.
+  void OnControlRequest(const QboneClientRequest& request) override = 0;
+
+  // Callback handling bad responses from the QBONE server. Currently, this is
+  // only called when the response is unparsable.
+  void OnControlError() override = 0;
+
+  // Returns a string value of the given state.
+  virtual std::string StateToString(State state) = 0;
+
+  virtual QboneClient* client() = 0;
+
+  virtual State state() = 0;
+
+  virtual std::string HealthString() = 0;
+};
+
+}  // namespace quic
+
+#endif  // QUICHE_QUIC_QBONE_BONNET_QBONE_TUNNEL_INTERFACE_H_
