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