le_mdc_interface.h

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