Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pass server->client command over a separate socket pair #762

Merged
merged 15 commits into from
Sep 15, 2023

Commits on Aug 15, 2023

  1. Use separate socket for server->client commands

    This change adds support for a separate socket to carry commands in the
    server-to-client direction. It has proven problematic to send commands
    in both directions over a single socket, since matching replies to
    commands can become non-trivial when both sides send commands at the same
    time and adds significant complexity. See issue nutanix#279 for details.
    
    To set up the reverse communication channel, the client indicates
    support for it via a new capability flag in the version message. The
    server will then create a fresh pair of sockets and pass one end to the
    client in its version reply. When the server wishes to send commands to
    the client at a later point, it now uses its end of the new socket pair
    rather than the main socket. Corresponding replies are also passed back
    over the new socket pair.
    
    Signed-off-by: Mattias Nissler <mnissler@rivosinc.com>
    mnissler-rivos committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    fe1d614 View commit details
    Browse the repository at this point in the history
  2. Introduce Client class in python tests

    Many tests have a `sock` global holding the client socket. In order to
    allow additional client context to be managed, introduce a Client class
    and replace the `sock` global with `client` global object.
    
    Signed-off-by: Mattias Nissler <mnissler@rivosinc.com>
    mnissler-rivos committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    4025f6e View commit details
    Browse the repository at this point in the history
  3. Add pytest for vfu_sgl_{read,write}

    The new tests verify behavior of vfu_sgl_{read,write} for success and
    error cases.
    
    Signed-off-by: Mattias Nissler <mnissler@rivosinc.com>
    mnissler-rivos committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    c01b7fe View commit details
    Browse the repository at this point in the history
  4. Describe socket separation in protocol specification

    Include rationale and operation of separate server-to-client command
    channel in the protocol description and indicate which commands should
    be processed on the separate socket.
    
    Signed-off-by: Mattias Nissler <mnissler@rivosinc.com>
    mnissler-rivos committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    7eb0082 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. Configuration menu
    Copy the full SHA
    ee1de6f View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2023

  1. Configuration menu
    Copy the full SHA
    6cae619 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2023

  1. Merge origin/master

    mnissler-rivos committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    864c8cd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    54b70e1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    654829e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cc2551e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3f3d8d5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ce3218e View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2023

  1. Configuration menu
    Copy the full SHA
    beb8d78 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4d56e0b View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2023

  1. Configuration menu
    Copy the full SHA
    0860735 View commit details
    Browse the repository at this point in the history