Lines Matching +full:serial +full:- +full:mux
1 .. SPDX-License-Identifier: GPL-2.0
8 Copyright |copy| ST-Ericsson AB 2010
17 CAIF is a MUX protocol used by ST-Ericsson cellular modems for
22 ST-Ericsson modems support a number of transports between modem
39 ! +------+ +------+
40 ! +------+! +------+!
42 +-------> !interf!+ ! API !+ <- CAIF Client APIs
43 ! +------+ +------!
45 ! +-----------+
47 ! +------+ <- CAIF Core Protocol
50 ! +------+
51 ! +----------!---------+
53 ! +------+ +-----+ +------+
54 +--> ! HSI ! ! TTY ! ! USB ! <- Link Layer (Net Devices)
55 +------+ +-----+ +------+
64 ------------------------
66 CAIF Core layer implements the CAIF protocol as defined by ST-Ericsson.
77 - Simple implementation of CAIF.
78 - Layered architecture (a la Streams), each layer in the CAIF
79 specification is implemented in a separate c-file.
80 - Clients must call configuration function to add PHY layer.
81 - Clients must implement CAIF layer to consume/produce
83 - Clients must call configuration function to add and connect the
85 - When receiving / transmitting CAIF Packets (cfpkt), ownership is passed
94 - CFPKT CAIF Packet. Implementation of CAIF Protocol Packet. The
100 - CFCNFG CAIF Configuration layer. Configures the CAIF Protocol
101 Stack and provides a Client interface for adding Link-Layer and
104 - CFCTRL CAIF Control layer. Encodes and Decodes control messages
108 - CFSERVL General CAIF Service Layer functionality; handles flow
111 - CFVEI CAIF VEI layer. Handles CAIF AT Channels on VEI (Virtual
114 - CFDGML CAIF Datagram layer. Handles CAIF Datagram layer (IP
117 - CFMUX CAIF Mux layer. Handles multiplexing between multiple
119 The MUX keeps track of the existing CAIF Channels and
121 on Channel-Id and Physical-ID.
123 - CFFRML CAIF Framing layer. Handles Framing i.e. Frame length
126 - CFSERL CAIF Serial layer. Handles concatenation/split of frames
131 +---------+
134 +---------+
136 +---------+ +---------+ +---------+
139 +---------+ +---------+ +---------+
142 +---------+
143 | MUX |
145 +---------+
148 +---------+ +---------+
151 +---------+ +---------+
153 +---------+ +---------+
154 | | | Serial |
156 +---------+ +---------+
161 - All layers embed the same structure "struct cflayer"
162 - A layer does not depend on any other layer's private data.
163 - Layers are stacked by setting the pointers::
165 layer->up , layer->dn
167 - In order to send data upwards, each layer should do::
169 layer->up->receive(layer->up, packet);
171 - In order to send data downwards, each layer should do::
173 layer->dn->transmit(layer->dn, packet);
184 receive of packets is handled as by the rest of the layers: the 'dn->transmit()'
188 ---------------------------
192 The CAIF Protocol relies on a loss-less link layer without implementing
194 Therefore a flow-control mechanism is implemented where the physical