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

vTPM communication and error handling refactoring #4400

Merged
merged 9 commits into from
Nov 6, 2024

Commits on Nov 4, 2024

  1. vTPM : refactor control socket communication and error handling

    This changes refactors the control socket communication and error handling
    in the vTPM (server) and KVM (client). The control socket communication
    is now handled by HTTP over UDS, and the error handling is improved,
    since the vTPM server now returns an error message when an error occurs.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    d965fa1 View commit details
    Browse the repository at this point in the history
  2. Domainmgr : refactor virtual TPM setup and termination

    Use a defer function to ensure that the virtual TPM is always terminated
    when the domain manager hits an error during the setup process or boot
    process.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    20da6cd View commit details
    Browse the repository at this point in the history
  3. vTPM : fix bug when getting launch request

    When server gets a launch request, it checks if the the requested
    instance is already running, but it only checks the internal list and
    not actually the running instances. This can lead to server thinking
    the instance is running but client fails to get the PID with error
    "failed to get pid from file ...".
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    25af0d6 View commit details
    Browse the repository at this point in the history
  4. vTPM : validate id before using it in the request

    Validate ID before using it in, it must be in form of a UUID.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    7294cce View commit details
    Browse the repository at this point in the history
  5. proc utils : rename wd kicker

    Rename wd kicker in proc utils.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    9db3b4d View commit details
    Browse the repository at this point in the history
  6. domainmgr : call vTPM asynchronously and refactor setup functions

    Refactor vTPM setup/term/teardown functions to call the vTPM server
    endpoints asynchronously, this remove the timeout guessworks and make the
    vTPM setup more reliable.
    
    Refactor vTPM setup functions to accept all watchdog related parameters
    as struct.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    18abc71 View commit details
    Browse the repository at this point in the history
  7. vTPM : more relaxed timeout

    The domainmanager calls vTPM server asynchronously, so we dont need to
    worry and set the wait time too low to return quicly to prevent a watchdog
    kill on pillar.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    bd856c7 View commit details
    Browse the repository at this point in the history
  8. add vtpm vendor directory to .spdxignore

    Add vtpm vendor directory to .spdxignore.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    5d4f771 View commit details
    Browse the repository at this point in the history
  9. Add new vTPM tests

    The TestSwtpmAbruptTerminationRequest function verifies that if swtpm is
    terminated without vTPM notice, no stale id is left in the vtpm internal
    bookkeeping and vtpm can launch a new instance with the same id.
    
    The TestSwtpmMultipleLaucnhRequest function verifies that if swtpm is
    launched multiple times with the same id, only one instance is created
    and other requests are ignored.
    
    Signed-off-by: Shahriyar Jalayeri <[email protected]>
    shjala committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    bc80a42 View commit details
    Browse the repository at this point in the history