qemu: don't use char device protocol telnets and tls
Software environment
- Operating system: Fedora 37
- Architecture: x86_64
- kernel version: kernel-6.0.9-300.fc37.x86_64
- libvirt version: v8.9.0-279-g4b90adf65a
- Hypervisor and version: qemu-7.0.0-11.fc37.x86_64
Description of problem
The char device source protocol VIR_DOMAIN_CHR_TCP_PROTOCOL_TLS and VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNETS are not implemented in qemu driver:
src/conf/domain_conf.h: VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNETS, /* secure telnet */
src/conf/domain_conf.h: VIR_DOMAIN_CHR_TCP_PROTOCOL_TLS,
src/vmx/vmx.c: = VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNETS;
src/vmx/vmx.c: (*def)->source->data.tcp.protocol = VIR_DOMAIN_CHR_TCP_PROTOCOL_TLS;
src/vmx/vmx.c: case VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNETS:
src/vmx/vmx.c: case VIR_DOMAIN_CHR_TCP_PROTOCOL_TLS:
Please disallow them when validating in case of misusage.
Steps to reproduce
Check chardev protocol tls and telnets by redirdev
- Start an VM with redirdev of protocol=tls or protocol=telnets. The device XML:
<redirdev bus="usb" type="tcp">
<source mode="bind" host="localhost" service="4001" tls="no"/>
<protocol type="tls"/>
<alias name="redir2"/>
<address type="usb" bus="0" port="6"/>
</redirdev>
<redirdev bus="usb" type="tcp">
<source mode="bind" host="localhost" service="4002" tls="no"/>
<protocol type="telnets"/>
<alias name="redir3"/>
<address type="usb" bus="0" port="7"/>
</redirdev>
- Check the qemu cmdline:
-chardev spicevmc,id=charredir1,name=usbredir -device {"driver":"usb-redir","chardev":"charredir1","id":"redir1","bus":"usb.0","port":"5"} -chardev socket,id=charredir2,host=localhost,port=4001,server=on,wait=off -device {"driver":"usb-redir","chardev":"charredir2","id":"redir2","bus":"usb.0","port":"6"} -chardev socket,id=charredir3,host=localhost,port=4002,server=on,wait=off -device {"driver":"usb-redir","chardev":"charredir3","id":"redir3","bus":"usb.0","port":"7"}
No much difference with the cmdline of <protocol type="raw"/>
Additional information
BTW, since the telnet protocol does not make sense to redirdev. Please disallow telnet for rediedev as well