[ 
https://issues.apache.org/jira/browse/GUACAMOLE-2301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18097063#comment-18097063
 ] 

Ciro Iriarte commented on GUACAMOLE-2301:
-----------------------------------------

End-to-end QA has been completed against a live device — a Juniper switch 
console at 9600 8N1 — exercising the full web-client path (browser → 
guacamole-client → guacd → serial plugin → device), not just guacd in isolation.

All three transports were validated:
* *Local* — guacd opening the serial device directly via termios. Baud, data 
bits, parity, and stop bits were confirmed to be applied at the hardware level 
(including negative cases: a deliberate baud mismatch produced unreadable 
output rather than a clean login, confirming the setting reaches the adapter).
* *Network / raw* — via ser2net raw TCP.
* *Network / RFC2217* — via ser2net, with COM-PORT-OPTION line-setting 
negotiation confirmed (baud rate and parity pushed to the server and reflected 
in the established line settings). Built and exercised with libtelnet present.

Bidirectional I/O was confirmed in both local and network modes — typed input 
was echoed back by the device. The reviewed features were exercised end to end: 
automatic reconnection (on device reboot / connection drop, with the terminal 
and scrollback preserved), configurable line-ending, local echo, read-only, 
send-break plus DTR/RTS via the client-agnostic control pipe (driven by the web 
client's Send Break / DTR / RTS actions), the server-side device-path allowlist 
(both accept and reject), session recording / typescript, and the connect 
status banner.

One client-side issue was found and fixed during QA: the serial protocol 
descriptor was present, but the protocol had not been registered in the 
connection editor's protocol list, so the administration "New Connection" form 
did not offer Serial. This has been corrected, and the full serial connection 
form now renders.

Coordinated pull requests against the three repositories (guacamole-server, 
guacamole-client, guacamole-manual) will be submitted once the 
reverse-connection mode discussed above has been sorted out.


> Add serial console protocol support
> -----------------------------------
>
>                 Key: GUACAMOLE-2301
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-2301
>             Project: Guacamole
>          Issue Type: New Feature
>          Components: guacamole-client, guacamole-manual, guacd
>            Reporter: Ciro Iriarte
>            Priority: Major
>
> Guacamole offers terminal protocols (SSH, Telnet) and, recently, IPMI 
> Serial-over-LAN (GUACAMOLE-2300), but has no way to reach a plain *serial 
> console* — the RS-232 console port of network switches, routers, firewalls, 
> PDUs, and headless servers — which remains the primary out-of-band 
> administration and disaster-recovery interface for that equipment.
> This proposes a new "serial" protocol module for guacd, with a matching 
> connection form in guacamole-client and a chapter in guacamole-manual, 
> mirroring the existing terminal protocols and reusing the shared terminal 
> emulator (color schemes, fonts, scrollback, session recording, typescript, 
> copy/paste).
> h3. Scope
> Two connection modes, selected by an explicit parameter:
> * *Local* — a serial device attached to the guacd host (e.g. /dev/ttyUSB0, 
> /dev/serial/by-id/...), configured via termios: baud rate, data bits, parity, 
> stop bits, and hardware/software flow control, with an optional server-side 
> device allowlist.
> * *Network* — a serial port exposed over IP by ser2net 
> (https://github.com/cminyard/ser2net), either as raw TCP or via RFC2217 
> (Telnet COM-PORT-OPTION), the latter enabling negotiation of serial line 
> settings and break signalling over the wire.
> h3. Notable features
> * Configurable *send-break* (break-duration) for password-recovery / ROMMON / 
> U-Boot workflows, triggerable from the browser and via a client-agnostic 
> control pipe.
> * *Paste pacing* (paste-delay) to avoid FIFO overrun when pasting 
> configuration blocks at low baud without flow control.
> * Session recording / typescript for audit, read-only mode, and clipboard 
> controls, inherited from the shared terminal.
> h3. Implementation status
> A working implementation exists across guacamole-server, guacamole-client, 
> and guacamole-manual, building cleanly against apache/main; coordinated PRs 
> to follow. USB/IP was evaluated and deliberately not integrated, as ser2net 
> is the appropriate mechanism for remote serial access.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to