[libvirt] [PATCH v2 20/38] Introduce VIR_NET_STREAM_SKIP message type

John Ferlan jferlan at redhat.com
Thu May 4 22:17:23 UTC 2017



On 04/20/2017 06:01 AM, Michal Privoznik wrote:
> This is a special type of stream packet, that is bidirectional
> and will contain information on how much bytes are both sides

"...how many bytes both sides are..."

> skipping in the stream.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  daemon/stream.c            |  3 ++-
>  src/rpc/virnetclient.c     |  1 +
>  src/rpc/virnetprotocol.x   | 12 +++++++++++-
>  src/virnetprotocol-structs |  1 +
>  4 files changed, 15 insertions(+), 2 deletions(-)
> 

yet again another area which I'm not very conversant, but I'll provide
some feedback...

> diff --git a/daemon/stream.c b/daemon/stream.c
> index 624a626..6899c18 100644
> --- a/daemon/stream.c
> +++ b/daemon/stream.c
> @@ -287,7 +287,8 @@ daemonStreamFilter(virNetServerClientPtr client ATTRIBUTE_UNUSED,
>  
>      virMutexLock(&stream->priv->lock);
>  
> -    if (msg->header.type != VIR_NET_STREAM)
> +    if (msg->header.type != VIR_NET_STREAM &&
> +        msg->header.type != VIR_NET_STREAM_SKIP)
>          goto cleanup;
>  
>      if (!virNetServerProgramMatches(stream->prog, msg))
> diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c
> index c959747..6cff3c4 100644
> --- a/src/rpc/virnetclient.c
> +++ b/src/rpc/virnetclient.c
> @@ -1284,6 +1284,7 @@ virNetClientCallDispatch(virNetClientPtr client)
>          return virNetClientCallDispatchMessage(client);
>  
>      case VIR_NET_STREAM: /* Stream protocol */
> +    case VIR_NET_STREAM_SKIP: /* Stream skip protocol */

"sparse stream protocol"?  or  "Stream skip size protocol"??

>          return virNetClientCallDispatchStream(client);
>  
>      default:
> diff --git a/src/rpc/virnetprotocol.x b/src/rpc/virnetprotocol.x
> index 3623588..3530694 100644
> --- a/src/rpc/virnetprotocol.x
> +++ b/src/rpc/virnetprotocol.x
> @@ -143,6 +143,14 @@ const VIR_NET_MESSAGE_NUM_FDS_MAX = 32;
>   *     * status == VIR_NET_ERROR
>   *          remote_error    Error information
>   *
> + *  - type == VIR_NET_STREAM_SKIP
> + *     * status == VIR_NET_CONTINUE
> + *          byte[]  skip data
> + *     * status == VIR_NET_ERROR
> + *          remote_error error information
> + *     * status == VIR_NET_OK
> + *          <empty>
> + *
>   */
>  enum virNetMessageType {
>      /* client -> server. args from a method call */
> @@ -156,7 +164,9 @@ enum virNetMessageType {
>      /* client -> server. args from a method call, with passed FDs */
>      VIR_NET_CALL_WITH_FDS = 4,
>      /* server -> client. reply/error from a method call, with passed FDs */
> -    VIR_NET_REPLY_WITH_FDS = 5
> +    VIR_NET_REPLY_WITH_FDS = 5,
> +    /* either direction, stream skip data packet */

"stream skip size packet" ??

Another weak ACK,

John

[NB: going to stop here for now. I did peek ahead a few patches... let's
see how/if the other reviews effect subsequent patches]

> +    VIR_NET_STREAM_SKIP = 6
>  };
>  
>  enum virNetMessageStatus {
> diff --git a/src/virnetprotocol-structs b/src/virnetprotocol-structs
> index a8cc603..c31683f 100644
> --- a/src/virnetprotocol-structs
> +++ b/src/virnetprotocol-structs
> @@ -6,6 +6,7 @@ enum virNetMessageType {
>          VIR_NET_STREAM = 3,
>          VIR_NET_CALL_WITH_FDS = 4,
>          VIR_NET_REPLY_WITH_FDS = 5,
> +        VIR_NET_STREAM_SKIP = 6,
>  };
>  enum virNetMessageStatus {
>          VIR_NET_OK = 0,
> 




More information about the libvir-list mailing list