From: Zhang Chen <zhangchen.fnst@cn.fujitsu.com>
To: Xen devel <xen-devel@lists.xenproject.org>,
Wei Liu <wei.liu2@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: Yang Hongyang <imhy.yang@gmail.com>,
Bian Naimeng <biannm@cn.fujitsu.com>,
eddie <eddie.dong@intel.com>,
Li Zhijian <lizhijian@cn.fujitsu.com>,
Zhang Chen <zhangchen.fnst@cn.fujitsu.com>
Subject: [PATCH RFC V2 6/7] COLO-Proxy: Add secondary userspace colo-proxy start args
Date: Wed, 15 Feb 2017 17:54:32 +0800 [thread overview]
Message-ID: <1487152473-3693-7-git-send-email-zhangchen.fnst@cn.fujitsu.com> (raw)
In-Reply-To: <1487152473-3693-1-git-send-email-zhangchen.fnst@cn.fujitsu.com>
Qemu need this args to start userspace colo-proxy.
Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com>
---
tools/libxl/libxl_dm.c | 34 ++++++++++++++++++++++++++++++++++
tools/libxl/libxl_nic.c | 27 +++++++++++++++++++++++++++
tools/libxl/libxl_types.idl | 15 ++++++++++++++-
tools/libxl/xl_cmdimpl.c | 27 +++++++++++++++++++++++++++
4 files changed, 102 insertions(+), 1 deletion(-)
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
index abd4edd..0fabd64 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -1274,6 +1274,40 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
if (state->saved_state) {
/* secondary colo run */
+
+ APPEND_COLO_SOCK_CLIENT(sock_sec_redirector0_id,
+ sock_sec_redirector0_ip,
+ sock_sec_redirector0_port);
+
+ APPEND_COLO_SOCK_CLIENT(sock_sec_redirector1_id,
+ sock_sec_redirector1_ip,
+ sock_sec_redirector1_port);
+
+ if (nics[i].colo_filter_sec_redirector0_queue &&
+ nics[i].colo_filter_sec_redirector0_indev) {
+ flexarray_append(dm_args, "-object");
+ flexarray_append(dm_args,
+ GCSPRINTF("filter-redirector,id=rs1,netdev=net%d,queue=%s,indev=%s",
+ nics[i].devid,
+ nics[i].colo_filter_sec_redirector0_queue,
+ nics[i].colo_filter_sec_redirector0_indev));
+ }
+ if (nics[i].colo_filter_sec_redirector1_queue &&
+ nics[i].colo_filter_sec_redirector1_indev) {
+ flexarray_append(dm_args, "-object");
+ flexarray_append(dm_args,
+ GCSPRINTF("filter-redirector,id=rs2,netdev=net%d,queue=%s,outdev=%s",
+ nics[i].devid,
+ nics[i].colo_filter_sec_redirector1_queue,
+ nics[i].colo_filter_sec_redirector1_outdev));
+ }
+ if (nics[i].colo_filter_sec_rewriter0_queue) {
+ flexarray_append(dm_args, "-object");
+ flexarray_append(dm_args,
+ GCSPRINTF("filter-rewriter,id=rs3,netdev=net%d,queue=%s",
+ nics[i].devid,
+ nics[i].colo_filter_sec_rewriter0_queue));
+ }
} else {
/* primary colo run */
diff --git a/tools/libxl/libxl_nic.c b/tools/libxl/libxl_nic.c
index 7c57bcf..5e1fecd 100644
--- a/tools/libxl/libxl_nic.c
+++ b/tools/libxl/libxl_nic.c
@@ -233,6 +233,20 @@ static void libxl__device_nic_add(libxl__egc *egc, uint32_t domid,
MAYBE_ADD_COLO_ARGS(compare_sec_in);
MAYBE_ADD_COLO_ARGS(compare_out);
+ MAYBE_ADD_COLO_ARGS(sock_sec_redirector0_id);
+ MAYBE_ADD_COLO_ARGS(sock_sec_redirector0_ip);
+ MAYBE_ADD_COLO_ARGS(sock_sec_redirector0_port);
+ MAYBE_ADD_COLO_ARGS(sock_sec_redirector1_id);
+ MAYBE_ADD_COLO_ARGS(sock_sec_redirector1_ip);
+ MAYBE_ADD_COLO_ARGS(sock_sec_redirector1_port);
+ MAYBE_ADD_COLO_ARGS(filter_sec_redirector0_queue);
+ MAYBE_ADD_COLO_ARGS(filter_sec_redirector0_indev);
+ MAYBE_ADD_COLO_ARGS(filter_sec_redirector0_outdev);
+ MAYBE_ADD_COLO_ARGS(filter_sec_redirector1_queue);
+ MAYBE_ADD_COLO_ARGS(filter_sec_redirector1_indev);
+ MAYBE_ADD_COLO_ARGS(filter_sec_redirector1_outdev);
+ MAYBE_ADD_COLO_ARGS(filter_sec_rewriter0_queue);
+
#undef MAYBE_ADD_COLO_ARGS
flexarray_append(back, "mac");
@@ -424,6 +438,19 @@ static int libxl__device_nic_from_xenstore(libxl__gc *gc,
CHECK_COLO_ARGS(compare_pri_in);
CHECK_COLO_ARGS(compare_sec_in);
CHECK_COLO_ARGS(compare_out);
+ CHECK_COLO_ARGS(sock_sec_redirector0_id);
+ CHECK_COLO_ARGS(sock_sec_redirector0_ip);
+ CHECK_COLO_ARGS(sock_sec_redirector0_port);
+ CHECK_COLO_ARGS(sock_sec_redirector1_id);
+ CHECK_COLO_ARGS(sock_sec_redirector1_ip);
+ CHECK_COLO_ARGS(sock_sec_redirector1_port);
+ CHECK_COLO_ARGS(filter_sec_redirector0_queue);
+ CHECK_COLO_ARGS(filter_sec_redirector0_indev);
+ CHECK_COLO_ARGS(filter_sec_redirector0_outdev);
+ CHECK_COLO_ARGS(filter_sec_redirector1_queue);
+ CHECK_COLO_ARGS(filter_sec_redirector1_indev);
+ CHECK_COLO_ARGS(filter_sec_redirector1_outdev);
+ CHECK_COLO_ARGS(filter_sec_rewriter0_queue);
#undef CHECK_COLO_ARGS
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index 07ce345..47e96b1 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -658,7 +658,20 @@ libxl_device_nic = Struct("device_nic", [
("colo_filter_redirector1_outdev", string),
("colo_compare_pri_in", string),
("colo_compare_sec_in", string),
- ("colo_compare_out", string)
+ ("colo_compare_out", string),
+ ("colo_sock_sec_redirector0_id", string),
+ ("colo_sock_sec_redirector0_ip", string),
+ ("colo_sock_sec_redirector0_port", string),
+ ("colo_sock_sec_redirector1_id", string),
+ ("colo_sock_sec_redirector1_ip", string),
+ ("colo_sock_sec_redirector1_port", string),
+ ("colo_filter_sec_redirector0_queue", string),
+ ("colo_filter_sec_redirector0_indev", string),
+ ("colo_filter_sec_redirector0_outdev", string),
+ ("colo_filter_sec_redirector1_queue", string),
+ ("colo_filter_sec_redirector1_indev", string),
+ ("colo_filter_sec_redirector1_outdev", string),
+ ("colo_filter_sec_rewriter0_queue", string)
])
libxl_device_pci = Struct("device_pci", [
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index e6cb015..32a47f6 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -1118,6 +1118,33 @@ static int parse_nic_config(libxl_device_nic *nic, XLU_Config **config, char *to
replace_string(&nic->colo_compare_sec_in, oparg);
} else if (MATCH_OPTION("colo_compare_out", token, oparg)) {
replace_string(&nic->colo_compare_out, oparg);
+
+ } else if (MATCH_OPTION("colo_sock_sec_redirector0_id", token, oparg)) {
+ replace_string(&nic->colo_sock_sec_redirector0_id, oparg);
+ } else if (MATCH_OPTION("colo_sock_sec_redirector0_ip", token, oparg)) {
+ replace_string(&nic->colo_sock_sec_redirector0_ip, oparg);
+ } else if (MATCH_OPTION("colo_sock_sec_redirector0_port", token, oparg)) {
+ replace_string(&nic->colo_sock_sec_redirector0_port, oparg);
+ } else if (MATCH_OPTION("colo_sock_sec_redirector1_id", token, oparg)) {
+ replace_string(&nic->colo_sock_sec_redirector1_id, oparg);
+ } else if (MATCH_OPTION("colo_sock_sec_redirector1_ip", token, oparg)) {
+ replace_string(&nic->colo_sock_sec_redirector1_ip, oparg);
+ } else if (MATCH_OPTION("colo_sock_sec_redirector1_port", token, oparg)) {
+ replace_string(&nic->colo_sock_sec_redirector1_port, oparg);
+ } else if (MATCH_OPTION("colo_filter_sec_redirector0_queue", token, oparg)) {
+ replace_string(&nic->colo_filter_sec_redirector0_queue, oparg);
+ } else if (MATCH_OPTION("colo_filter_sec_redirector0_indev", token, oparg)) {
+ replace_string(&nic->colo_filter_sec_redirector0_indev, oparg);
+ } else if (MATCH_OPTION("colo_filter_sec_redirector0_outdev", token, oparg)) {
+ replace_string(&nic->colo_filter_sec_redirector0_outdev, oparg);
+ } else if (MATCH_OPTION("colo_filter_sec_redirector1_queue", token, oparg)) {
+ replace_string(&nic->colo_filter_sec_redirector1_queue, oparg);
+ } else if (MATCH_OPTION("colo_filter_sec_redirector1_indev", token, oparg)) {
+ replace_string(&nic->colo_filter_sec_redirector1_indev, oparg);
+ } else if (MATCH_OPTION("colo_filter_sec_redirector1_outdev", token, oparg)) {
+ replace_string(&nic->colo_filter_sec_redirector1_outdev, oparg);
+ } else if (MATCH_OPTION("colo_filter_sec_rewriter0_queue", token, oparg)) {
+ replace_string(&nic->colo_filter_sec_rewriter0_queue, oparg);
} else if (MATCH_OPTION("accel", token, oparg)) {
fprintf(stderr, "the accel parameter for vifs is currently not supported\n");
} else {
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-02-15 9:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-15 9:54 [PATCH RFC V2 0/7] COLO-Proxy: Make Xen COLO use userspace colo-proxy Zhang Chen
2017-02-15 9:54 ` [PATCH RFC V2 1/7] COLO-Proxy: Add remus command to open userspace proxy Zhang Chen
2017-02-15 9:54 ` [PATCH RFC V2 2/7] COLO-Proxy: Setup userspace colo-proxy on primary side Zhang Chen
2017-02-15 9:54 ` [PATCH RFC V2 3/7] tools/libxl: refactor do_domain_create() Zhang Chen
2017-02-15 9:54 ` [PATCH RFC V2 4/7] COLO-Proxy: Setup userspace colo-proxy on secondary side Zhang Chen
2017-02-15 9:54 ` [PATCH RFC V2 5/7] COLO-Proxy: Add primary userspace colo proxy start args Zhang Chen
2017-02-15 9:54 ` Zhang Chen [this message]
2017-02-15 9:54 ` [PATCH RFC V2 7/7] COLO-Proxy: Use socket to get checkpoint event Zhang Chen
2017-02-15 16:24 ` Konrad Rzeszutek Wilk
2017-02-16 1:48 ` Zhang Chen
2017-02-15 16:18 ` [PATCH RFC V2 0/7] COLO-Proxy: Make Xen COLO use userspace colo-proxy Konrad Rzeszutek Wilk
2017-02-16 1:36 ` Zhang Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1487152473-3693-7-git-send-email-zhangchen.fnst@cn.fujitsu.com \
--to=zhangchen.fnst@cn.fujitsu.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=biannm@cn.fujitsu.com \
--cc=eddie.dong@intel.com \
--cc=imhy.yang@gmail.com \
--cc=lizhijian@cn.fujitsu.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).