Commit Graph

536 Commits

Author SHA1 Message Date
Olivier Guiter bdb4c8d3db gatserver: add tone and pulse dialing AT commands 2011-03-29 13:54:46 -05:00
Denis Kenzior be5aadc16f gatchat: Add support for short prompt send variant 2011-03-28 18:06:59 -05:00
Denis Kenzior 2ed142de3c gatsyntax: support short prompt in v1 parser 2011-03-28 18:06:59 -05:00
Denis Kenzior b6d6282158 gatsyntax: support short prompt for permissive 2011-03-28 18:06:59 -05:00
Jarko Poutiainen 57faa0c931 gatchat: new hint to handle +CPOS 2011-03-28 18:06:59 -05:00
Jarko Poutiainen 17599580d8 gatchat: introduce send for +CPOS 2011-03-28 18:06:58 -05:00
Denis Kenzior 92a6b18ef4 gatsyntax: Support echo of empty lines 2011-03-28 18:06:57 -05:00
Denis Kenzior 54736c532c gatsyntax: Re-name enum a proper way 2011-03-28 18:06:57 -05:00
Olivier Guiter 6b03d7cdff gatserver: add v250 ATL and ATM commands 2011-03-25 12:37:25 -05:00
Olivier Guiter 155cf8f9c4 gatserver: add AT&F command 2011-03-24 13:27:13 -05:00
Olivier Guiter cc17e8fd8c gatserver: add ATZ command 2011-03-23 15:01:36 -05:00
Patrick Porlan 2f0485e757 ringbuffer: Switch ringbuffer to g_slice allocator
This should allow for more efficient handling of equally sized
buffers, in terms of alignment and recycling.
2011-03-16 21:34:54 -05:00
Patrick Porlan bb0e3e0a58 PPP: Optimize write buffer management
Extend the write buffer handling in gathdlc.c to minimize stalling and
process switching during large PPP transfers. The single write buffer
is replaced by a queue of buffers, allowing for much larger emission
windows without hugely impacting memory consumption. This reduces the
time required to send 50 MB between a couple of local PPP interfaces on
my laptop from ~53s to ~3s.
2011-03-15 14:15:26 -05:00
Patrick Porlan 992019cad4 gatchat: Optimize ringbuffer modulo operations
Replace modulo operations in ringbuffer.c by masking operations.  This
is possible because the size of the ring buffers is always a power of
two, and yields a small performance improvement.

The improvement should be mostly visible on processors that implement
division in microcode (Atom) or lack a division instruction (ARM).
2011-03-02 22:50:32 -06:00
Denis Kenzior ef49d65b70 gsmdial: Introduce data_mode
If we're in PPP mode, then don't send unsolicited notifications.  Only a
NO CARRIER is really allowed.
2011-02-28 16:13:56 -06:00
Denis Kenzior 51d950994d gatserver: Tweak use of g_at_server_suspend/resume 2011-02-28 16:13:56 -06:00
Denis Kenzior d3350d6662 test-server: Make sure to send CONNECT
Before starting the ppp session we should make sure that the CONNECT
response has been sent on the wire.
2011-02-28 16:13:56 -06:00
Denis Kenzior 4da1a9318c gatserver: Exit garbage state on HDLC frame end 2011-02-28 16:13:56 -06:00
Denis Kenzior 6f8675d7fa gatppp: Try to detect no carrier conditions 2011-02-28 16:13:56 -06:00
Denis Kenzior ea56a71067 gatppp: Delay signaling ppp_down
Delay signaling of ppp_down until we exit the GAtHDLC read handler.
Otherwise exchanging the read handler on GAtIO might lead to funny
double consumption problems.
2011-02-28 16:13:56 -06:00
Denis Kenzior 0dc8e5e588 gathdlc: Try to detect no carrier conditions
Sometimes we receive the no carrier embedded in a stream following the
PPP packets.  This might be due to write scheduling on the remote side
or read scheduling locally.  Try not to consume the no carrier condition
and assume the previous hdlc frames will result in closing of the ppp
stack.
2011-02-28 16:13:56 -06:00
Denis Kenzior 703271e629 gatio: Remove stray empty line 2011-02-28 16:13:56 -06:00
Denis Kenzior 78eb4ee59c gatio: update comment 2011-02-28 16:13:56 -06:00
Denis Kenzior 09ca5aaef0 gathdlc: Unregister read / write handlers
When GAtHDLC is being unregistered make sure to unregister read / write
handlers so as not to crash.
2011-02-28 16:13:56 -06:00
Denis Kenzior 1cbe91090d gathdlc: drain the last hdlc frame processed
If we're being destroyed, we should drain the last HDLC frame
2011-02-28 16:13:56 -06:00
Denis Kenzior 2446d1aa43 gsmdial: register notification before resuming 2011-02-28 16:13:56 -06:00
Denis Kenzior 57f32ff899 ppp: Remove some g_prints 2011-02-28 16:13:56 -06:00
Denis Kenzior 75730bbaac ppp_cp: Replace some left over g_prints with DBG 2011-02-28 16:13:56 -06:00
Denis Kenzior e880aab120 gatppp: Replace some left-over g_prints with DBG 2011-02-28 16:13:55 -06:00
Denis Kenzior b6bc221bc8 gatppp: Send the final terminate ack
In the case where we're going down, but have a pending terminate ack,
delay signaling the upper layers until the ack has been put on the wire.
2011-02-28 16:13:55 -06:00
Denis Kenzior 802962adbc gatppp: Add a debug macro 2011-02-28 16:13:55 -06:00
Denis Kenzior 5ffe6f7beb gatio: Add write 'done' notifier
This allows external clients to get notified when GAtIO no longer has a
registered write watcher.  E.g. no more data is currently pending.
2011-02-28 16:13:55 -06:00
Denis Kenzior 3f2f11fe8f test-server: Remove root user check 2011-02-28 16:13:55 -06:00
Denis Kenzior 92404672fc gatserver: Update the internal command parsers
commit 61b30c025d changed the way the
command callbacks are being called (namely the contents of the GAtResult
object).  Most command callbacks were updated, but the internal ones
were forgotten.  This patch fixes this issue.
2011-02-28 16:13:51 -06:00
Denis Kenzior d841fc868a gatchat: Fix minor style issues 2011-02-25 10:55:08 -06:00
Frédéric Danis 8f8559edf6 gatchat: add g_at_result_iter_next_number_default API 2011-02-24 14:01:23 -06:00
Frédéric Dalleau 42224e2bbe gatserver: Add function to enable/disable echo 2011-02-23 09:31:07 -06:00
Olivier Guiter 4ae645d7e6 gatserver: Add various ATSx handlers 2011-02-22 09:45:59 -06:00
Guillaume Zajac 205d40db82 test-server: Fix crash when remote disconnects
If the remote side kills the connection when PPP is established, we
should not try to resume the AT server.
2011-02-17 11:30:47 -06:00
Denis Kenzior 36056ddb38 gsmdial: Fix minor style quirk 2011-02-16 15:45:39 -06:00
Gustavo F. Padovan c57c78062e gsmdial: add option for Bluetooth DUN dialing 2011-02-16 15:45:34 -06:00
Martin Xu 694589f51d PPP: Use default ACCM (0xffffffff) to trasmit
Using my Huawei EM770W modem, if set ACCM as 0x00000000, RXJ-
event breaks PPP link, after IP package transmit for a while.
Using default ACCM, the issue can be fixed.
I tested it at China Unicom networks.
2011-02-16 12:01:39 -06:00
Denis Kenzior 6eeaacc706 gatserver: Be more const correct 2011-02-16 00:23:44 -06:00
Denis Kenzior 55d54e377a test-server: Fix a few more occurrences 2011-02-15 16:05:02 -06:00
Denis Kenzior a6f910e27c gatserver: Change callback signature
Provide the originating GAtServer to the callback
2011-02-15 15:47:32 -06:00
Denis Kenzior a0cca0a970 gatserver: extend D with GSM/UMTS specifics 2011-02-15 15:47:32 -06:00
Denis Kenzior 5da299ad34 test-server: Behavior to match previous commit 2011-02-15 15:47:32 -06:00
Denis Kenzior 61b30c025d gatserver: Don't bother reporting command prefixes
The command line parser knows where the actual command line parameters
begin, so there's no need to make the callback skip the prefix and the
additional separator characters.
2011-02-15 15:47:32 -06:00
Martin Xu ad16e81aff PPP: Fix transmit ACCM and receive ACCM mixup
According to RFC1662 Section 7.1, ACCM Configuration Option is
used to inform the peer which control characters MUST remain
mapped when the peer sends them.
2011-02-14 14:22:32 -06:00
Olivier Guiter a1f5a5520a gatserver: Add ATS5 command feature 2011-02-14 09:51:30 -06:00