Add support for qbone bridging. Changes are primarily two-fold viz. 1. Add an option to start bonnet server with a specified # of qbone bridge ifaces. 2. Start socat relays taking qbone address offset (which enables relaying of packets coming over qbone tunnel either to local device or to any one of the bridged ifaces). PiperOrigin-RevId: 684986925
diff --git a/quiche/quic/qbone/bonnet/tun_device_controller.cc b/quiche/quic/qbone/bonnet/tun_device_controller.cc index 97a6361..d44af18 100644 --- a/quiche/quic/qbone/bonnet/tun_device_controller.cc +++ b/quiche/quic/qbone/bonnet/tun_device_controller.cc
@@ -171,7 +171,7 @@ } void TunDeviceController::RegisterAddressUpdateCallback( - quiche::MultiUseCallback<void(QuicIpAddress)> cb) { + quiche::MultiUseCallback<void(const QuicIpAddress&)> cb) { address_update_cbs_.push_back(std::move(cb)); }
diff --git a/quiche/quic/qbone/bonnet/tun_device_controller.h b/quiche/quic/qbone/bonnet/tun_device_controller.h index 350a056..2728929 100644 --- a/quiche/quic/qbone/bonnet/tun_device_controller.h +++ b/quiche/quic/qbone/bonnet/tun_device_controller.h
@@ -52,7 +52,7 @@ int retries); virtual void RegisterAddressUpdateCallback( - quiche::MultiUseCallback<void(QuicIpAddress)> cb); + quiche::MultiUseCallback<void(const QuicIpAddress&)> cb); virtual QuicIpAddress current_address(); @@ -67,7 +67,7 @@ QuicIpAddress current_address_; - std::vector<quiche::MultiUseCallback<void(QuicIpAddress)>> + std::vector<quiche::MultiUseCallback<void(const QuicIpAddress&)>> address_update_cbs_; };