le_mdc_interface.h

Go to the documentation of this file.
1 
2 
3 /*
4  * ====================== WARNING ======================
5  *
6  * THE CONTENTS OF THIS FILE HAVE BEEN AUTO-GENERATED.
7  * DO NOT MODIFY IN ANY WAY.
8  *
9  * ====================== WARNING ======================
10  */
11 
12 /**
13  * @page c_mdc Modem Data Control
14  *
15  * @ref le_mdc_interface.h "API Reference"
16  *
17  * <HR>
18  *
19  * A data session is useful for applications that need to send or receive data over a network
20  * where SMS messages are insufficient. To start a data session, a data profile must
21  * be configured as specified by the target network.
22  *
23  * The Modem Data Control (mdc) API is used to manage data profiles and data sessions.
24  *
25  * @section le_mdc_binding IPC interfaces binding
26  *
27  * All the functions of this API are provided by the @b modemService service.
28  *
29  * Here's a code sample binding to modem services:
30  * @verbatim
31  bindings:
32  {
33  clientExe.clientComponent.le_mdc -> modemService.le_mdc
34  }
35  @endverbatim
36  *
37  * @section le_mdc_profile Data Profiles
38  *
39  * If a pre-defined data profile has been configured then this profile can
40  * be loaded using le_mdc_GetProfile().
41  * le_mdc_GetProfile() must be called with @c LE_MDC_DEFAULT_PROFILE to retrieve the default index
42  * used by the modem for data connection.
43  * le_mdc_GetProfile() must be called with @c LE_MDC_SIMTOOLKIT_BIP_DEFAULT_PROFILE to retrieve the
44  * default index used by the modem for Bearer Independent Protocol (BIP).
45  * The maximum number of data profiles supported is modem dependent and can be retrieved with
46  * le_mdc_NumProfiles().
47  *
48  * @note le_mdc_GetProfile() creates a new profile if the profile's index can't be found.
49  *
50  * @warning 0 is not a valid index.
51  *
52  * A pre-defined data profile can be retrieved using le_mdc_GetProfileFromApn() thanks to its
53  * APN.
54  *
55  * A default APN can be set for a defined profile with le_mdc_SetDefaultAPN(), based on the SIM
56  * identification number (ICCID). If no match is found in the database using the ICCID, the search
57  * falls back on the home network (MCC/MNC) to determine the default APN.
58  *
59  * @warning Ensure to check the list of supported data profiles for your specific platform.
60  *
61  * The following data profile parameters can be retrieved:
62  * - Packet Data Protocol using le_mdc_GetPDP().
63  * - Access Point Name using le_mdc_GetAPN().
64  * - Authentication settings using le_mdc_GetAuthentication().
65  *
66  * The following data profile parameters can be set:
67  * - Packet Data Protocol using le_mdc_SetPDP().
68  * - Access Point Name using le_mdc_SetAPN().
69  * - Authentication settings using le_mdc_SetAuthentication().
70  *
71  * A sample code can be seen in the following page:
72  * - @subpage c_mdcDataProfiles
73  *
74  * @section le_mdc_session Data Sessions
75  *
76  * @subsection le_mdc_session_MO Mobile Originated (MO-PDP context activation)
77  *
78  * le_mdc_MapProfileOnNetworkInterface() may be used to map a data session with a network interface.
79  * To take effect, this API has to be called before starting the data session. Otherwise, the
80  * mapping will be taken into account at the next start of the data profile.
81  *
82  * A data session can be started using le_mdc_StartSession(). To start a data session, a
83  * data profile must be created and written to the modem, or an existing data profile
84  * can be used. A data session can be stopped using le_mdc_StopSession(). The number of
85  * simultaneous data sessions supported is dependent on the modem, but cannot be more than the
86  * maximum number of supported profiles.
87  *
88  * A data session can be started using le_mdc_StartSessionAsync() and stopped using
89  * le_mdc_StopSessionAsync(). These functions are not blocking. The response will be returned
90  * with the @c le_mdc_SessionHandlerFunc_t handler function.
91  *
92  * The current state of a data session can be queried using le_mdc_GetSessionState(). An application
93  * can also a register handler to be notified when the session state changes. The handler
94  * can be managed using le_mdc_AddSessionStateHandler() and le_mdc_RemoveSessionStateHandler().
95  *
96  * @subsection le_mdc_session_MT Mobile Terminated (MT-PDP context activation)
97  * To be notified by the MT-PDP context request, the application has to subscribe to the state
98  * handler using le_mdc_AddMtPdpSessionStateHandler().
99  * When the incoming MT-PDP context request is notified,
100  * the application takes responsibility to trigger the data session for that MT PDP request using
101  * le_mdc_StartSession. That data session can be stopped using le_mdc_StopSession().
102  *
103  * The network interface settings of that MT-PDP context can be retrieved using the provided
104  * Data Profile.
105  * Please refer to @ref le_mdc_session_networkItf.
106  *
107  * A data session can be rejected using le_mdc_RejectMtPdpSession().
108  * The number of simultaneous data sessions supported is dependent on the modem,
109  * but cannot be more than the maximum number of supported profiles.
110  *
111  * The handler can be released using le_mdc_RemoveMtPdpSessionStateHandler().
112  *
113  * @subsection le_mdc_session_networkItf Network interface settings
114  * Once a data session starts, a Linux network interface is created. It's the application's
115  * responsibility to configure the network interface, usually through a DHCP client. Query the
116  * interface name using le_mdc_GetInterfaceName(). The IP Preference can be checked with
117  * le_mdc_IsIPv4() or le_mdc_IsIPv6() when the profile is connected. The IP address for the
118  * current data session
119  * can be retrieved by le_mdc_GetIPv4Address() or le_mdc_GetIPv6Address(). The Gateway and
120  * DNS
121  * addresses can be retrieved using le_mdc_GetIPv4GatewayAddress(),
122  * le_mdc_GetIPv4DNSAddresses() or le_mdc_GetIPv6GatewayAddress(), le_mdc_GetIPv6DNSAddresses().
123  * The Access Point Name can be retrieved by le_mdc_GetAPN(). The Data bearer
124  * Technology can be retrieved by le_mdc_GetDataBearerTechnology().
125  *
126  * When the data session is stopped, the disconnection reason can be known using
127  * le_mdc_GetDisconnectionReason() or le_mdc_GetPlatformSpecificDisconnectionCode() (refer to
128  * your platform documentation for further details).
129  *
130  * When the data session connection fails, the failure reason can be known using
131  * le_mdc_GetDisconnectionReason(), le_mdc_GetPlatformSpecificDisconnectionCode() or
132  * le_mdc_GetPlatformSpecificFailureConnectionReason() (refer to your platform documentation
133  * for further details).
134  *
135  * A sample code can be seen in the following page:
136  * - @subpage c_mdcDataSessions
137  *
138  * @section le_mdc_dataStatistics Data Statistics
139  *
140  * Data bytes received/transmitted can be access through le_mdc_GetBytesCounters().
141  * These values correspond to the number of bytes received/transmitted since the last software reset
142  * or the last le_mdc_ResetBytesCounter() called.
143  * Making these value persistent after a software reboot is the client responsibility.
144  *
145  * A sample code can be seen in the following page:
146  * - @subpage c_mdcDataStatistics
147  *
148  * <HR>
149  *
150  * Copyright (C) Sierra Wireless Inc.
151  */
152 /**
153  * @page c_mdcDataProfiles Sample code for Data Profiles
154  *
155  * @snippet "apps/test/modemServices/mdc/mdcIntegrationTest/mdcTestComp/mdcTest.c" Profiles
156  */
157 /**
158  * @page c_mdcDataSessions Sample code for network interface settings
159  *
160  * @snippet "apps/test/modemServices/mdc/mdcIntegrationTest/mdcTestComp/mdcTest.c" Sessions
161  */
162 /**
163  * @page c_mdcDataStatistics Sample code for Data Statistics
164  *
165  * @snippet "apps/test/modemServices/mdc/mdcIntegrationTest/mdcTestComp/mdcTest.c" Statistics
166  */
167 /**
168  * @file le_mdc_interface.h
169  *
170  * Legato @ref c_mdc include file.
171  *
172  * Copyright (C) Sierra Wireless Inc.
173  */
174 
175 #ifndef LE_MDC_INTERFACE_H_INCLUDE_GUARD
176 #define LE_MDC_INTERFACE_H_INCLUDE_GUARD
177 
178 
179 #include "legato.h"
180 
181 
182 //--------------------------------------------------------------------------------------------------
183 /**
184  * Type for handler called when a server disconnects.
185  */
186 //--------------------------------------------------------------------------------------------------
187 typedef void (*le_mdc_DisconnectHandler_t)(void *);
188 
189 //--------------------------------------------------------------------------------------------------
190 /**
191  *
192  * Connect the current client thread to the service providing this API. Block until the service is
193  * available.
194  *
195  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
196  * called before any other functions in this API. Normally, ConnectService is automatically called
197  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
198  *
199  * This function is created automatically.
200  */
201 //--------------------------------------------------------------------------------------------------
203 (
204  void
205 );
206 
207 //--------------------------------------------------------------------------------------------------
208 /**
209  *
210  * Try to connect the current client thread to the service providing this API. Return with an error
211  * if the service is not available.
212  *
213  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
214  * called before any other functions in this API. Normally, ConnectService is automatically called
215  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
216  *
217  * This function is created automatically.
218  *
219  * @return
220  * - LE_OK if the client connected successfully to the service.
221  * - LE_UNAVAILABLE if the server is not currently offering the service to which the client is
222  * bound.
223  * - LE_NOT_PERMITTED if the client interface is not bound to any service (doesn't have a binding).
224  * - LE_COMM_ERROR if the Service Directory cannot be reached.
225  */
226 //--------------------------------------------------------------------------------------------------
228 (
229  void
230 );
231 
232 //--------------------------------------------------------------------------------------------------
233 /**
234  * Set handler called when server disconnection is detected.
235  *
236  * When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants
237  * to continue without exiting, it should call longjmp() from inside the handler.
238  */
239 //--------------------------------------------------------------------------------------------------
241 (
242  le_mdc_DisconnectHandler_t disconnectHandler,
243  void *contextPtr
244 );
245 
246 //--------------------------------------------------------------------------------------------------
247 /**
248  *
249  * Disconnect the current client thread from the service providing this API.
250  *
251  * Normally, this function doesn't need to be called. After this function is called, there's no
252  * longer a connection to the service, and the functions in this API can't be used. For details, see
253  * @ref apiFilesC_client.
254  *
255  * This function is created automatically.
256  */
257 //--------------------------------------------------------------------------------------------------
259 (
260  void
261 );
262 
263 
264 //--------------------------------------------------------------------------------------------------
265 /**
266  * Maximum number of bytes in a interface name (not including the null-terminator).
267  */
268 //--------------------------------------------------------------------------------------------------
269 #define LE_MDC_INTERFACE_NAME_MAX_LEN 20
270 
271 //--------------------------------------------------------------------------------------------------
272 /**
273  * Maximum number of bytes in a profile name (including the null-terminator).
274  */
275 //--------------------------------------------------------------------------------------------------
276 #define LE_MDC_INTERFACE_NAME_MAX_BYTES 21
277 
278 //--------------------------------------------------------------------------------------------------
279 /**
280  * Maximum number of bytes in an IPv4 address (not including the null-terminator).
281  */
282 //--------------------------------------------------------------------------------------------------
283 #define LE_MDC_IPV4_ADDR_MAX_LEN 15
284 
285 //--------------------------------------------------------------------------------------------------
286 /**
287  * Maximum number of bytes in an IPv4 address (including the null-terminator).
288  */
289 //--------------------------------------------------------------------------------------------------
290 #define LE_MDC_IPV4_ADDR_MAX_BYTES 16
291 
292 //--------------------------------------------------------------------------------------------------
293 /**
294  * Maximum number of bytes in an IPv6 address (not including the null-terminator).
295  */
296 //--------------------------------------------------------------------------------------------------
297 #define LE_MDC_IPV6_ADDR_MAX_LEN 45
298 
299 //--------------------------------------------------------------------------------------------------
300 /**
301  * Maximum number of bytes in an IPv6 address (including the null-terminator).
302  */
303 //--------------------------------------------------------------------------------------------------
304 #define LE_MDC_IPV6_ADDR_MAX_BYTES 46
305 
306 //--------------------------------------------------------------------------------------------------
307 /**
308  * Maximum number of bytes in a apn name (not including the null-terminator).
309  */
310 //--------------------------------------------------------------------------------------------------
311 #define LE_MDC_APN_NAME_MAX_LEN 100
312 
313 //--------------------------------------------------------------------------------------------------
314 /**
315  * Maximum number of bytes in a apn name (including the null-terminator).
316  */
317 //--------------------------------------------------------------------------------------------------
318 #define LE_MDC_APN_NAME_MAX_BYTES 101
319 
320 //--------------------------------------------------------------------------------------------------
321 /**
322  * Maximum number of bytes in a user name (not including the null-terminator).
323  */
324 //--------------------------------------------------------------------------------------------------
325 #define LE_MDC_USER_NAME_MAX_LEN 64
326 
327 //--------------------------------------------------------------------------------------------------
328 /**
329  * Maximum number of bytes in a user name (including the null-terminator).
330  */
331 //--------------------------------------------------------------------------------------------------
332 #define LE_MDC_USER_NAME_MAX_BYTES 65
333 
334 //--------------------------------------------------------------------------------------------------
335 /**
336  * Maximum number of bytes in a password name (not including the null-terminator).
337  */
338 //--------------------------------------------------------------------------------------------------
339 #define LE_MDC_PASSWORD_NAME_MAX_LEN 100
340 
341 //--------------------------------------------------------------------------------------------------
342 /**
343  * Maximum number of bytes in a password name (including the null-terminator).
344  */
345 //--------------------------------------------------------------------------------------------------
346 #define LE_MDC_PASSWORD_NAME_MAX_BYTES 101
347 
348 //--------------------------------------------------------------------------------------------------
349 /**
350  * Default profile definition.
351  */
352 //--------------------------------------------------------------------------------------------------
353 #define LE_MDC_DEFAULT_PROFILE -1
354 
355 //--------------------------------------------------------------------------------------------------
356 /**
357  * Default profile definition for Bearer Independent Protocol (BIP).
358  */
359 //--------------------------------------------------------------------------------------------------
360 #define LE_MDC_SIMTOOLKIT_BIP_DEFAULT_PROFILE -2
361 
362 //--------------------------------------------------------------------------------------------------
363 /**
364  * Reference to a modem data connection profile.
365  */
366 //--------------------------------------------------------------------------------------------------
367 typedef struct le_mdc_Profile* le_mdc_ProfileRef_t;
368 
369 
370 //--------------------------------------------------------------------------------------------------
371 /**
372  * Enumeration of data bearer technologies.
373  */
374 //--------------------------------------------------------------------------------------------------
375 typedef enum
376 {
378  ///< Unknown
380  ///< GSM
382  ///< GPRS
384  ///< Enhanced GPRS (EDGE)
386  ///< WCDMA (UMTS)
388  ///< HSPA
390  ///< HSPA+
392  ///< Dual Cell - HSPA+
394  ///< LTE
396  ///< TD-SCDMA
398  ///< CDMA2000 1X
400  ///< CDMA2000 HRPD (1xEV-DO)
402  ///< CDMA2000 HRPD (1xEV-DO RevA)
404  ///< CDMA2000 EHRPD
405 }
407 
408 
409 //--------------------------------------------------------------------------------------------------
410 /**
411  * Enumeration of Packet Data Protocol.
412  */
413 //--------------------------------------------------------------------------------------------------
414 typedef enum
415 {
417  ///< Unknown
419  ///< IPv4
421  ///< IPv6
423  ///< IPv4 and IPv6
424 }
426 
427 
428 //--------------------------------------------------------------------------------------------------
429 /**
430  * Authentication bit mask.
431  */
432 //--------------------------------------------------------------------------------------------------
433 typedef enum
434 {
435  LE_MDC_AUTH_NONE = 0x1, ///< no authentication
436  LE_MDC_AUTH_PAP = 0x2, ///< PAP protocol
437  LE_MDC_AUTH_CHAP = 0x4 ///< CHAP protocol
438 }
440 
441 
442 //--------------------------------------------------------------------------------------------------
443 /**
444  * Enumeration of connection state.
445  */
446 //--------------------------------------------------------------------------------------------------
447 typedef enum
448 {
450  ///< Data session is disconnected
452  ///< Authenticating data session
454  ///< Data session is connected
456  ///< Suspending data session
458  ///< Incoming data session (MT-PDP context request)
459 }
461 
462 
463 //--------------------------------------------------------------------------------------------------
464 /**
465  * Enumeration of the possible reasons for the disconnection.
466  */
467 //--------------------------------------------------------------------------------------------------
468 typedef enum
469 {
471  ///< Modem has no service
473  ///< cf. 3GPP 24.008 Annex I1
475  ///< cf. 3GPP 24.008 Annex I1
477  ///< cf. 3GPP 24.008 Annex I1
479  ///< cf. 3GPP 24.008 Annex I1
481  ///< cf. 3GPP 24.008 Annex I1
483  ///< cf. 3GPP 24.008 Annex I1
485  ///< cf. 3GPP 24.008 Annex I1
487  ///< cf. 3GPP 24.008 Annex I1
489  ///< cf. 3GPP 24.008 Annex I1
491  ///< cf. 3GPP 24.008 Annex I1
493  ///< cf. 3GPP 24.008 Annex I1
495  ///< cf. 3GPP 24.008 Annex I1
497  ///< cf. 3GPP 24.008 Annex I1
499  ///< cf. 3GPP 24.008 Annex I1
501  ///< cf. 3GPP 24.008 Annex I1
503  ///< cf. 3GPP 24.008 Annex I1
505  ///< cf. 3GPP 24.008 Annex I1
507  ///< cf. 3GPP 24.008 Annex I1
509  ///< cf. 3GPP 24.008 Annex I1
511  ///< cf. 3GPP 24.008 Annex I1
513  ///< cf. 3GPP 24.008 Annex I1
515  ///< cf. 3GPP 24.008 Annex I1
517  ///< cf. 3GPP 24.008 Annex I1
519  ///< cf. 3GPP 24.008 Annex I1
521  ///< cf. 3GPP 24.008 Annex I1
523  ///< cf. 3GPP 24.008 Annex I1
525  ///< cf. 3GPP 24.008 Annex I1
527  ///< cf. 3GPP 24.008 Annex I1
529  ///< cf. 3GPP 24.008 Annex I1
531  ///< cf. 3GPP 24.008 Annex I1
533  ///< cf. 3GPP 24.008 Annex I1
535  ///< cf. 3GPP 24.008 Annex I1
537  ///< cf. 3GPP 24.008 Annex I1
539  ///< cf. 3GPP 24.008 Annex I1
541  ///< cf. 3GPP 24.008 Annex I2
543  ///< cf. 3GPP 24.008 Annex I2
545  ///< cf. 3GPP 24.008 Annex I2
547  ///< cf. 3GPP 24.008 Annex I2
549  ///< cf. 3GPP 24.008 Annex I2
551  ///< cf. 3GPP 24.008 Annex I2
553  ///< cf. 3GPP 24.008 Annex I2
555  ///< cf. 3GPP 24.008 Annex I2
557  ///< cf. 3GPP 24.008 Annex I2
559  ///< Platform specific code.
561  ///< Undefined reason.
562 }
564 
565 
566 //--------------------------------------------------------------------------------------------------
567 /**
568  * Reference type used by Add/Remove functions for EVENT 'le_mdc_SessionState'
569  */
570 //--------------------------------------------------------------------------------------------------
571 typedef struct le_mdc_SessionStateHandler* le_mdc_SessionStateHandlerRef_t;
572 
573 
574 //--------------------------------------------------------------------------------------------------
575 /**
576  * Reference type used by Add/Remove functions for EVENT 'le_mdc_MtPdpSessionState'
577  */
578 //--------------------------------------------------------------------------------------------------
579 typedef struct le_mdc_MtPdpSessionStateHandler* le_mdc_MtPdpSessionStateHandlerRef_t;
580 
581 
582 //--------------------------------------------------------------------------------------------------
583 /**
584  * Handler for Data session connection state changes.
585  */
586 //--------------------------------------------------------------------------------------------------
587 typedef void (*le_mdc_SessionStateHandlerFunc_t)
588 (
589  le_mdc_ProfileRef_t profileRef,
590  ///< Profile reference
591  le_mdc_ConState_t ConnectionState,
592  ///< Data session connection state.
593  void* contextPtr
594  ///<
595 );
596 
597 //--------------------------------------------------------------------------------------------------
598 /**
599  * Handler for MT-PDP Data session connection state changes.
600  */
601 //--------------------------------------------------------------------------------------------------
603 (
604  le_mdc_ConState_t ConnectionState,
605  ///< MT-PDP Data session connection state.
606  void* contextPtr
607  ///<
608 );
609 
610 //--------------------------------------------------------------------------------------------------
611 /**
612  * Handler for asynchronous session start and stop result response
613  *
614  */
615 //--------------------------------------------------------------------------------------------------
616 typedef void (*le_mdc_SessionHandlerFunc_t)
617 (
618  le_mdc_ProfileRef_t profileRef,
619  ///< Profile reference
620  le_result_t result,
621  ///< Session start or stop result response
622  void* contextPtr
623  ///<
624 );
625 
626 //--------------------------------------------------------------------------------------------------
627 /**
628  * Add handler function for EVENT 'le_mdc_SessionState'
629  *
630  * This event provides information on data session connection state changes for the given profileRef.
631  *
632  */
633 //--------------------------------------------------------------------------------------------------
635 (
636  le_mdc_ProfileRef_t profileRef,
637  ///< [IN] The profile object of interest
639  ///< [IN]
640  void* contextPtr
641  ///< [IN]
642 );
643 
644 //--------------------------------------------------------------------------------------------------
645 /**
646  * Remove handler function for EVENT 'le_mdc_SessionState'
647  */
648 //--------------------------------------------------------------------------------------------------
650 (
652  ///< [IN]
653 );
654 
655 //--------------------------------------------------------------------------------------------------
656 /**
657  * Add handler function for EVENT 'le_mdc_MtPdpSessionState'
658  *
659  * This event provides information on data session connection state changes for the given profileRef.
660  *
661  */
662 //--------------------------------------------------------------------------------------------------
664 (
666  ///< [IN]
667  void* contextPtr
668  ///< [IN]
669 );
670 
671 //--------------------------------------------------------------------------------------------------
672 /**
673  * Remove handler function for EVENT 'le_mdc_MtPdpSessionState'
674  */
675 //--------------------------------------------------------------------------------------------------
677 (
679  ///< [IN]
680 );
681 
682 //--------------------------------------------------------------------------------------------------
683 /**
684  * Get Profile Reference for index
685  *
686  * @note Create a new profile if the profile's index can't be found.
687  *
688  * @warning 0 is not a valid index.
689  *
690  * @warning Ensure to check the list of supported data profiles for your specific platform.
691  *
692  * @return
693  * - Reference to the data profile
694  * - NULL if the profile index does not exist
695  */
696 //--------------------------------------------------------------------------------------------------
698 (
699  uint32_t index
700  ///< [IN] index of the profile.
701 );
702 
703 //--------------------------------------------------------------------------------------------------
704 /**
705  * Get the index for the given Profile.
706  *
707  * @return
708  * - index of the profile in the modem
709  *
710  * @note
711  * The process exits, if an invalid profile object is given
712  */
713 //--------------------------------------------------------------------------------------------------
714 uint32_t le_mdc_GetProfileIndex
715 (
716  le_mdc_ProfileRef_t profileRef
717  ///< [IN] Query this profile object
718 );
719 
720 //--------------------------------------------------------------------------------------------------
721 /**
722  * Start profile data session.
723  *
724  * @return
725  * - LE_OK on success
726  * - LE_BAD_PARAMETER if input parameter is incorrect
727  * - LE_DUPLICATE if the data session is already connected for the given profile
728  * - LE_FAULT for other failures
729  *
730  * @note
731  * The process exits, if an invalid profile object is given
732  */
733 //--------------------------------------------------------------------------------------------------
735 (
736  le_mdc_ProfileRef_t profileRef
737  ///< [IN] Start data session for this profile object
738 );
739 
740 //--------------------------------------------------------------------------------------------------
741 /**
742  * Start profile data session.
743  *
744  * @note
745  * The process exits, if an invalid profile object is given
746  */
747 //--------------------------------------------------------------------------------------------------
749 (
750  le_mdc_ProfileRef_t profileRef,
751  ///< [IN] Start data session for this profile object
752  le_mdc_SessionHandlerFunc_t handlerPtr,
753  ///< [IN] Handler for start data session result
754  void* contextPtr
755  ///< [IN]
756 );
757 
758 //--------------------------------------------------------------------------------------------------
759 /**
760  * Stop profile data session.
761  *
762  * @return
763  * - LE_OK on success
764  * - LE_BAD_PARAMETER if the input parameter is not valid
765  * - LE_FAULT for other failures
766  *
767  * @note
768  * The process exits, if an invalid profile object is given
769  */
770 //--------------------------------------------------------------------------------------------------
772 (
773  le_mdc_ProfileRef_t profileRef
774  ///< [IN] Stop data session for this profile object
775 );
776 
777 //--------------------------------------------------------------------------------------------------
778 /**
779  * Stop profile data session.
780  *
781  * @note
782  * The process exits, if an invalid profile object is given
783  */
784 //--------------------------------------------------------------------------------------------------
786 (
787  le_mdc_ProfileRef_t profileRef,
788  ///< [IN] Stop data session for this profile object
789  le_mdc_SessionHandlerFunc_t handlerPtr,
790  ///< [IN] Handler for stop data session result
791  void* contextPtr
792  ///< [IN]
793 );
794 
795 //--------------------------------------------------------------------------------------------------
796 /**
797  * Reject MT-PDP profile data session.
798  *
799  * @return
800  * - LE_OK on success
801  * - LE_BAD_PARAMETER if the input parameter is not valid
802  * - LE_FAULT for other failures
803  *
804  * @note
805  * The process exits, if an invalid profile object is given
806  */
807 //--------------------------------------------------------------------------------------------------
809 (
810  le_mdc_ProfileRef_t profileRef
811  ///< [IN] Reject MT-PDP data session for this profile object
812 );
813 
814 //--------------------------------------------------------------------------------------------------
815 /**
816  * Get the current data session state.
817  *
818  * @return
819  * - LE_OK on success
820  * - LE_BAD_PARAMETER if an input parameter is not valid
821  * - LE_FAULT on failure
822  *
823  * @note
824  * The process exits, if an invalid profile object is given
825  */
826 //--------------------------------------------------------------------------------------------------
828 (
829  le_mdc_ProfileRef_t profileRef,
830  ///< [IN] Query this profile object
831  le_mdc_ConState_t* connectionStatePtr
832  ///< [OUT] The data session state
833 );
834 
835 //--------------------------------------------------------------------------------------------------
836 /**
837  * Get the network interface name, if the data session is connected.
838  *
839  * @return
840  * - LE_OK on success
841  * - LE_OVERFLOW if the interface name would not fit in interfaceNameStr
842  * - LE_FAULT for all other errors
843  *
844  * @note
845  * The process exits, if an invalid profile object is given
846  */
847 //--------------------------------------------------------------------------------------------------
849 (
850  le_mdc_ProfileRef_t profileRef,
851  ///< [IN] Query this profile object
852  char* interfaceName,
853  ///< [OUT] The name of the network interface
854  size_t interfaceNameSize
855  ///< [IN]
856 );
857 
858 //--------------------------------------------------------------------------------------------------
859 /**
860  * Get the IPv4 address for the given profile, if the data session is connected and has an IPv4
861  * address.
862  *
863  * @return
864  * - LE_OK on success
865  * - LE_OVERFLOW if the IP address would not fit in ipAddrStr
866  * - LE_FAULT for all other errors
867  *
868  * @note
869  * The process exits, if an invalid profile object is given
870  */
871 //--------------------------------------------------------------------------------------------------
873 (
874  le_mdc_ProfileRef_t profileRef,
875  ///< [IN] Query this profile object
876  char* ipAddr,
877  ///< [OUT] The IP address in dotted format
878  size_t ipAddrSize
879  ///< [IN]
880 );
881 
882 //--------------------------------------------------------------------------------------------------
883 /**
884  * Get the gateway IPv4 address for the given profile, if the data session is connected and has an
885  * IPv4 address.
886  *
887  * @return
888  * - LE_OK on success
889  * - LE_OVERFLOW if the IP address would not fit in gatewayAddrStr
890  * - LE_FAULT for all other errors
891  *
892  * @note
893  * The process exits, if an invalid profile object is given
894  */
895 //--------------------------------------------------------------------------------------------------
897 (
898  le_mdc_ProfileRef_t profileRef,
899  ///< [IN] Query this profile object
900  char* gatewayAddr,
901  ///< [OUT] The gateway IP address in dotted format
902  size_t gatewayAddrSize
903  ///< [IN]
904 );
905 
906 //--------------------------------------------------------------------------------------------------
907 /**
908  * Get the primary/secondary DNS v4 addresses for the given profile, if the data session is
909  * connected and has an IPv4 address.
910  *
911  * @return
912  * - LE_OK on success
913  * - LE_OVERFLOW if the IP address would not fit in buffer
914  * - LE_FAULT for all other errors
915  *
916  * @note
917  * - If only one DNS address is available, then it will be returned, and an empty string will
918  * be returned for the unavailable address
919  * - The process exits, if an invalid profile object is given
920  */
921 //--------------------------------------------------------------------------------------------------
923 (
924  le_mdc_ProfileRef_t profileRef,
925  ///< [IN] Query this profile object
926  char* dns1AddrStr,
927  ///< [OUT] The primary DNS IP address in dotted format
928  size_t dns1AddrStrSize,
929  ///< [IN]
930  char* dns2AddrStr,
931  ///< [OUT] The secondary DNS IP address in dotted format
932  size_t dns2AddrStrSize
933  ///< [IN]
934 );
935 
936 //--------------------------------------------------------------------------------------------------
937 /**
938  * Get the IPv6 address for the given profile, if the data session is connected and has an IPv6
939  * address.
940  *
941  * @return
942  * - LE_OK on success
943  * - LE_OVERFLOW if the IP address would not fit in ipAddrStr
944  * - LE_FAULT for all other errors
945  *
946  * @note
947  * The process exits, if an invalid profile object is given
948  */
949 //--------------------------------------------------------------------------------------------------
951 (
952  le_mdc_ProfileRef_t profileRef,
953  ///< [IN] Query this profile object
954  char* ipAddr,
955  ///< [OUT] The IP address in dotted format
956  size_t ipAddrSize
957  ///< [IN]
958 );
959 
960 //--------------------------------------------------------------------------------------------------
961 /**
962  * Get the gateway IPv6 address for the given profile, if the data session is connected and has an
963  * IPv6 address.
964  *
965  * @return
966  * - LE_OK on success
967  * - LE_OVERFLOW if the IP address would not fit in gatewayAddrStr
968  * - LE_FAULT for all other errors
969  *
970  * @note
971  * The process exits, if an invalid profile object is given
972  */
973 //--------------------------------------------------------------------------------------------------
975 (
976  le_mdc_ProfileRef_t profileRef,
977  ///< [IN] Query this profile object
978  char* gatewayAddr,
979  ///< [OUT] The gateway IP address in dotted format
980  size_t gatewayAddrSize
981  ///< [IN]
982 );
983 
984 //--------------------------------------------------------------------------------------------------
985 /**
986  * Get the primary/secondary DNS v6 addresses, if the data session is connected and has an IPv6
987  * address.
988  *
989  * @return
990  * - LE_OK on success
991  * - LE_OVERFLOW if the IP address can't fit in buffer
992  * - LE_FAULT for all other errors
993  *
994  * @note
995  * - If only one DNS address is available, it will be returned, and an empty string will
996  * be returned for the unavailable address.
997  * - The process exits, if an invalid profile object is given
998  */
999 //--------------------------------------------------------------------------------------------------
1001 (
1002  le_mdc_ProfileRef_t profileRef,
1003  ///< [IN] Query this profile object
1004  char* dns1AddrStr,
1005  ///< [OUT] The primary DNS IP address in dotted format
1006  size_t dns1AddrStrSize,
1007  ///< [IN]
1008  char* dns2AddrStr,
1009  ///< [OUT] The secondary DNS IP address in dotted format
1010  size_t dns2AddrStrSize
1011  ///< [IN]
1012 );
1013 
1014 //--------------------------------------------------------------------------------------------------
1015 /**
1016  * Allow the caller to know if the given profile is actually supporting IPv4, if the data session
1017  * is connected.
1018  *
1019  * @return TRUE if PDP type is IPv4, FALSE otherwise.
1020  *
1021  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1022  * function will not return.
1023  */
1024 //--------------------------------------------------------------------------------------------------
1025 bool le_mdc_IsIPv4
1026 (
1027  le_mdc_ProfileRef_t profileRef
1028  ///< [IN] Query this profile object
1029 );
1030 
1031 //--------------------------------------------------------------------------------------------------
1032 /**
1033  * Allow the caller to know if the given profile is actually supporting IPv6, if the data session
1034  * is connected.
1035  *
1036  * @return TRUE if PDP type is IPv6, FALSE otherwise.
1037  *
1038  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1039  * function will not return.
1040  */
1041 //--------------------------------------------------------------------------------------------------
1042 bool le_mdc_IsIPv6
1043 (
1044  le_mdc_ProfileRef_t profileRef
1045  ///< [IN] Query this profile object
1046 );
1047 
1048 //--------------------------------------------------------------------------------------------------
1049 /**
1050  * Get the Data Bearer Technology for the given profile, if the data session is connected.
1051  *
1052  * @return
1053  * - LE_OK on success
1054  * - LE_FAULT for all other errors
1055  *
1056  * @note
1057  * The process exits, if an invalid profile object is given
1058  */
1059 //--------------------------------------------------------------------------------------------------
1061 (
1062  le_mdc_ProfileRef_t profileRef,
1063  ///< [IN] Query this profile object
1064  le_mdc_DataBearerTechnology_t* downlinkDataBearerTechPtrPtr,
1065  ///< [OUT] downlink data bearer technology
1066  le_mdc_DataBearerTechnology_t* uplinkDataBearerTechPtrPtr
1067  ///< [OUT] uplink data bearer technology
1068 );
1069 
1070 //--------------------------------------------------------------------------------------------------
1071 /**
1072  * Get number of bytes received/transmitted without error since the last reset.
1073  *
1074  * @return
1075  * - LE_OK on success
1076  * - LE_FAULT for all other errors
1077  *
1078  * @note
1079  * - The process exits, if an invalid pointer is given
1080  */
1081 //--------------------------------------------------------------------------------------------------
1083 (
1084  uint64_t* rxBytesPtr,
1085  ///< [OUT] bytes amount received since the last counter reset
1086  uint64_t* txBytesPtr
1087  ///< [OUT] bytes amount transmitted since the last counter reset
1088 );
1089 
1090 //--------------------------------------------------------------------------------------------------
1091 /**
1092  * Reset received/transmitted data flow statistics
1093  *
1094  * @return
1095  * - LE_OK on success
1096  * - LE_FAULT for all other errors
1097  */
1098 //--------------------------------------------------------------------------------------------------
1100 (
1101  void
1102 );
1103 
1104 //--------------------------------------------------------------------------------------------------
1105 /**
1106  * Set the Packet Data Protocol (PDP) for the given profile.
1107  *
1108  * @return
1109  * - LE_OK on success
1110  * - LE_BAD_PARAMETER if the PDP is not supported
1111  * - LE_FAULT if the data session is currently connected for the given profile
1112  *
1113  * @note
1114  * The process exits, if an invalid profile object is given
1115  */
1116 //--------------------------------------------------------------------------------------------------
1118 (
1119  le_mdc_ProfileRef_t profileRef,
1120  ///< [IN] Query this profile object
1121  le_mdc_Pdp_t pdp
1122  ///< [IN] The Packet Data Protocol
1123 );
1124 
1125 //--------------------------------------------------------------------------------------------------
1126 /**
1127  * Get the Packet Data Protocol (PDP) for the given profile.
1128  *
1129  * @return
1130  * - packet data protocol value
1131  *
1132  * @note
1133  * The process exits, if an invalid profile object is given
1134  */
1135 //--------------------------------------------------------------------------------------------------
1137 (
1138  le_mdc_ProfileRef_t profileRef
1139  ///< [IN] Query this profile object
1140 );
1141 
1142 //--------------------------------------------------------------------------------------------------
1143 /**
1144  * Set the Access Point Name (APN) for the given profile.
1145  *
1146  * The APN must be an ASCII string.
1147  *
1148  * @return
1149  * - LE_OK on success
1150  * - LE_BAD_PARAMETER if an input parameter is not valid
1151  * - LE_FAULT if the data session is currently connected for the given profile
1152  *
1153  * @note If APN is too long (max APN_NAME_MAX_LEN digits), it is a fatal error, the
1154  * function will not return.
1155  * @note
1156  * The process exits, if an invalid profile object is given
1157  */
1158 //--------------------------------------------------------------------------------------------------
1160 (
1161  le_mdc_ProfileRef_t profileRef,
1162  ///< [IN] Query this profile object
1163  const char* apnStr
1164  ///< [IN] The Access Point Name
1165 )
1166 __attribute__(( nonnull(2) ));
1167 
1168 //--------------------------------------------------------------------------------------------------
1169 /**
1170  * Set the Access Point Name (APN) for the given profile according to the SIM identification
1171  * number (ICCID). If no APN is found using the ICCID, fall back on the home network (MCC/MNC)
1172  * to determine the default APN.
1173  *
1174  * @return
1175  * - LE_OK on success
1176  * - LE_BAD_PARAMETER if an input parameter is not valid
1177  * - LE_FAULT for all other errors
1178  *
1179  * @note
1180  * The process exits if an invalid profile object is given
1181  */
1182 //--------------------------------------------------------------------------------------------------
1184 (
1185  le_mdc_ProfileRef_t profileRef
1186  ///< [IN] Query this profile object
1187 );
1188 
1189 //--------------------------------------------------------------------------------------------------
1190 /**
1191  * Get the Access Point Name (APN) for the given profile.
1192  *
1193  * @return
1194  * - LE_OK on success
1195  * - LE_BAD_PARAMETER if an input parameter is not valid
1196  * - LE_OVERFLOW if the APN is is too long
1197  * - LE_FAULT on failed
1198  *
1199  * @note
1200  * The process exits, if an invalid profile object is given
1201  */
1202 //--------------------------------------------------------------------------------------------------
1204 (
1205  le_mdc_ProfileRef_t profileRef,
1206  ///< [IN] Query this profile object
1207  char* apnStr,
1208  ///< [OUT] The Access Point Name
1209  size_t apnStrSize
1210  ///< [IN]
1211 );
1212 
1213 //--------------------------------------------------------------------------------------------------
1214 /**
1215  * Set authentication property
1216  *
1217  * @return
1218  * - LE_OK on success
1219  *
1220  * @note
1221  * - The process exits, if userName or password are NULL when type is not PA_MDC_AUTH_NONE
1222  * - The process exits, if an invalid profile object is given
1223  * @note If userName is too long (max USER_NAME_MAX_LEN digits), it is a fatal error, the
1224  * function will not return.
1225  * @note If password is too long (max PASSWORD_NAME_MAX_LEN digits), it is a fatal error, the
1226  * function will not return.
1227  * @note Both PAP and CHAP authentification can be set for 3GPP network: in this case, the device
1228  * decides which authentication procedure is performed. For example, the device can have a
1229  * policy to select the most secure authentication mechanism.
1230  *
1231  */
1232 //--------------------------------------------------------------------------------------------------
1234 (
1235  le_mdc_ProfileRef_t profileRef,
1236  ///< [IN] Query this profile object
1237  le_mdc_Auth_t type,
1238  ///< [IN] Authentication type
1239  const char* userName,
1240  ///< [IN] UserName used by authentication
1241  const char* password
1242  ///< [IN] Password used by authentication
1243 )
1244 __attribute__(( nonnull(3,4) ));
1245 
1246 //--------------------------------------------------------------------------------------------------
1247 /**
1248  * Get authentication property
1249  *
1250  * @return
1251  * - LE_OK on success
1252  * - LE_BAD_PARAMETER if an input parameter is not valid
1253  * - LE_OVERFLOW userName or password are too small
1254  * - LE_FAULT on failed
1255  *
1256  * @note
1257  * The process exits, if an invalid profile object is given
1258  */
1259 //--------------------------------------------------------------------------------------------------
1261 (
1262  le_mdc_ProfileRef_t profileRef,
1263  ///< [IN] Query this profile object
1264  le_mdc_Auth_t* typePtr,
1265  ///< [OUT] Authentication type
1266  char* userName,
1267  ///< [OUT] UserName used by authentication
1268  size_t userNameSize,
1269  ///< [IN]
1270  char* password,
1271  ///< [OUT] Password used by authentication
1272  size_t passwordSize
1273  ///< [IN]
1274 );
1275 
1276 //--------------------------------------------------------------------------------------------------
1277 /**
1278  * Get the number of profiles on the modem.
1279  *
1280  * @return
1281  * - number of profiles existing on modem
1282  */
1283 //--------------------------------------------------------------------------------------------------
1284 uint32_t le_mdc_NumProfiles
1285 (
1286  void
1287 );
1288 
1289 //--------------------------------------------------------------------------------------------------
1290 /**
1291  * Get a profile selected by its APN
1292  *
1293  * @return
1294  * - LE_OK on success
1295  * - LE_BAD_PARAMETER if an input parameter is not valid
1296  * - LE_NOT_FOUND if the requested APN is not found
1297  */
1298 //--------------------------------------------------------------------------------------------------
1300 (
1301  const char* apnStr,
1302  ///< [IN] The Access Point Name
1303  le_mdc_ProfileRef_t* profileRefPtr
1304  ///< [OUT] profile reference
1305 )
1306 __attribute__(( nonnull(1) ));
1307 
1308 //--------------------------------------------------------------------------------------------------
1309 /**
1310  * Called to get the disconnection reason.
1311  *
1312  * @return The disconnection reason.
1313  *
1314  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1315  * function will not return.
1316  */
1317 //--------------------------------------------------------------------------------------------------
1319 (
1320  le_mdc_ProfileRef_t profileRef
1321  ///< [IN] profile reference
1322 );
1323 
1324 //--------------------------------------------------------------------------------------------------
1325 /**
1326  * Called to get the platform specific disconnection code.
1327  *
1328  * @return The platform specific disconnection code.
1329  *
1330  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1331  * function will not return.
1332  */
1333 //--------------------------------------------------------------------------------------------------
1335 (
1336  le_mdc_ProfileRef_t profileRef
1337  ///< [IN] profile reference
1338 );
1339 
1340 //--------------------------------------------------------------------------------------------------
1341 /**
1342  * Called to get the platform specific connection failure reason.
1343  *
1344  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1345  * function will not return.
1346  */
1347 //--------------------------------------------------------------------------------------------------
1349 (
1350  le_mdc_ProfileRef_t profileRef,
1351  ///< [IN] profile reference
1352  int32_t* failureTypePtr,
1353  ///< [OUT] platform specific failure type
1354  int32_t* failureCodePtr
1355  ///< [OUT] platform specific failure code
1356 );
1357 
1358 //--------------------------------------------------------------------------------------------------
1359 /**
1360  * Map a profile on a network interface
1361  *
1362  * * @return
1363  * - LE_OK on success
1364  * - LE_UNSUPPORTED if not supported by the target
1365  * - LE_FAULT for all other errors
1366  *
1367  */
1368 //--------------------------------------------------------------------------------------------------
1370 (
1371  le_mdc_ProfileRef_t profileRef,
1372  ///< [IN] Profile reference
1373  const char* interfaceName
1374  ///< [IN] Network interface name
1375 )
1376 __attribute__(( nonnull(2) ));
1377 
1378 #endif // LE_MDC_INTERFACE_H_INCLUDE_GUARD
le_result_t le_mdc_GetSessionState(le_mdc_ProfileRef_t profileRef, le_mdc_ConState_t *connectionStatePtr)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:524
le_mdc_SessionStateHandlerRef_t le_mdc_AddSessionStateHandler(le_mdc_ProfileRef_t profileRef, le_mdc_SessionStateHandlerFunc_t handlerPtr, void *contextPtr)
Suspending data session.
Definition: le_mdc_interface.h:455
Data session is disconnected.
Definition: le_mdc_interface.h:449
le_mdc_DataBearerTechnology_t
Definition: le_mdc_interface.h:375
le_mdc_Pdp_t le_mdc_GetPDP(le_mdc_ProfileRef_t profileRef)
void le_mdc_StartSessionAsync(le_mdc_ProfileRef_t profileRef, le_mdc_SessionHandlerFunc_t handlerPtr, void *contextPtr)
void(* le_mdc_MtPdpSessionStateHandlerFunc_t)(le_mdc_ConState_t ConnectionState, void *contextPtr)
Definition: le_mdc_interface.h:603
Dual Cell - HSPA+.
Definition: le_mdc_interface.h:391
le_result_t le_mdc_GetDataBearerTechnology(le_mdc_ProfileRef_t profileRef, le_mdc_DataBearerTechnology_t *downlinkDataBearerTechPtrPtr, le_mdc_DataBearerTechnology_t *uplinkDataBearerTechPtrPtr)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:512
Data session is connected.
Definition: le_mdc_interface.h:453
struct le_mdc_SessionStateHandler * le_mdc_SessionStateHandlerRef_t
Definition: le_mdc_interface.h:571
IPv4 and IPv6.
Definition: le_mdc_interface.h:422
le_result_t
Definition: le_basics.h:35
bool le_mdc_IsIPv4(le_mdc_ProfileRef_t profileRef)
IPv4.
Definition: le_mdc_interface.h:418
void(* le_mdc_SessionStateHandlerFunc_t)(le_mdc_ProfileRef_t profileRef, le_mdc_ConState_t ConnectionState, void *contextPtr)
Definition: le_mdc_interface.h:588
Incoming data session (MT-PDP context request)
Definition: le_mdc_interface.h:457
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:556
Platform specific code.
Definition: le_mdc_interface.h:558
le_mdc_Pdp_t
Definition: le_mdc_interface.h:414
le_mdc_DisconnectionReason_t
Definition: le_mdc_interface.h:468
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:550
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:506
le_result_t le_mdc_GetIPv4GatewayAddress(le_mdc_ProfileRef_t profileRef, char *gatewayAddr, size_t gatewayAddrSize)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:538
le_result_t le_mdc_StopSession(le_mdc_ProfileRef_t profileRef)
le_result_t le_mdc_GetAPN(le_mdc_ProfileRef_t profileRef, char *apnStr, size_t apnStrSize)
void le_mdc_SetServerDisconnectHandler(le_mdc_DisconnectHandler_t disconnectHandler, void *contextPtr)
le_result_t le_mdc_GetIPv4DNSAddresses(le_mdc_ProfileRef_t profileRef, char *dns1AddrStr, size_t dns1AddrStrSize, char *dns2AddrStr, size_t dns2AddrStrSize)
le_result_t le_mdc_GetIPv6Address(le_mdc_ProfileRef_t profileRef, char *ipAddr, size_t ipAddrSize)
Undefined reason.
Definition: le_mdc_interface.h:560
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:554
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:478
void le_mdc_ConnectService(void)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:474
Authenticating data session.
Definition: le_mdc_interface.h:451
no authentication
Definition: le_mdc_interface.h:435
struct le_mdc_Profile * le_mdc_ProfileRef_t
Definition: le_mdc_interface.h:367
void le_mdc_StopSessionAsync(le_mdc_ProfileRef_t profileRef, le_mdc_SessionHandlerFunc_t handlerPtr, void *contextPtr)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:502
HSPA+.
Definition: le_mdc_interface.h:389
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:544
le_result_t le_mdc_GetInterfaceName(le_mdc_ProfileRef_t profileRef, char *interfaceName, size_t interfaceNameSize)
le_result_t le_mdc_SetPDP(le_mdc_ProfileRef_t profileRef, le_mdc_Pdp_t pdp)
CHAP protocol.
Definition: le_mdc_interface.h:437
WCDMA (UMTS)
Definition: le_mdc_interface.h:385
HSPA.
Definition: le_mdc_interface.h:387
bool le_mdc_IsIPv6(le_mdc_ProfileRef_t profileRef)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:528
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:498
Enhanced GPRS (EDGE)
Definition: le_mdc_interface.h:383
IPv6.
Definition: le_mdc_interface.h:420
Unknown.
Definition: le_mdc_interface.h:416
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:522
Unknown.
Definition: le_mdc_interface.h:377
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:508
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:510
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:526
le_result_t le_mdc_GetBytesCounters(uint64_t *rxBytesPtr, uint64_t *txBytesPtr)
le_result_t le_mdc_MapProfileOnNetworkInterface(le_mdc_ProfileRef_t profileRef, const char *interfaceName)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:494
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:548
CDMA2000 HRPD (1xEV-DO)
Definition: le_mdc_interface.h:399
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:536
le_mdc_DisconnectionReason_t le_mdc_GetDisconnectionReason(le_mdc_ProfileRef_t profileRef)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:516
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:546
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:542
void(* le_mdc_DisconnectHandler_t)(void *)
Definition: le_mdc_interface.h:187
le_result_t le_mdc_GetAuthentication(le_mdc_ProfileRef_t profileRef, le_mdc_Auth_t *typePtr, char *userName, size_t userNameSize, char *password, size_t passwordSize)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:492
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:476
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:552
void le_mdc_GetPlatformSpecificFailureConnectionReason(le_mdc_ProfileRef_t profileRef, int32_t *failureTypePtr, int32_t *failureCodePtr)
void le_mdc_RemoveSessionStateHandler(le_mdc_SessionStateHandlerRef_t handlerRef)
void le_mdc_RemoveMtPdpSessionStateHandler(le_mdc_MtPdpSessionStateHandlerRef_t handlerRef)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:490
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:484
le_result_t le_mdc_TryConnectService(void)
le_mdc_ProfileRef_t le_mdc_GetProfile(uint32_t index)
Modem has no service.
Definition: le_mdc_interface.h:470
int32_t le_mdc_GetPlatformSpecificDisconnectionCode(le_mdc_ProfileRef_t profileRef)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:472
CDMA2000 EHRPD.
Definition: le_mdc_interface.h:403
le_result_t le_mdc_StartSession(le_mdc_ProfileRef_t profileRef)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:534
le_result_t le_mdc_ResetBytesCounter(void)
void le_mdc_DisconnectService(void)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:514
struct le_mdc_MtPdpSessionStateHandler * le_mdc_MtPdpSessionStateHandlerRef_t
Definition: le_mdc_interface.h:579
le_result_t le_mdc_GetIPv4Address(le_mdc_ProfileRef_t profileRef, char *ipAddr, size_t ipAddrSize)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:520
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:532
le_mdc_MtPdpSessionStateHandlerRef_t le_mdc_AddMtPdpSessionStateHandler(le_mdc_SessionStateHandlerFunc_t handlerPtr, void *contextPtr)
le_result_t le_mdc_SetAuthentication(le_mdc_ProfileRef_t profileRef, le_mdc_Auth_t type, const char *userName, const char *password)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:480
le_result_t le_mdc_GetIPv6GatewayAddress(le_mdc_ProfileRef_t profileRef, char *gatewayAddr, size_t gatewayAddrSize)
le_mdc_ConState_t
Definition: le_mdc_interface.h:447
le_result_t le_mdc_GetProfileFromApn(const char *apnStr, le_mdc_ProfileRef_t *profileRefPtr)
LTE.
Definition: le_mdc_interface.h:393
le_mdc_Auth_t
Definition: le_mdc_interface.h:433
GPRS.
Definition: le_mdc_interface.h:381
PAP protocol.
Definition: le_mdc_interface.h:436
uint32_t le_mdc_GetProfileIndex(le_mdc_ProfileRef_t profileRef)
uint32_t le_mdc_NumProfiles(void)
le_result_t le_mdc_SetDefaultAPN(le_mdc_ProfileRef_t profileRef)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:482
void(* le_mdc_SessionHandlerFunc_t)(le_mdc_ProfileRef_t profileRef, le_result_t result, void *contextPtr)
Definition: le_mdc_interface.h:617
le_result_t le_mdc_RejectMtPdpSession(le_mdc_ProfileRef_t profileRef)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:530
CDMA2000 HRPD (1xEV-DO RevA)
Definition: le_mdc_interface.h:401
le_result_t le_mdc_SetAPN(le_mdc_ProfileRef_t profileRef, const char *apnStr)
GSM.
Definition: le_mdc_interface.h:379
TD-SCDMA.
Definition: le_mdc_interface.h:395
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:504
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:518
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:500
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:496
cf. 3GPP 24.008 Annex I2
Definition: le_mdc_interface.h:540
CDMA2000 1X.
Definition: le_mdc_interface.h:397
le_result_t le_mdc_GetIPv6DNSAddresses(le_mdc_ProfileRef_t profileRef, char *dns1AddrStr, size_t dns1AddrStrSize, char *dns2AddrStr, size_t dns2AddrStrSize)
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:488
cf. 3GPP 24.008 Annex I1
Definition: le_mdc_interface.h:486