Bug 1299373

Summary: Implement a SPICE protocol level keepalive mechanism for all channels
Product: Red Hat Enterprise Virtualization Manager Reporter: Michal Skrivanek <michal.skrivanek>
Component: RFEsAssignee: Scott Herold <sherold>
Status: CLOSED WONTFIX QA Contact: Gil Klein <gklein>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.5.7CC: cfergeau, dblechte, ecohen, fdelorey, gklein, lsurette, mburgerh, rbalakri, sherold, tspeetje, yeylon, ylavi
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard: virt
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1298590 Environment:
Last Closed: 2016-01-19 14:59:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Spice RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1298944, 1298945, 1298950    
Bug Blocks:    

Description Michal Skrivanek 2016-01-18 09:07:53 UTC
+++ This bug was initially created as a clone of Bug #1298590 +++

Description of problem:
When RHEV is used as a VD solution, it is very common to have a firewall between datacenter and client network. When a session is inactive (lunch break, overnight), and then reused, the firewall will drop packets related to keyboard/mouse channel.

Version-Release number of selected component (if applicable):
spice-server-0.12.4-12
spice-gtk3-0.30-1
spice-gtk-0.30-1

How reproducible:
100%

Steps to Reproduce:
1. Open a spice session, and minimize the window (to avoid mouse moves to be sent across)
2. No data is sent over for at least the channel for keyboard and mouse.
3. When a firewall is in between client and server, traffic for this connections will be dropped after an extended period of time

Actual results:
Traffic is dropped, because no traffic is sent over this connection

Expected results:
Traffic is sent over to keep the connection open (at a level higher than the TCP level)

Additional info:
TCP connection keepalive is already activated in spice-gtk and spice-gtk3, however, default TCP parameter (2h on Windows and Linux) is likely higher than the firewall timeout.

--- Additional comment from David Blechter on 2016-01-14 16:11:56 CET ---

The solution should be in rhevm, libvirt, qemu and spice.
The patches for spice are already approved upstream. And working on qemu ones.
It is not clear what OS are running on the hosts: RHEL 6.x, RHEL 7.x or both?
It will define the qemu and spice server components.
I suggest to use this bug as the tracking one.