Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1320299
| From | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH V2 08/13] Drivers: hv: vmbus: define a new VMBus message type for hvsock |
| Date | 2016-01-28 06:00 +0100 |
| Message-ID | <qVMQA-6q1-31@gated-at.bofh.it> (permalink) |
| References | <qVMQy-6q1-3@gated-at.bofh.it> <qVMQy-6q1-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Dexuan Cui <decui@microsoft.com>
A function to send the type of message is also added.
The coming net/hvsock driver will use this function to proactively request
the host to offer a VMBus channel for a new hvsock connection.
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
drivers/hv/channel.c | 15 +++++++++++++++
drivers/hv/channel_mgmt.c | 4 ++++
include/linux/hyperv.h | 13 +++++++++++++
3 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
index 3f04533..fcab234 100644
--- a/drivers/hv/channel.c
+++ b/drivers/hv/channel.c
@@ -219,6 +219,21 @@ error0:
}
EXPORT_SYMBOL_GPL(vmbus_open);
+/* Used for Hyper-V Socket: a guest client's connect() to the host */
+int vmbus_send_tl_connect_request(const uuid_le *shv_guest_servie_id,
+ const uuid_le *shv_host_servie_id)
+{
+ struct vmbus_channel_tl_connect_request conn_msg;
+
+ memset(&conn_msg, 0, sizeof(conn_msg));
+ conn_msg.header.msgtype = CHANNELMSG_TL_CONNECT_REQUEST;
+ conn_msg.guest_endpoint_id = *shv_guest_servie_id;
+ conn_msg.host_service_id = *shv_host_servie_id;
+
+ return vmbus_post_msg(&conn_msg, sizeof(conn_msg));
+}
+EXPORT_SYMBOL_GPL(vmbus_send_tl_connect_request);
+
/*
* create_gpadl_header - Creates a gpadl for the specified buffer
*/
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
index d6c6114..60ca25b 100644
--- a/drivers/hv/channel_mgmt.c
+++ b/drivers/hv/channel_mgmt.c
@@ -958,6 +958,10 @@ struct vmbus_channel_message_table_entry
{CHANNELMSG_VERSION_RESPONSE, 1, vmbus_onversion_response},
{CHANNELMSG_UNLOAD, 0, NULL},
{CHANNELMSG_UNLOAD_RESPONSE, 1, vmbus_unload_response},
+ {CHANNELMSG_18, 0, NULL},
+ {CHANNELMSG_19, 0, NULL},
+ {CHANNELMSG_20, 0, NULL},
+ {CHANNELMSG_TL_CONNECT_REQUEST, 0, NULL},
};
/*
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 79c4aa7..898eac9 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -392,6 +392,10 @@ enum vmbus_channel_message_type {
CHANNELMSG_VERSION_RESPONSE = 15,
CHANNELMSG_UNLOAD = 16,
CHANNELMSG_UNLOAD_RESPONSE = 17,
+ CHANNELMSG_18 = 18,
+ CHANNELMSG_19 = 19,
+ CHANNELMSG_20 = 20,
+ CHANNELMSG_TL_CONNECT_REQUEST = 21,
CHANNELMSG_COUNT
};
@@ -562,6 +566,13 @@ struct vmbus_channel_initiate_contact {
u64 monitor_page2;
} __packed;
+/* Hyper-V socket: guest's connect()-ing to host */
+struct vmbus_channel_tl_connect_request {
+ struct vmbus_channel_message_header header;
+ uuid_le guest_endpoint_id;
+ uuid_le host_service_id;
+} __packed;
+
struct vmbus_channel_version_response {
struct vmbus_channel_message_header header;
u8 version_supported;
@@ -1283,4 +1294,6 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid);
extern __u32 vmbus_proto_version;
+int vmbus_send_tl_connect_request(const uuid_le *shv_guest_servie_id,
+ const uuid_le *shv_host_servie_id);
#endif /* _HYPERV_H */
--
1.7.4.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH V2 01/13] tools/hv: Use include/uapi with __EXPORTED_HEADERS__ "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
[PATCH V2 12/13] Drivers: hv: vmbus: Eliminate the spin lock on the read path "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
[PATCH V2 05/13] Drivers: hv: vmbus: add a helper function to set a channel's pending send size "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
[PATCH V2 06/13] Drivers: hv: vmbus: define the new offer type for Hyper-V socket (hvsock) "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
Re: [PATCH V2 06/13] Drivers: hv: vmbus: define the new offer type for Hyper-V socket (hvsock) Greg KH <gregkh@linuxfoundation.org> - 2016-02-08 06:40 +0100
[PATCH V2 11/13] Drivers: hv: vmbus: add an API vmbus_hvsock_device_unregister() "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
[PATCH V2 08/13] Drivers: hv: vmbus: define a new VMBus message type for hvsock "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
[PATCH V2 13/13] Drivers: hv: vmbus: Give control over how the ring access is serialized "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
[PATCH V2 02/13] Drivers: hv: vmbus: avoid infinite loop in init_vp_index() "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
[PATCH V2 10/13] Drivers: hv: vmbus: add a per-channel rescind callback "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-28 06:00 +0100
csiph-web