aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof KosiƄski <krzysio@google.com>2023-10-28 03:40:58 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-10-28 03:40:58 +0000
commitba0b863b3acf952eac2c12f3f4174ea59dbf32bf (patch)
treefd4d92596d2bd979e7098a76f2ed4963e00ca569
parent9f27dc84d426e6d492a0104d9d76fe47b2df26d8 (diff)
parent06fb97455fd5336cebfa9a1eb44d4fac6d054608 (diff)
downloadgrpc-grpc-ba0b863b3acf952eac2c12f3f4174ea59dbf32bf.tar.gz
Fix some issues with the VSOCK patch. am: 06fb97455f
Original change: https://android-review.googlesource.com/c/platform/external/grpc-grpc/+/2808536 Change-Id: Ib03dfd0e54cbc06a16371a4c9f2bf018f3070e72 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc4
-rw-r--r--src/core/lib/address_utils/parse_address.cc6
-rw-r--r--src/core/lib/address_utils/sockaddr_utils.cc12
-rw-r--r--src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc6
-rw-r--r--src/core/lib/iomgr/port.h12
-rw-r--r--src/core/lib/iomgr/sockaddr_posix.h8
-rw-r--r--src/core/lib/iomgr/unix_sockets_posix.cc6
-rw-r--r--test/core/address_utils/parse_address_test.cc6
-rw-r--r--test/core/address_utils/sockaddr_utils_test.cc6
-rw-r--r--test/core/event_engine/posix/tcp_posix_socket_utils_test.cc3
10 files changed, 29 insertions, 40 deletions
diff --git a/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc b/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
index 4d924d1782..143468ac0e 100644
--- a/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
+++ b/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
@@ -172,7 +172,7 @@ class UnixAbstractResolverFactory : public ResolverFactory {
};
#endif // GRPC_HAVE_UNIX_SOCKET
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
class VSockResolverFactory : public ResolverFactory {
public:
absl::string_view scheme() const override { return "vsock"; }
@@ -204,7 +204,7 @@ void RegisterSockaddrResolver(CoreConfiguration::Builder* builder) {
builder->resolver_registry()->RegisterResolverFactory(
std::make_unique<UnixAbstractResolverFactory>());
#endif
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
builder->resolver_registry()->RegisterResolverFactory(
std::make_unique<grpc_core::VSockResolverFactory>());
#endif
diff --git a/src/core/lib/address_utils/parse_address.cc b/src/core/lib/address_utils/parse_address.cc
index 1c837b8ff0..42b9cae4ba 100644
--- a/src/core/lib/address_utils/parse_address.cc
+++ b/src/core/lib/address_utils/parse_address.cc
@@ -144,7 +144,7 @@ grpc_error_handle UnixAbstractSockaddrPopulate(
} // namespace grpc_core
#endif /* GRPC_HAVE_UNIX_SOCKET */
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
bool grpc_parse_vsock(const grpc_core::URI& uri,
grpc_resolved_address* resolved_addr) {
@@ -181,7 +181,7 @@ grpc_error_handle VSockaddrPopulate(absl::string_view path,
} // namespace grpc_core
-#else /* GRPC_HAVE_LINUX_VSOCK */
+#else /* GRPC_HAVE_VSOCK */
bool grpc_parse_vsock(const grpc_core::URI& /* uri */,
grpc_resolved_address* /* resolved_addr */) {
@@ -195,7 +195,7 @@ grpc_error_handle VSockaddrPopulate(
abort();
}
-#endif /* GRPC_HAVE_LINUX_VSOCK */
+#endif /* GRPC_HAVE_VSOCK */
bool grpc_parse_ipv4_hostport(absl::string_view hostport,
grpc_resolved_address* addr, bool log_errors) {
diff --git a/src/core/lib/address_utils/sockaddr_utils.cc b/src/core/lib/address_utils/sockaddr_utils.cc
index f2bfe763eb..1a7b47ddef 100644
--- a/src/core/lib/address_utils/sockaddr_utils.cc
+++ b/src/core/lib/address_utils/sockaddr_utils.cc
@@ -75,7 +75,7 @@ static absl::StatusOr<std::string> grpc_sockaddr_to_uri_unix_if_possible(
}
#endif
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
static absl::StatusOr<std::string> grpc_sockaddr_to_uri_vsock_if_possible(
const grpc_resolved_address* resolved_addr) {
const grpc_sockaddr* addr =
@@ -87,12 +87,12 @@ static absl::StatusOr<std::string> grpc_sockaddr_to_uri_vsock_if_possible(
const auto* vsock_addr = reinterpret_cast<const struct sockaddr_vm*>(addr);
return absl::StrCat("vsock:", vsock_addr->svm_cid, ":", vsock_addr->svm_port);
}
-#else /* GRPC_HAVE_LINUX_VSOCK */
+#else /* GRPC_HAVE_VSOCK */
static absl::StatusOr<std::string> grpc_sockaddr_to_uri_vsock_if_possible(
const grpc_resolved_address* /* addr */) {
return absl::InvalidArgumentError("VSOCK is not supported.");
}
-#endif /* GRPC_HAVE_LINUX_VSOCK */
+#endif /* GRPC_HAVE_VSOCK */
static const uint8_t kV4MappedPrefix[] = {0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0xff, 0xff};
@@ -241,7 +241,7 @@ absl::StatusOr<std::string> grpc_sockaddr_to_string(
}
#endif
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
if (addr->sa_family == GRPC_AF_VSOCK) {
const sockaddr_vm* addr_vm = reinterpret_cast<const sockaddr_vm*>(addr);
out = absl::StrCat(addr_vm->svm_cid, ":", addr_vm->svm_port);
@@ -348,10 +348,10 @@ int grpc_sockaddr_get_port(const grpc_resolved_address* resolved_addr) {
case AF_UNIX:
return 1;
#endif
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
case GRPC_AF_VSOCK:
return 1;
-#endif /* GRPC_HAVE_LINUX_VSOCK */
+#endif /* GRPC_HAVE_VSOCK */
default:
gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port",
addr->sa_family);
diff --git a/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc b/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
index 5bd6755c29..141b1ef810 100644
--- a/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
+++ b/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
@@ -324,10 +324,10 @@ absl::StatusOr<std::string> SockaddrToString(
}
#endif
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
if (addr->sa_family == AF_VSOCK) {
const sockaddr_vm* addr_vm = reinterpret_cast<const sockaddr_vm*>(addr);
- return absl::StrCat("vsock:", addr_vm->svm_cid, ":", addr_vm->svm_port);
+ return absl::StrCat(addr_vm->svm_cid, ":", addr_vm->svm_port);
}
#endif
@@ -403,7 +403,7 @@ int SockaddrGetPort(const EventEngine::ResolvedAddress& resolved_addr) {
case AF_UNIX:
return 1;
#endif
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
case AF_VSOCK:
return 1;
#endif
diff --git a/src/core/lib/iomgr/port.h b/src/core/lib/iomgr/port.h
index 88f2a0321e..f84890c6b6 100644
--- a/src/core/lib/iomgr/port.h
+++ b/src/core/lib/iomgr/port.h
@@ -37,11 +37,7 @@
#define GRPC_HAVE_IP_PKTINFO 1
#define GRPC_HAVE_MSG_NOSIGNAL 1
#define GRPC_HAVE_UNIX_SOCKET 1
-#ifdef LINUX_VERSION_CODE
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
-#define GRPC_HAVE_LINUX_VSOCK
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */
-#endif /* LINUX_VERSION_CODE */
+#define GRPC_HAVE_VSOCK 1
#define GRPC_LINUX_EVENTFD 1
#define GRPC_POSIX_SOCKET 1
#define GRPC_POSIX_SOCKETUTILS 1
@@ -53,6 +49,7 @@
#define GRPC_HAVE_IP_PKTINFO 1
#define GRPC_HAVE_MSG_NOSIGNAL 1
#define GRPC_HAVE_UNIX_SOCKET 1
+#define GRPC_HAVE_VSOCK 1
/* Linux has TCP_INQ support since 4.18, but it is safe to set
the socket option on older kernels. */
#define GRPC_HAVE_TCP_INQ 1
@@ -61,11 +58,6 @@
#define GRPC_LINUX_ERRQUEUE 1
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0) */
#endif /* LINUX_VERSION_CODE */
-#ifdef LINUX_VERSION_CODE
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
-#define GRPC_HAVE_LINUX_VSOCK
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */
-#endif /* LINUX_VERSION_CODE */
#define GRPC_LINUX_MULTIPOLL_WITH_EPOLL 1
#define GRPC_POSIX_FORK 1
#define GRPC_POSIX_HOST_NAME_MAX 1
diff --git a/src/core/lib/iomgr/sockaddr_posix.h b/src/core/lib/iomgr/sockaddr_posix.h
index ef8ab46815..a70b8f48fa 100644
--- a/src/core/lib/iomgr/sockaddr_posix.h
+++ b/src/core/lib/iomgr/sockaddr_posix.h
@@ -50,14 +50,10 @@ typedef struct in6_addr grpc_in6_addr;
#define GRPC_AF_INET AF_INET
#define GRPC_AF_INET6 AF_INET6
-#ifdef GRPC_HAVE_LINUX_VSOCK
-#include <linux/vm_sockets.h> // Needs to come after sys/socket.h
-#define GRPC_AF_VSOCK AF_VSOCK
-#elif GPR_ANDROID
+#ifdef GRPC_HAVE_VSOCK
// HACK(chenhaosjtuacm): when building host services for run_cvd, the glibc version of Android
// toolchain is too low, using the header copied from bionic libc instead
-#include "vm_sockets.h"
-#define GRPC_HAVE_LINUX_VSOCK
+#include "src/core/lib/iomgr/vm_sockets.h"
#define GRPC_AF_VSOCK AF_VSOCK
#endif
diff --git a/src/core/lib/iomgr/unix_sockets_posix.cc b/src/core/lib/iomgr/unix_sockets_posix.cc
index 6634d6e374..9bd87bfe01 100644
--- a/src/core/lib/iomgr/unix_sockets_posix.cc
+++ b/src/core/lib/iomgr/unix_sockets_posix.cc
@@ -85,13 +85,13 @@ int grpc_is_unix_socket(const grpc_resolved_address* resolved_addr) {
}
int grpc_is_vsock(const grpc_resolved_address* resolved_addr) {
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
const grpc_sockaddr* addr =
reinterpret_cast<const grpc_sockaddr*>(resolved_addr->addr);
return addr->sa_family == AF_VSOCK;
-#else /* GRPC_HAVE_LINUX_VSOCK */
+#else /* GRPC_HAVE_VSOCK */
return 0;
-#endif /* GRPC_HAVE_LINUX_VSOCK */
+#endif /* GRPC_HAVE_VSOCK */
}
void grpc_unlink_if_unix_domain_socket(
diff --git a/test/core/address_utils/parse_address_test.cc b/test/core/address_utils/parse_address_test.cc
index 1a2d8f0f7b..ef125bd8d7 100644
--- a/test/core/address_utils/parse_address_test.cc
+++ b/test/core/address_utils/parse_address_test.cc
@@ -80,7 +80,7 @@ static void test_grpc_parse_unix_abstract(const char* uri_text,
#endif /* GRPC_HAVE_UNIX_SOCKET */
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
static void test_grpc_parse_vsock(const char* uri_text, uint32_t cid,
uint32_t port) {
@@ -100,11 +100,11 @@ static void test_grpc_parse_vsock(const char* uri_text, uint32_t cid,
ASSERT_EQ(addr_vm->svm_port, port);
}
-#else // GRPC_HAVE_LINUX_VSOCK
+#else // GRPC_HAVE_VSOCK
static void test_grpc_parse_vsock(const char* /* uri_text */, ...) {}
-#endif // GRPC_HAVE_LINUX_VSOCK
+#endif // GRPC_HAVE_VSOCK
static void test_grpc_parse_ipv4(const char* uri_text, const char* host,
unsigned short port) {
diff --git a/test/core/address_utils/sockaddr_utils_test.cc b/test/core/address_utils/sockaddr_utils_test.cc
index c5d613632b..c538ee8674 100644
--- a/test/core/address_utils/sockaddr_utils_test.cc
+++ b/test/core/address_utils/sockaddr_utils_test.cc
@@ -265,7 +265,7 @@ TEST(SockAddrUtilsTest, SockAddrToString) {
absl::InvalidArgumentError("empty UDS abstract path"));
#endif
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
grpc_resolved_address inputvm;
ASSERT_EQ(grpc_core::VSockaddrPopulate("-1:12345", &inputvm),
absl::OkStatus());
@@ -295,7 +295,7 @@ TEST(SockAddrUtilsTest, UnixSockAddrToUri) {
#endif /* GRPC_HAVE_UNIX_SOCKET */
-#ifdef GRPC_HAVE_LINUX_VSOCK
+#ifdef GRPC_HAVE_VSOCK
TEST(SockAddrUtilsTest, VSockAddrToUri) {
grpc_resolved_address addr;
@@ -305,7 +305,7 @@ TEST(SockAddrUtilsTest, VSockAddrToUri) {
absl::StrCat("vsock:", (uint32_t)-1, ":12345"));
}
-#endif // GRPC_HAVE_LINUX_VSOCK
+#endif // GRPC_HAVE_VSOCK
TEST(SockAddrUtilsTest, SockAddrSetGetPort) {
grpc_resolved_address input4 = MakeAddr4(kIPv4, sizeof(kIPv4));
diff --git a/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc b/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc
index 5a021c1bfa..2a38c90a22 100644
--- a/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc
+++ b/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc
@@ -28,6 +28,7 @@
#include <grpc/grpc.h>
#include "src/core/lib/iomgr/port.h"
+#include "src/core/lib/iomgr/sockaddr.h"
// IWYU pragma: no_include <arpa/inet.h>
@@ -406,7 +407,7 @@ TEST(TcpPosixSocketUtilsTest, SockAddrToStringTest) {
#ifdef GRPC_HAVE_VSOCK
EventEngine::ResolvedAddress inputvm = *VSockaddrPopulate("-1:12345");
- EXPECT_EQ(ResolvedAddressToNormalizedString(inputvm).value(),
+ EXPECT_EQ(SockaddrToString(&inputvm, true).value(),
absl::StrCat((uint32_t)-1, ":12345"));
#endif
}