blob: 406acaa851d9885f801717c08b20f653d67bff1b [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "diagnostics/constants/grpc_constants.h"
#include <sys/socket.h>
// Needs to come after sys/socket.h.
#include <linux/vm_sockets.h> // NOLINT(build/include_alpha)
#include <base/strings/stringprintf.h>
namespace {
// Helper function to format and create a vsock URI given a context id |cid| and
// |port|.
std::string CreateVsockUri(unsigned int cid, unsigned int port) {
return base::StringPrintf("vsock:%u:%u", cid, port);
}
} // namespace
namespace diagnostics {
// Context ID for Wilco DTC VM. Must match the CID parameter given to crosvm in
// wilco_dtc.conf
constexpr int kWilcoDtcVmCid = 512;
// Vsock port numbers must be larger than the reserved ports 1024 and must not
// conflict with the port numbers defined in vm_tools/common/constants.h
// Port on which the wilco_dtc_supportd is listening on the host.
constexpr int kWilcoDtcSupportdPort = 6666;
// Port on which the wilco_dtc is listening in the guest VM.
constexpr int kWilcoDtcPort = 6667;
// Port on which the wilco_dtc VM is listening in the guest VM that is eligeble
// to receive UI messages.
constexpr int kUiMessageReceiverWilcoDtcPort = 6668;
const char kWilcoDtcSupportdGrpcDomainSocketUri[] =
"unix:/run/wilco_dtc/grpc_sockets/wilco_dtc_supportd_socket";
std::string GetWilcoDtcSupportdGrpcHostVsockUri() {
return CreateVsockUri(VMADDR_CID_ANY, kWilcoDtcSupportdPort);
}
std::string GetWilcoDtcSupportdGrpcGuestVsockUri() {
return CreateVsockUri(VMADDR_CID_HOST, kWilcoDtcSupportdPort);
}
std::string GetWilcoDtcGrpcHostVsockUri() {
return CreateVsockUri(kWilcoDtcVmCid, kWilcoDtcPort);
}
std::string GetWilcoDtcGrpcGuestVsockUri() {
return CreateVsockUri(VMADDR_CID_ANY, kWilcoDtcPort);
}
std::string GetUiMessageReceiverWilcoDtcGrpcHostVsockUri() {
return CreateVsockUri(kWilcoDtcVmCid, kUiMessageReceiverWilcoDtcPort);
}
std::string GetUiMessageReceiverWilcoDtcGrpcGuestVsockUri() {
return CreateVsockUri(VMADDR_CID_ANY, kUiMessageReceiverWilcoDtcPort);
}
} // namespace diagnostics