Flow control settings for RS232 modems

Aleksander Morgado aleksander at aleksander.es
Sat Mar 25 18:32:09 UTC 2017


Hey Dan, Daniele, Carlo & everyone,

This series of patches tries to implement proper flow control settings on the serial port, and is based on letting MM detect which are the supported modes with AT+IFC=?. This makes it unnecessary to subclass the flow control setting in plugins for modems that don't support XON/XOFF (what was being used as default), like the Telit plugin.

The new logic will:
  * Always open the serial ports without any flow control enabled.
  * Query the modem which flow control methods are supported, with AT+IFC=?.
  * If supported, prefer RTS/CTS over XON/XOFF, and notify the modem via AT+IFC=x,x our selection.
  * When the port gets connected after an ATD call, reconfigure the TTY with the flow control attributes corresponding to the method we selected via AT+IFC.
  * pppd may be run without any of the explicit options regarding flow control, which means that whatever was configured in the TTY is used.
  * On port disconnection, we clear the flow control attributes of the TTY explicitly, although this is really not totally needed as we fully close and re-open the port (and during the re-open the port is opened without flow control enabled).

I prepared this logic for the Telit LE866-SV1, although it really is generic for every RS232 modem out there.

What do you guys think?

[PATCH 1/8] helpers: new parser for AT+IFC=?
[PATCH 2/8] broadband-modem: query supported flow control modes
[PATCH 3/8] wavecom: ignore custom flow control handling
[PATCH 4/8] telit: ignore custom flow control handling
[PATCH 5/8] port-serial: new internal method to run tcsetattr()
[PATCH 6/8] port-serial: new method to explicitly set flow control
[PATCH 7/8] port-serial: remove all default flow control settings
[PATCH 8/8] broadband-bearer: once connected, set flow control


More information about the ModemManager-devel mailing list