Message ID | 20180811205924.4113-16-zhangckid@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | COLO: integrate colo frame with block replication and COLO proxy | expand |
On 2018年08月12日 04:59, Zhang Chen wrote: > From: Zhang Chen <chen.zhang@intel.com> > > We add is_colo_support_client_type() to check the net client type for > COLO-compare. Currently we just support TAP. > Suggested by Jason. > > Signed-off-by: Zhang Chen <zhangckid@gmail.com> > Signed-off-by: Zhang Chen <chen.zhang@intel.com> > --- This needs more works: - Forbid vhost - Deal with hotplug Looks not a must for this series, so to speed up the process, you may do it on top. Thanks > include/net/net.h | 1 + > net/colo-compare.c | 5 +++++ > net/net.c | 14 ++++++++++++++ > 3 files changed, 20 insertions(+) > > diff --git a/include/net/net.h b/include/net/net.h > index 1425960f76..dcbc7ba9c0 100644 > --- a/include/net/net.h > +++ b/include/net/net.h > @@ -212,6 +212,7 @@ void hmp_host_net_add(Monitor *mon, const QDict *qdict); > void hmp_host_net_remove(Monitor *mon, const QDict *qdict); > void netdev_add(QemuOpts *opts, Error **errp); > void qmp_netdev_add(QDict *qdict, QObject **ret, Error **errp); > +bool is_colo_support_client_type(void); > > int net_hub_id_for_client(NetClientState *nc, int *id); > NetClientState *net_hub_port_find(int hub_id); > diff --git a/net/colo-compare.c b/net/colo-compare.c > index 426eab5973..b8c0240725 100644 > --- a/net/colo-compare.c > +++ b/net/colo-compare.c > @@ -996,6 +996,11 @@ static void colo_compare_complete(UserCreatable *uc, Error **errp) > return; > } > > + if (!is_colo_support_client_type()) { > + error_setg(errp, "COLO-compare: Net client type is not supported"); > + return; > + } > + > net_socket_rs_init(&s->pri_rs, compare_pri_rs_finalize, s->vnet_hdr); > net_socket_rs_init(&s->sec_rs, compare_sec_rs_finalize, s->vnet_hdr); > > diff --git a/net/net.c b/net/net.c > index 2a3133990c..a77ea88fff 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -1733,3 +1733,17 @@ int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size) > assert(size == 0); > return 0; > } > + > +/* Currently, COLO just support TAP */ > +bool is_colo_support_client_type(void) > +{ > + NetClientState *nc; > + > + QTAILQ_FOREACH(nc, &net_clients, next) { > + if (nc->info->type != NET_CLIENT_DRIVER_TAP) { > + return false; > + } > + } > + > + return true; > +}
On Tue, Aug 21, 2018 at 11:27 AM Jason Wang <jasowang@redhat.com> wrote: > > > On 2018年08月12日 04:59, Zhang Chen wrote: > > From: Zhang Chen <chen.zhang@intel.com> > > > > We add is_colo_support_client_type() to check the net client type for > > COLO-compare. Currently we just support TAP. > > Suggested by Jason. > > > > Signed-off-by: Zhang Chen <zhangckid@gmail.com> > > Signed-off-by: Zhang Chen <chen.zhang@intel.com> > > --- > > This needs more works: > > - Forbid vhost > - Deal with hotplug > > Looks not a must for this series, so to speed up the process, you may do > it on top. > > Do you mean this patch we can stay this status currently? Thanks Zhang Chen > Thanks > > > include/net/net.h | 1 + > > net/colo-compare.c | 5 +++++ > > net/net.c | 14 ++++++++++++++ > > 3 files changed, 20 insertions(+) > > > > diff --git a/include/net/net.h b/include/net/net.h > > index 1425960f76..dcbc7ba9c0 100644 > > --- a/include/net/net.h > > +++ b/include/net/net.h > > @@ -212,6 +212,7 @@ void hmp_host_net_add(Monitor *mon, const QDict > *qdict); > > void hmp_host_net_remove(Monitor *mon, const QDict *qdict); > > void netdev_add(QemuOpts *opts, Error **errp); > > void qmp_netdev_add(QDict *qdict, QObject **ret, Error **errp); > > +bool is_colo_support_client_type(void); > > > > int net_hub_id_for_client(NetClientState *nc, int *id); > > NetClientState *net_hub_port_find(int hub_id); > > diff --git a/net/colo-compare.c b/net/colo-compare.c > > index 426eab5973..b8c0240725 100644 > > --- a/net/colo-compare.c > > +++ b/net/colo-compare.c > > @@ -996,6 +996,11 @@ static void colo_compare_complete(UserCreatable > *uc, Error **errp) > > return; > > } > > > > + if (!is_colo_support_client_type()) { > > + error_setg(errp, "COLO-compare: Net client type is not > supported"); > > + return; > > + } > > + > > net_socket_rs_init(&s->pri_rs, compare_pri_rs_finalize, > s->vnet_hdr); > > net_socket_rs_init(&s->sec_rs, compare_sec_rs_finalize, > s->vnet_hdr); > > > > diff --git a/net/net.c b/net/net.c > > index 2a3133990c..a77ea88fff 100644 > > --- a/net/net.c > > +++ b/net/net.c > > @@ -1733,3 +1733,17 @@ int net_fill_rstate(SocketReadState *rs, const > uint8_t *buf, int size) > > assert(size == 0); > > return 0; > > } > > + > > +/* Currently, COLO just support TAP */ > > +bool is_colo_support_client_type(void) > > +{ > > + NetClientState *nc; > > + > > + QTAILQ_FOREACH(nc, &net_clients, next) { > > + if (nc->info->type != NET_CLIENT_DRIVER_TAP) { > > + return false; > > + } > > + } > > + > > + return true; > > +} > >
On 2018年08月21日 17:26, Zhang Chen wrote: > > > On Tue, Aug 21, 2018 at 11:27 AM Jason Wang <jasowang@redhat.com > <mailto:jasowang@redhat.com>> wrote: > > > > On 2018年08月12日 04:59, Zhang Chen wrote: > > From: Zhang Chen <chen.zhang@intel.com > <mailto:chen.zhang@intel.com>> > > > > We add is_colo_support_client_type() to check the net client > type for > > COLO-compare. Currently we just support TAP. > > Suggested by Jason. > > > > Signed-off-by: Zhang Chen <zhangckid@gmail.com > <mailto:zhangckid@gmail.com>> > > Signed-off-by: Zhang Chen <chen.zhang@intel.com > <mailto:chen.zhang@intel.com>> > > --- > > This needs more works: > > - Forbid vhost > - Deal with hotplug > > Looks not a must for this series, so to speed up the process, you > may do > it on top. > > > Do you mean this patch we can stay this status currently? > > Thanks > Zhang Chen Sorry for being unclear, I mean we need a complete solution rather than partial one. Thanks
On Wed, Aug 22, 2018 at 4:22 PM Jason Wang <jasowang@redhat.com> wrote: > > > On 2018年08月21日 17:26, Zhang Chen wrote: > > > > > > On Tue, Aug 21, 2018 at 11:27 AM Jason Wang <jasowang@redhat.com > > <mailto:jasowang@redhat.com>> wrote: > > > > > > > > On 2018年08月12日 04:59, Zhang Chen wrote: > > > From: Zhang Chen <chen.zhang@intel.com > > <mailto:chen.zhang@intel.com>> > > > > > > We add is_colo_support_client_type() to check the net client > > type for > > > COLO-compare. Currently we just support TAP. > > > Suggested by Jason. > > > > > > Signed-off-by: Zhang Chen <zhangckid@gmail.com > > <mailto:zhangckid@gmail.com>> > > > Signed-off-by: Zhang Chen <chen.zhang@intel.com > > <mailto:chen.zhang@intel.com>> > > > --- > > > > This needs more works: > > > > - Forbid vhost > > - Deal with hotplug > > > > Looks not a must for this series, so to speed up the process, you > > may do > > it on top. > > > > > > Do you mean this patch we can stay this status currently? > > > > Thanks > > Zhang Chen > > Sorry for being unclear, I mean we need a complete solution rather than > partial one. > OK, I will remove this patch from this series, and send a complete solution in the future. Thanks Zhang Chen > > Thanks > >
diff --git a/include/net/net.h b/include/net/net.h index 1425960f76..dcbc7ba9c0 100644 --- a/include/net/net.h +++ b/include/net/net.h @@ -212,6 +212,7 @@ void hmp_host_net_add(Monitor *mon, const QDict *qdict); void hmp_host_net_remove(Monitor *mon, const QDict *qdict); void netdev_add(QemuOpts *opts, Error **errp); void qmp_netdev_add(QDict *qdict, QObject **ret, Error **errp); +bool is_colo_support_client_type(void); int net_hub_id_for_client(NetClientState *nc, int *id); NetClientState *net_hub_port_find(int hub_id); diff --git a/net/colo-compare.c b/net/colo-compare.c index 426eab5973..b8c0240725 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -996,6 +996,11 @@ static void colo_compare_complete(UserCreatable *uc, Error **errp) return; } + if (!is_colo_support_client_type()) { + error_setg(errp, "COLO-compare: Net client type is not supported"); + return; + } + net_socket_rs_init(&s->pri_rs, compare_pri_rs_finalize, s->vnet_hdr); net_socket_rs_init(&s->sec_rs, compare_sec_rs_finalize, s->vnet_hdr); diff --git a/net/net.c b/net/net.c index 2a3133990c..a77ea88fff 100644 --- a/net/net.c +++ b/net/net.c @@ -1733,3 +1733,17 @@ int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size) assert(size == 0); return 0; } + +/* Currently, COLO just support TAP */ +bool is_colo_support_client_type(void) +{ + NetClientState *nc; + + QTAILQ_FOREACH(nc, &net_clients, next) { + if (nc->info->type != NET_CLIENT_DRIVER_TAP) { + return false; + } + } + + return true; +}