1- From 551395b8bdc8b986621ec4f33424c7588eab488d Mon Sep 17 00:00:00 2001
1+ From 4398fd93c605216e1f63a07adbaaa07a2fabca59 Mon Sep 17 00:00:00 2001
22From: "Qi, Yadong" <yadong.qi@intel.com>
33Date: Wed, 14 Jul 2021 02:20:36 +0000
44Subject: [PATCH 1/2] support vsock
@@ -7,34 +7,34 @@ Support Virtio-VSOCK
77
88Signed-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
3636diff --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",
5656diff --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
7676diff --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 \
9696diff --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 \
108108diff --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',
128128diff --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 )
141141diff --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" />
154154diff --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) {
170170diff --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
177177diff --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
219219diff --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 }
248248diff --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 }
372373diff --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 */
398399diff --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",
469470diff --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
489490diff --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
501502diff --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
513514diff --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);
534535diff --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);
564565diff --git a/src/core/lib/iomgr/vsock.cc b/src/core/lib/iomgr/vsock.cc
565566new 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
644645diff --git a/src/core/lib/iomgr/vsock.h b/src/core/lib/iomgr/vsock.h
645646new 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 */
690691diff --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