Skip to content
This repository was archived by the owner on Aug 19, 2025. It is now read-only.

Commit 3113906

Browse files
YadongQisysopenci
authored andcommitted
Update vsock patch for gRPC
Clear resolved_addr before using in VSockaddrPopulate(). Tracked-On: OAM-103802 Signed-off-by: Yadong Qi <yadong.qi@intel.com>
1 parent 55436f8 commit 3113906

1 file changed

Lines changed: 50 additions & 49 deletions

File tree

src/external/patches/grpc/0001-support-vsock_v1.46.2.patch

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From 551395b8bdc8b986621ec4f33424c7588eab488d Mon Sep 17 00:00:00 2001
1+
From 4398fd93c605216e1f63a07adbaaa07a2fabca59 Mon Sep 17 00:00:00 2001
22
From: "Qi, Yadong" <yadong.qi@intel.com>
33
Date: Wed, 14 Jul 2021 02:20:36 +0000
44
Subject: [PATCH 1/2] support vsock
@@ -7,34 +7,34 @@ Support Virtio-VSOCK
77

88
Signed-off-by: Qi, Yadong <yadong.qi@intel.com>
99
---
10-
BUILD | 2 +
11-
CMakeLists.txt | 2 +
12-
Makefile | 2 +
13-
config.m4 | 1 +
14-
gRPC-Core.podspec | 2 +
15-
grpc.gemspec | 2 +
16-
package.xml | 2 +
17-
.../ext/filters/client_channel/http_proxy.cc | 5 +
18-
.../resolver/sockaddr/README.md | 2 +-
19-
.../resolver/sockaddr/sockaddr_resolver.cc | 24 +++++
20-
.../transport/chttp2/server/chttp2_server.cc | 4 +
21-
src/core/lib/address_utils/parse_address.cc | 99 +++++++++++++++++++
22-
src/core/lib/address_utils/parse_address.h | 8 ++
23-
src/core/lib/address_utils/sockaddr_utils.cc | 32 ++++++
24-
src/core/lib/iomgr/port.h | 2 +
25-
src/core/lib/iomgr/sockaddr_posix.h | 1 +
26-
src/core/lib/iomgr/sockaddr_windows.h | 1 +
27-
src/core/lib/iomgr/tcp_client_posix.cc | 3 +-
28-
.../iomgr/tcp_server_utils_posix_common.cc | 5 +-
29-
src/core/lib/iomgr/vsock.cc | 74 ++++++++++++++
30-
src/core/lib/iomgr/vsock.h | 40 ++++++++
31-
src/python/grpcio/grpc_core_dependencies.py | 1 +
32-
22 files changed, 310 insertions(+), 4 deletions(-)
10+
BUILD | 2 +
11+
CMakeLists.txt | 2 +
12+
Makefile | 2 +
13+
config.m4 | 1 +
14+
gRPC-Core.podspec | 2 +
15+
grpc.gemspec | 2 +
16+
package.xml | 2 +
17+
.../ext/filters/client_channel/http_proxy.cc | 5 +
18+
.../resolver/sockaddr/README.md | 2 +-
19+
.../resolver/sockaddr/sockaddr_resolver.cc | 24 +++++
20+
.../transport/chttp2/server/chttp2_server.cc | 4 +
21+
src/core/lib/address_utils/parse_address.cc | 100 ++++++++++++++++++
22+
src/core/lib/address_utils/parse_address.h | 8 ++
23+
src/core/lib/address_utils/sockaddr_utils.cc | 32 ++++++
24+
src/core/lib/iomgr/port.h | 2 +
25+
src/core/lib/iomgr/sockaddr_posix.h | 1 +
26+
src/core/lib/iomgr/sockaddr_windows.h | 1 +
27+
src/core/lib/iomgr/tcp_client_posix.cc | 3 +-
28+
.../iomgr/tcp_server_utils_posix_common.cc | 5 +-
29+
src/core/lib/iomgr/vsock.cc | 74 +++++++++++++
30+
src/core/lib/iomgr/vsock.h | 40 +++++++
31+
src/python/grpcio/grpc_core_dependencies.py | 1 +
32+
22 files changed, 311 insertions(+), 4 deletions(-)
3333
create mode 100644 src/core/lib/iomgr/vsock.cc
3434
create mode 100644 src/core/lib/iomgr/vsock.h
3535

3636
diff --git a/BUILD b/BUILD
37-
index c54777bd9f..f3ea6e192c 100644
37+
index c54777bd9..f3ea6e192 100644
3838
--- a/BUILD
3939
+++ b/BUILD
4040
@@ -1958,6 +1958,7 @@ grpc_cc_library(
@@ -54,7 +54,7 @@ index c54777bd9f..f3ea6e192c 100644
5454
"src/core/lib/iomgr/wakeup_fd_posix.h",
5555
"src/core/lib/iomgr/work_serializer.h",
5656
diff --git a/CMakeLists.txt b/CMakeLists.txt
57-
index 5291379eb3..0f8fbeaef7 100644
57+
index 5291379eb..0f8fbeaef 100644
5858
--- a/CMakeLists.txt
5959
+++ b/CMakeLists.txt
6060
@@ -1952,6 +1952,7 @@ add_library(grpc
@@ -74,7 +74,7 @@ index 5291379eb3..0f8fbeaef7 100644
7474
src/core/lib/iomgr/wakeup_fd_nospecial.cc
7575
src/core/lib/iomgr/wakeup_fd_pipe.cc
7676
diff --git a/Makefile b/Makefile
77-
index 72522e048c..7d52fad293 100644
77+
index 72522e048..7d52fad29 100644
7878
--- a/Makefile
7979
+++ b/Makefile
8080
@@ -1534,6 +1534,7 @@ LIBGRPC_SRC = \
@@ -94,7 +94,7 @@ index 72522e048c..7d52fad293 100644
9494
src/core/lib/iomgr/wakeup_fd_nospecial.cc \
9595
src/core/lib/iomgr/wakeup_fd_pipe.cc \
9696
diff --git a/config.m4 b/config.m4
97-
index 51c50bfe57..81d65889ba 100644
97+
index 51c50bfe5..81d65889b 100644
9898
--- a/config.m4
9999
+++ b/config.m4
100100
@@ -594,6 +594,7 @@ if test "$PHP_GRPC" != "no"; then
@@ -106,7 +106,7 @@ index 51c50bfe57..81d65889ba 100644
106106
src/core/lib/iomgr/wakeup_fd_nospecial.cc \
107107
src/core/lib/iomgr/wakeup_fd_pipe.cc \
108108
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
109-
index 382a0d79a6..c081bec0c4 100644
109+
index 382a0d79a..c081bec0c 100644
110110
--- a/gRPC-Core.podspec
111111
+++ b/gRPC-Core.podspec
112112
@@ -1271,6 +1271,7 @@ Pod::Spec.new do |s|
@@ -126,7 +126,7 @@ index 382a0d79a6..c081bec0c4 100644
126126
'src/core/lib/iomgr/wakeup_fd_posix.h',
127127
'src/core/lib/iomgr/work_serializer.h',
128128
diff --git a/grpc.gemspec b/grpc.gemspec
129-
index 16a06e6024..88a6a73302 100644
129+
index 16a06e602..88a6a7330 100644
130130
--- a/grpc.gemspec
131131
+++ b/grpc.gemspec
132132
@@ -1188,6 +1188,8 @@ Gem::Specification.new do |s|
@@ -139,7 +139,7 @@ index 16a06e6024..88a6a73302 100644
139139
s.files += %w( src/core/lib/iomgr/wakeup_fd_nospecial.cc )
140140
s.files += %w( src/core/lib/iomgr/wakeup_fd_pipe.cc )
141141
diff --git a/package.xml b/package.xml
142-
index d044500cf8..1b4b1820cd 100644
142+
index d044500cf..1b4b1820c 100644
143143
--- a/package.xml
144144
+++ b/package.xml
145145
@@ -1170,6 +1170,8 @@
@@ -152,7 +152,7 @@ index d044500cf8..1b4b1820cd 100644
152152
<file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_nospecial.cc" role="src" />
153153
<file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_pipe.cc" role="src" />
154154
diff --git a/src/core/ext/filters/client_channel/http_proxy.cc b/src/core/ext/filters/client_channel/http_proxy.cc
155-
index 72acea58a8..8b9603cf25 100644
155+
index 72acea58a..8b9603cf2 100644
156156
--- a/src/core/ext/filters/client_channel/http_proxy.cc
157157
+++ b/src/core/ext/filters/client_channel/http_proxy.cc
158158
@@ -151,6 +151,11 @@ bool HttpProxyMapper::MapName(const char* server_uri,
@@ -168,14 +168,14 @@ index 72acea58a8..8b9603cf25 100644
168168
auto no_proxy_str = UniquePtr<char>(gpr_getenv("no_grpc_proxy"));
169169
if (no_proxy_str == nullptr) {
170170
diff --git a/src/core/ext/filters/client_channel/resolver/sockaddr/README.md b/src/core/ext/filters/client_channel/resolver/sockaddr/README.md
171-
index e307ba88f5..210ffdf3ad 100644
171+
index e307ba88f..210ffdf3a 100644
172172
--- a/src/core/ext/filters/client_channel/resolver/sockaddr/README.md
173173
+++ b/src/core/ext/filters/client_channel/resolver/sockaddr/README.md
174174
@@ -1 +1 @@
175175
-Support for resolving ipv4:, ipv6:, unix: schemes
176176
+Support for resolving ipv4:, ipv6:, unix:, vsock: schemes
177177
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
178-
index d893f2d5f6..3206f83e8f 100644
178+
index d893f2d5f..3206f83e8 100644
179179
--- a/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
180180
+++ b/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
181181
@@ -178,6 +178,26 @@ class UnixAbstractResolverFactory : public ResolverFactory {
@@ -217,7 +217,7 @@ index d893f2d5f6..3206f83e8f 100644
217217

218218
} // namespace grpc_core
219219
diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.cc b/src/core/ext/transport/chttp2/server/chttp2_server.cc
220-
index 12173a09c0..6a8361fbaf 100644
220+
index 12173a09c..6a8361fba 100644
221221
--- a/src/core/ext/transport/chttp2/server/chttp2_server.cc
222222
+++ b/src/core/ext/transport/chttp2/server/chttp2_server.cc
223223
@@ -51,6 +51,7 @@
@@ -246,7 +246,7 @@ index 12173a09c0..6a8361fbaf 100644
246246
resolved_or = GetDNSResolver()->ResolveNameBlocking(parsed_addr, "https");
247247
}
248248
diff --git a/src/core/lib/address_utils/parse_address.cc b/src/core/lib/address_utils/parse_address.cc
249-
index 340bab9682..b01dcf74a3 100644
249+
index 340bab968..a6977d595 100644
250250
--- a/src/core/lib/address_utils/parse_address.cc
251251
+++ b/src/core/lib/address_utils/parse_address.cc
252252
@@ -25,6 +25,10 @@
@@ -260,7 +260,7 @@ index 340bab9682..b01dcf74a3 100644
260260
#ifdef GRPC_POSIX_SOCKET
261261
#include <errno.h>
262262
#include <net/if.h>
263-
@@ -146,6 +150,98 @@ grpc_error_handle UnixAbstractSockaddrPopulate(
263+
@@ -146,6 +150,99 @@ grpc_error_handle UnixAbstractSockaddrPopulate(
264264
} // namespace grpc_core
265265
#endif /* GRPC_HAVE_UNIX_SOCKET */
266266

@@ -287,6 +287,7 @@ index 340bab9682..b01dcf74a3 100644
287287
+
288288
+grpc_error_handle VSockaddrPopulate(absl::string_view cidport,
289289
+ grpc_resolved_address* resolved_addr) {
290+
+ memset(resolved_addr, 0, sizeof(*resolved_addr));
290291
+ struct sockaddr_vm* vm =
291292
+ reinterpret_cast<struct sockaddr_vm*>(resolved_addr->addr);
292293
+
@@ -359,7 +360,7 @@ index 340bab9682..b01dcf74a3 100644
359360
bool grpc_parse_ipv4_hostport(absl::string_view hostport,
360361
grpc_resolved_address* addr, bool log_errors) {
361362
bool success = false;
362-
@@ -301,6 +397,9 @@ bool grpc_parse_uri(const grpc_core::URI& uri,
363+
@@ -301,6 +398,9 @@ bool grpc_parse_uri(const grpc_core::URI& uri,
363364
if (uri.scheme() == "unix-abstract") {
364365
return grpc_parse_unix_abstract(uri, resolved_addr);
365366
}
@@ -370,7 +371,7 @@ index 340bab9682..b01dcf74a3 100644
370371
return grpc_parse_ipv4(uri, resolved_addr);
371372
}
372373
diff --git a/src/core/lib/address_utils/parse_address.h b/src/core/lib/address_utils/parse_address.h
373-
index 4b18ed6d06..f3362eb0f8 100644
374+
index 4b18ed6d0..f3362eb0f 100644
374375
--- a/src/core/lib/address_utils/parse_address.h
375376
+++ b/src/core/lib/address_utils/parse_address.h
376377
@@ -38,6 +38,11 @@ bool grpc_parse_unix(const grpc_core::URI& uri,
@@ -396,7 +397,7 @@ index 4b18ed6d06..f3362eb0f8 100644
396397

397398
#endif /* GRPC_CORE_LIB_ADDRESS_UTILS_PARSE_ADDRESS_H */
398399
diff --git a/src/core/lib/address_utils/sockaddr_utils.cc b/src/core/lib/address_utils/sockaddr_utils.cc
399-
index ac84a14431..922d0f1401 100644
400+
index ac84a1443..922d0f140 100644
400401
--- a/src/core/lib/address_utils/sockaddr_utils.cc
401402
+++ b/src/core/lib/address_utils/sockaddr_utils.cc
402403
@@ -41,6 +41,11 @@
@@ -467,7 +468,7 @@ index ac84a14431..922d0f1401 100644
467468
default:
468469
gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port",
469470
diff --git a/src/core/lib/iomgr/port.h b/src/core/lib/iomgr/port.h
470-
index 8762791e79..8ce1c5ee6a 100644
471+
index 8762791e7..8ce1c5ee6 100644
471472
--- a/src/core/lib/iomgr/port.h
472473
+++ b/src/core/lib/iomgr/port.h
473474
@@ -36,6 +36,7 @@
@@ -487,7 +488,7 @@ index 8762791e79..8ce1c5ee6a 100644
487488
the socket option on older kernels. */
488489
#define GRPC_HAVE_TCP_INQ 1
489490
diff --git a/src/core/lib/iomgr/sockaddr_posix.h b/src/core/lib/iomgr/sockaddr_posix.h
490-
index 3cedd9082d..3b97123cc8 100644
491+
index 3cedd9082..3b97123cc 100644
491492
--- a/src/core/lib/iomgr/sockaddr_posix.h
492493
+++ b/src/core/lib/iomgr/sockaddr_posix.h
493494
@@ -45,6 +45,7 @@ typedef struct in6_addr grpc_in6_addr;
@@ -499,7 +500,7 @@ index 3cedd9082d..3b97123cc8 100644
499500
#define GRPC_AF_INET6 AF_INET6
500501

501502
diff --git a/src/core/lib/iomgr/sockaddr_windows.h b/src/core/lib/iomgr/sockaddr_windows.h
502-
index 4d637251a1..298c2e80f3 100644
503+
index 4d637251a..298c2e80f 100644
503504
--- a/src/core/lib/iomgr/sockaddr_windows.h
504505
+++ b/src/core/lib/iomgr/sockaddr_windows.h
505506
@@ -45,6 +45,7 @@ typedef struct in6_addr grpc_in6_addr;
@@ -511,7 +512,7 @@ index 4d637251a1..298c2e80f3 100644
511512
#define GRPC_AF_INET6 AF_INET6
512513

513514
diff --git a/src/core/lib/iomgr/tcp_client_posix.cc b/src/core/lib/iomgr/tcp_client_posix.cc
514-
index 92e9c70dfd..d9316d7bc7 100644
515+
index 92e9c70df..d9316d7bc 100644
515516
--- a/src/core/lib/iomgr/tcp_client_posix.cc
516517
+++ b/src/core/lib/iomgr/tcp_client_posix.cc
517518
@@ -46,6 +46,7 @@
@@ -532,7 +533,7 @@ index 92e9c70dfd..d9316d7bc7 100644
532533
if (err != GRPC_ERROR_NONE) goto error;
533534
err = grpc_set_socket_reuse_addr(fd, 1);
534535
diff --git a/src/core/lib/iomgr/tcp_server_utils_posix_common.cc b/src/core/lib/iomgr/tcp_server_utils_posix_common.cc
535-
index d0956db3ad..fc23ecf68c 100644
536+
index d0956db3a..fc23ecf68 100644
536537
--- a/src/core/lib/iomgr/tcp_server_utils_posix_common.cc
537538
+++ b/src/core/lib/iomgr/tcp_server_utils_posix_common.cc
538539
@@ -41,6 +41,7 @@
@@ -563,7 +564,7 @@ index d0956db3ad..fc23ecf68c 100644
563564
err = grpc_set_socket_reuse_addr(fd, 1);
564565
diff --git a/src/core/lib/iomgr/vsock.cc b/src/core/lib/iomgr/vsock.cc
565566
new file mode 100644
566-
index 0000000000..511e9a928c
567+
index 000000000..511e9a928
567568
--- /dev/null
568569
+++ b/src/core/lib/iomgr/vsock.cc
569570
@@ -0,0 +1,74 @@
@@ -643,7 +644,7 @@ index 0000000000..511e9a928c
643644
+#endif
644645
diff --git a/src/core/lib/iomgr/vsock.h b/src/core/lib/iomgr/vsock.h
645646
new file mode 100644
646-
index 0000000000..e89d4b9099
647+
index 000000000..e89d4b909
647648
--- /dev/null
648649
+++ b/src/core/lib/iomgr/vsock.h
649650
@@ -0,0 +1,40 @@
@@ -688,7 +689,7 @@ index 0000000000..e89d4b9099
688689
+
689690
+#endif /* GRPC_CORE_LIB_IOMGR_VSOCK_H */
690691
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
691-
index 09dffdf730..b543cd1665 100644
692+
index 09dffdf73..b543cd166 100644
692693
--- a/src/python/grpcio/grpc_core_dependencies.py
693694
+++ b/src/python/grpcio/grpc_core_dependencies.py
694695
@@ -569,6 +569,7 @@ CORE_SOURCE_FILES = [
@@ -700,5 +701,5 @@ index 09dffdf730..b543cd1665 100644
700701
'src/core/lib/iomgr/wakeup_fd_nospecial.cc',
701702
'src/core/lib/iomgr/wakeup_fd_pipe.cc',
702703
--
703-
2.25.1
704+
2.34.1
704705

0 commit comments

Comments
 (0)