WL865E4-P  36.07.001
m2mb_wlan_driver.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved.<<< */
26 /* GLOBAL DECLARATIONS ==========================================================================*/
27 #ifndef M2MB_WLAN_DRIVER_H_
28 #define M2MB_WLAN_DRIVER_H_
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
53 /*-----------------------------------------------------------------------------------------------*/
54 
59 /*-----------------------------------------------------------------------------------------------*/
60 
61 /*===============================================================================================*/
62 
63 /* Global typedefs ==============================================================================*/
64 
65 
66 #define M2MB_WLAN_MAC_LEN 6
67 #define M2MB_WLAN_MAX_SSID_LEN 32
69 #define M2MB_WLAN_MIN_PASSPHRASE_LEN 8
70 #define M2MB_WLAN_MAX_PASSPHRASE_LEN 64
72 #define M2MB_WLAN_NUM_OF_DEVICES 2
75 #define M2MB_WLAN_MIN_WEP_KEY_SIZE 10
76 #define M2MB_WLAN_MAX_WEP_KEY_SIZE 26
78 #define M2MB_WLAN_WPS_MAX_KEY_LEN 64
80 #define DEV_NUM 2
89 typedef struct M2MB_WLAN_BSS_SCAN_INFO_S
90 {
91  UINT8 channel;
92  UINT8 ssid_Length;
93  UINT8 rssi;
95  UINT8 security_Enabled;
97  UINT16 beacon_Period;
98  UINT8 preamble;
99  UINT8 bss_type;
102  UINT8 rsn_Cipher;
103  UINT8 rsn_Auth;
104  UINT8 wpa_Cipher;
105  UINT8 wpa_Auth;
106  UINT16 caps;
107  UINT8 wep_Support;
108  UINT8 reserved;
119 typedef struct M2MB_WLAN_BSS_SCAN_CB_INFO_S
120 {
122  VOID *scan_info;
125 
132 typedef struct M2MB_WEP_KEY_INFO_S
133 {
138 
147 typedef struct M2MB_STA_BMISS_CONFIG_S
148 {
155 
156 
165 typedef struct M2MB_CONNECTION_DATA_S
166 {
183  UINT32 bssCon;
203 
215 typedef enum
216 {
237 typedef enum
238 {
256 typedef enum
257 {
266 
276 typedef struct M2MB_WLAN_PROFILE_PNO_S
277 {
286  UINT8 ssid_len;
299 typedef enum
300 {
406 
408 
410 
412 
414 
416 
418 
420 
422 
424 
433 typedef enum
434 {
457 typedef enum
458 {
460  M2MB_WLAN_11N_HT20 = 0x2,
469 typedef enum
470 {
472  M2MB_WLAN_11G_MODE = 0x2,
486 typedef enum
487 {
503 typedef enum
504 {
511 typedef enum
512 {
523 typedef struct M2MB_WLAN_WPS_CREDENTIALS_S
524 {
536 typedef struct
537 {
538  UINT8 eap_flag;
539  M2MB_WLAN_8021X_METHOD_E method;
540  UINT8 id[32];
541  UINT8 username[32];
542  UINT8 password[32];
543  UINT8 ca_name[32];
544  UINT8 cert_name[32];
553 typedef struct M2MB_WLAN_WPS_CB_INFO_S
554 {
556  UINT8 error;
567 typedef enum {
582 typedef enum
583 {
591 
592 
599 typedef struct M2MB_WLAN_RAW_SEND_PARAMS_S
600 {
606  UINT32 channel;
626 typedef enum
627 {
634 
636 
642 typedef enum
643 {
648 
650 
657 typedef struct M2MB_WLAN_POWER_MODE_SETTING_S
658 {
663 
669 typedef enum
670 {
681 typedef struct
682 {
683  UINT16 idle_period_in_ms;
687  UINT16 ps_poll_num;
694  M2MB_WLAN_DTIM_POLICY_E dtim_policy;
700  UINT16 num_tx_to_wakeup;
705 
706 #define M2MB_WLAN_PROM_FILTER_SRC_ADDR 0x01
707 #define M2MB_WLAN_PROM_FILTER_DST_ADDR 0x02
708 #define M2MB_WLAN_PROM_FILTER_FRAME_TYPE 0x04
709 #define M2MB_WLAN_PROM_FILTER_FRAME_SUB_TYPE 0x08
717 typedef struct
718 {
719  UINT8 channel;
721  UINT8 filter_number;
723  UINT8 filter_flags;
726  UINT8 src_Mac[M2MB_WLAN_MAC_LEN];
730  UINT8 promisc_frametype;
732  UINT8 promisc_subtype;
735 
736 typedef struct
737 {
738  UINT8 en_dis_flag;
739  UINT8 filter_num;
742 typedef enum
743 {
745  M2MB_WLAN_MODE_STA_UP = 0x01,
750 #define ALBANIA "AL"
751 #define ARUBA "AW"
752 #define AUSTRIA "AT"
753 #define BELARUS "BY"
754 #define BELGIUM "BE"
755 #define BOSNIA_HERZEGOWANIA "BA"
756 #define BULGARIA "BG"
757 #define CAMBODIA "KH"
758 #define CROATIA "HR"
759 #define CYPRUS "CY"
761 #define CZECH "CZ"
762 #define DENMARK "DK"
763 #define ESTONIA "EE"
764 #define FINLAND "FI"
765 #define FRANCE "FR"
766 #define GERMANY "DE"
767 #define GREECE "GR"
768 #define GREENLAND "GL"
769 #define GAUTEMALA "GT"
770 #define HUNGARY "HU"
772 #define ICELAND "IS"
773 #define IRELAND "IE"
774 #define ITALY "IT"
775 #define LATVIA "LV"
776 #define LIECHTENSTEIN "LI"
777 #define LITHUANIA "LT"
778 #define LUXEMBOURG "LU"
779 #define MACEDONIA "MK"
780 #define MALAWI "MW"
781 #define MALTA "MT"
783 #define MONACO "MC"
784 #define NETHERLANDS "NL"
785 #define NETHERLAND_ANTILLES "AN"
786 #define NORWAY "NO"
787 #define OMAN "OM"
788 #define POLAND "PL"
789 #define PORTUGAL "PT"
790 #define ROMANIA "RO"
791 #define MONTENEGRO "ME"
792 #define SERBIA "RS"
793 
794 #define SLOVAKIA "SK"
795 #define SLOVENIA "SI"
796 #define SPAIN "ES"
797 #define SWEDEN "SE"
798 #define SWITZERLAND "CH"
799 #define TURKEY "TR"
800 #define UNITED_KINGDOM "GB"
801 #define ZIMBABWE "ZW"
802 #define AFGHANISTAN "AF"
803 #define BHUTAN "BT"
805 #define CHAD "TD"
806 #define ETHIOPIA "ET"
807 #define FRENCH_GUIANA "GF"
808 #define FRENCH_POLYNESIA "PF"
809 #define GUADELOUPE "GP"
810 #define LESOTHO "LS"
811 #define MARTINIQUE "MQ"
812 #define MAYOTTE "YT"
813 #define MOLDOVA "MD"
814 #define MONTENEGRO "ME"
816 #define REUNION "RE"
817 #define SAINT_BARTHELEMY "BL"
818 #define SAINT_MARTIN "MF"
819 #define SAINT_PIERRE_AND_MIQUELON "PM"
820 #define SAINT_VINCENT_AND_THE_GRENADIENS "VC"
821 #define SAMOA "WS"
822 #define SURINAME "SR"
823 #define TOGO "TG"
824 #define WALLIS_AND_FUTUNA "WF"
825 #define EGYPT "EG"
827 #define ISRAEL "IL"
828 #define KUWAIT "KW"
829 #define MOROCCO "MA"
830 #define TUNISIA "TN"
831 #define UZBEKISTAN "UZ"
832 #define ARMENIA "AM"
833 #define AZERBAIJAN "AZ"
834 #define GEORGIA "GE"
835 #define BELIZE "BZ"
836 #define RUSSIA "RU"
838 #define UKRAINE "UA"
839 #define DOMINICAN_REPUBLIC "DO"
840 #define EL_SALVADOR "SV"
841 #define PANAMA "PA"
842 #define DOMINICA "DM"
843 #define BARBADOS "BB"
844 #define CHINA "CN"
845 #define URUGUAY "UY"
846 #define VENEZUELA "VE"
847 #define ARGENTINA "AR"
849 #define AUSTRALIA "AU"
850 #define BRAZIL "BR"
851 #define CANADA "CA"
852 #define COLOMBIA "CO"
853 #define COSTA_RICA "CR"
854 #define ECUADOR "EC"
855 #define GRENADA "GD"
856 #define GUAM "GU"
857 #define HAITI "HT"
858 #define HONDURAS "HN"
860 #define HONG_KONG "HK"
861 #define JAMAICA "JM"
862 #define LEBANON "LB"
863 #define MACAU "MO"
864 #define MEXICO "MX"
865 #define NEW_ZEALAND "NZ"
866 #define PERU "PE"
867 #define PHILIPPINES "PH"
868 #define PUERTO_RICO "PR"
869 #define RWANDA "RW"
871 #define SAUDI_ARABIA "SA"
872 #define SINGAPORE "SG"
873 #define SOUTH_AFRICA "ZA"
874 #define TAIWAN "TW"
875 #define THAILAND "TH"
876 #define TRINIDAD_Y_TOBAGO "TT"
877 #define UGANDA "UG"
878 #define UAE "AE"
879 #define UNITED_STATES "US"
880 #define VIET_NAM "VN"
882 #define AMERICAN_SAMOA "AS"
883 #define BAHAMAS "BS"
884 #define BERMUDA "BM"
885 #define BURKINA_FASO "BF"
886 #define CAYMAN_ISLANDS "KY"
887 #define CENTRAL_AFRICA_REPUBLIC "CF"
888 #define CHRISTMAS_ISLAND "CX"
889 #define DIVOIRE "CI"
890 #define GHANA "GH"
891 #define MARSHAL_ISLANDS "MH"
893 #define MAURITIUS "MU"
894 #define MICRONESIA "FM"
895 #define MONGOLIA "MN"
896 #define NICARAGUA "NI"
897 #define NORTHERN_MARIANA_ISLANDS "MP"
898 #define PALAU "PW"
899 #define PARAGUAY "PY"
900 #define SENEGAL "SN"
901 #define TURKS_AND_CAICOS "TC"
902 #define VANUATU "VU"
904 #define US_VIRGIN_ISLANDS "VI"
905 #define AUSTRALIA_AP "AU"
906 #define MALAYSIA "MY"
907 #define BANGLADESH "BD"
908 #define PAKISTAN "PK"
909 #define QATAR "QA"
910 #define GUYANA "GY"
911 #define TANZANIA "TZ"
912 #define INDONESIA "ID"
913 #define JORDAN "JO"
915 #define BAHRAIN "BH"
916 #define BRUNEI_DARUSSALAM "BN"
917 #define CHILE "CL"
918 #define INDIA "IN"
919 #define NEPAL "NP"
920 #define MALDIVES "MV"
921 #define BOLIVIA "BO"
922 #define NIGERIA "NG"
923 #define KOREA_ROC "KR"
924 #define SAINT_KITTS_AND_NEVIS "KN"
926 #define SAINT_LUCIA "LC"
927 #define KENYA "KE"
928 #define ALGERIA "DZ"
929 #define JAPAN "JP"
930 /*===============================================================================================*/
939 typedef VOID (* M2MB_WLAN_CALLBACK)(UINT8 device_id, UINT8 event_id, INT32 status, VOID *data);
940 
941 #endif
942 
943 /* External variables ===========================================================================*/
944 
945 /* External functions ===========================================================================*/
946 
947 
948 /* Global functions =============================================================================*/
949 
950 /*-----------------------------------------------------------------------------------------------*/
951 
979 /*-----------------------------------------------------------------------------------------------*/
981 
982 /*-----------------------------------------------------------------------------------------------*/
1048 /*-----------------------------------------------------------------------------------------------*/
1050  M2MB_WLAN_CALLBACK m2m_wlan_user_cb, VOID *appCtx, UINT8 *device_id);
1051 
1052 /*-----------------------------------------------------------------------------------------------*/
1053 
1146 /*-----------------------------------------------------------------------------------------------*/
1147 INT8 m2mb_wlan_scan( UINT8 device_id, UINT8 *ssid, UINT8 no_of_channels,
1148  UINT8 *channel_list, UINT8 scan_type, UINT32 num_of_scan_entries,
1149  M2MB_WLAN_BSS_SCAN_INFO_T *result_buff );
1150 
1151 /*-----------------------------------------------------------------------------------------------*/
1152 
1229 /*-----------------------------------------------------------------------------------------------*/
1230 INT8 m2mb_wlan_connect ( UINT8 device_id, UINT8 *ssid );
1231 
1232 /*-----------------------------------------------------------------------------------------------*/
1233 
1290 /*-----------------------------------------------------------------------------------------------*/
1291 INT8 m2mb_wlan_disconnect( UINT8 device_id );
1292 
1293 /*-----------------------------------------------------------------------------------------------*/
1294 
1352 /*-----------------------------------------------------------------------------------------------*/
1353 INT32 m2mb_wlan_get_param( UINT8 device_id, M2MB_WLAN_PARAM_FLAG_E flag, void *data );
1354 
1355 /*-----------------------------------------------------------------------------------------------*/
1356 
1415 /*-----------------------------------------------------------------------------------------------*/
1416 INT32 m2mb_wlan_set_param ( UINT8 device_id, M2MB_WLAN_PARAM_FLAG_E flag, VOID *data );
1417 
1418 /*-----------------------------------------------------------------------------------------------*/
1419 
1453 /*-----------------------------------------------------------------------------------------------*/
1455 
1456 /*-----------------------------------------------------------------------------------------------*/
1457 
1503 /*-----------------------------------------------------------------------------------------------*/
1505 
1506 /*-----------------------------------------------------------------------------------------------*/
1507 
1590 /*-----------------------------------------------------------------------------------------------*/
1591 INT8 m2mb_wlan_create( UINT8 device_id );
1592 
1593 /*-----------------------------------------------------------------------------------------------*/
1594 
1651 /*-----------------------------------------------------------------------------------------------*/
1652 INT8 m2mb_wlan_register_cb(UINT8 device_id, M2MB_WLAN_CALLBACK m2m_wlan_cb,
1653  VOID *ctx);
1654 
1655 /*-----------------------------------------------------------------------------------------------*/
1656 
1716 /*-----------------------------------------------------------------------------------------------*/
1718  VOID *ctx);
1719 
1720 /*-----------------------------------------------------------------------------------------------*/
1721 
1802 /*-----------------------------------------------------------------------------------------------*/
1804  M2MB_WLAN_WPS_CONNECT_ACTION_E connect_action, UINT8 *pin, UINT8 *ssid);
1805 /*-----------------------------------------------------------------------------------------------*/
1841 /*-----------------------------------------------------------------------------------------------*/
1842 INT8 m2mb_wlan_status_get(INT8 device_id);
1843 
1844 /*-----------------------------------------------------------------------------------------------*/
1897 /*-----------------------------------------------------------------------------------------------*/
1899  M2MB_WLAN_MGMT_FRAME_TYPE_E frame_type, INT8* oui, INT8* vndr_spefc_data);
1900 /*-----------------------------------------------------------------------------------------------*/
1946 /*-----------------------------------------------------------------------------------------------*/
1948 /*-----------------------------------------------------------------------------------------------*/
1949 
1998 /*-----------------------------------------------------------------------------------------------*/
2000 /*-----------------------------------------------------------------------------------------------*/
2001 
2002 
2004 
2008 /*-----------------------------------------------------------------------------------------------*/
2009 
struct M2MB_WLAN_RAW_SEND_PARAMS_S M2MB_WLAN_RAW_SEND_PARAMS_T
802.11 RAW frame.
Beacon miss parameters setting in firmware.
unsigned char UINT8
Definition: m2mb_types.h:83
M2MB_WLAN_DTIM_POLICY_E
DTIM policies.
M2MB_WLAN_ENCRYPT_TYPE_E encryption_Type
M2MB_WLAN_WPS_MODE_E
WPS methods.
UINT8 peer_dev_addr[M2MB_WLAN_MAC_LEN]
UINT8 addr4[M2MB_WLAN_MAC_LEN]
WPS cb information.
INT8 m2mb_wlan_interface_init(M2MB_WLAN_MODE_E mode, M2MB_WLAN_CALLBACK m2m_wlan_user_cb, VOID *appCtx, UINT8 *device_id)
WLAN Interface Initialization.
VOID(* M2MB_WLAN_CALLBACK)(UINT8 device_id, UINT8 event_id, INT32 status, VOID *data)
WLAN call back prototype.
struct M2MB_WLAN_WPS_CB_INFO_S M2MB_WLAN_WPS_CB_INFO_T
WPS cb information.
M2MB_WLAN_AUTH_TYPE_E auth_Mode
INT32 m2mb_wlan_add_ie_mgmt_frames(UINT8 device_id, M2MB_WLAN_MGMT_FRAME_TYPE_E frame_type, INT8 *oui, INT8 *vndr_spefc_data)
Adding information element for mgmt frames.
INT32 m2mb_wlan_wps_start(UINT8 device_id, M2MB_WLAN_WPS_MODE_E method, M2MB_WLAN_WPS_CONNECT_ACTION_E connect_action, UINT8 *pin, UINT8 *ssid)
This API is part of WPS procedure.
UINT8 addr3[M2MB_WLAN_MAC_LEN]
UINT8 key[M2MB_WLAN_MAX_WEP_KEY_SIZE]
UINT8 mac_Addr[M2MB_WLAN_MAC_LEN]
INT32 m2mb_wlan_send_raw_packet(UINT8 device_id, M2MB_WLAN_RAW_SEND_PARAMS_T *params)
API to send raw packets in the air.
struct M2MB_WLAN_PROFILE_PNO_S M2MB_WLAN_PROFILE_PNO_T
Preferred Network Offload setting in firmware.
M2MB_WLAN_PARAM_FLAG_E
WLAN interface set or get flags.
#define M2MB_WLAN_MAC_LEN
UINT8 addr2[M2MB_WLAN_MAC_LEN]
struct M2MB_WLAN_BSS_SCAN_INFO_S M2MB_WLAN_BSS_SCAN_INFO_T
Structure of members for scan results.
M2MB_WLAN_RAW_MODE_HEADER_TYPE_E
802.11 header types.
INT8 m2mb_wlan_init()
WLAN module initialization.
UINT8 ssid[M2MB_WLAN_MAX_SSID_LEN]
struct M2MB_WLAN_POWER_MODE_SETTING_S M2MB_WLAN_POWER_MODE_SETTING_T
Data structure for power mode setting.
struct M2MB_WLAN_BSS_SCAN_CB_INFO_S M2MB_WLAN_BSS_SCAN_CB_INFO_T
Structure to get the count for scan results.
UINT8 addr1[M2MB_WLAN_MAC_LEN]
M2MB_WLAN_AUTH_TYPE_E auth_type
signed char INT8
Definition: m2mb_types.h:78
INT8 m2mb_wlan_disconnect(UINT8 device_id)
Disconnects a device from a network.
UINT8 mac_addr[M2MB_WLAN_MAC_LEN]
M2MB_WLAN_WPS_CONNECT_ACTION_E
action after WPS procedure success.
M2MB_WLAN_POWER_MODULE_E
power save modes.
unsigned short UINT16
Definition: m2mb_types.h:84
UINT8 ssid[M2MB_WLAN_MAX_SSID_LEN]
UINT8 key[M2MB_WLAN_WPS_MAX_KEY_LEN+1]
Structure of members for scan results.
M2MB_WLAN_CB_ID_E
Events for an application registered CB functions.
M2MB_WLAN_AUTH_TYPE_E
Different authentication modes supported by WLAN.
M2MB_WLAN_11N_HT_E
11n HT configurations.
unsigned long int UINT32
Definition: m2mb_types.h:85
INT8 m2mb_wlan_scan(UINT8 device_id, UINT8 *ssid, UINT8 no_of_channels, UINT8 *channel_list, UINT8 scan_type, UINT32 num_of_scan_entries, M2MB_WLAN_BSS_SCAN_INFO_T *result_buff)
This API is used to initiate a wireless scan to find nearby access points m2mb_wlan_init and m2mb_wla...
M2MB_WLAN_POWER_MODE_E
power save modes.
INT8 m2mb_wlan_status_get(INT8 device_id)
L2 association status for both STA and AP modes.
M2MB_WLAN_8021X_METHOD_E
Different 802.1x methods supported by WLAN firmware.
Preferred Network Offload setting in firmware.
M2MB_WLAN_MGMT_FRAME_TYPE_E
MGMT frame types.
M2MB_WLAN_WPS_CREDENTIALS_T credential
struct M2MB_CONNECTION_DATA_S M2MB_CONNECTION_DATA_T
Connection event info for both AP and STA modes.
INT8 m2mb_wlan_register_wps_cb(UINT8 device_id, M2MB_WLAN_CALLBACK m2m_wlan_cb, VOID *ctx)
Registering a call back for handling WPS events.
INT8 m2mb_wlan_deinit()
Disables the WLAN module.
#define M2MB_WLAN_MAX_SSID_LEN
void VOID
Definition: m2mb_types.h:72
M2MB_WLAN_MODE_UP_E
struct M2MB_STA_BMISS_CONFIG_S M2MB_STA_BMISS_CONFIG_T
Beacon miss parameters setting in firmware.
Data structure for power mode setting.
INT32 m2mb_wlan_set_param(UINT8 device_id, M2MB_WLAN_PARAM_FLAG_E flag, VOID *data)
Setting the value[M2M_WLAN_PARAM_FLAG_E] to WLAN.
#define M2MB_WLAN_MAX_WEP_KEY_SIZE
M2MB_WLAN_RAW_MODE_HEADER_TYPE_E header_Type
signed int INT32
Definition: m2mb_types.h:80
WEP key info structure.
INT32 m2mb_wlan_get_param(UINT8 device_id, M2MB_WLAN_PARAM_FLAG_E flag, void *data)
Getting the value[M2M_WLAN_PARAM_FLAG_E] from WLAN.
struct M2MB_WLAN_WPS_CREDENTIALS_S M2MB_WLAN_WPS_CREDENTIALS_T
WPS credentials information.
INT8 m2mb_wlan_interface_deinit(UINT8 device_id)
Removes the interface from the WLAN driver.
M2MB_WLAN_ENCRYPT_TYPE_E encryption_type
INT8 m2mb_wlan_deregister_cb(UINT8 device_id)
Deregister the cb in WLAN driver.
INT8 m2mb_wlan_connect(UINT8 device_id, UINT8 *ssid)
This API is part of connect process in non-AP station mode.
INT8 m2mb_wlan_create(UINT8 device_id)
This API is part of create process in soft-AP mode.
UINT8 m2mb_wlan_get_active_mode()
Connection event info for both AP and STA modes.
INT8 m2mb_wlan_register_cb(UINT8 device_id, M2MB_WLAN_CALLBACK m2m_wlan_cb, VOID *ctx)
Registering a call back in WLAN driver to handle events.
Structure to get the count for scan results.
struct M2MB_WEP_KEY_INFO_S M2MB_WEP_KEY_INFO_T
WEP key info structure.
M2MB_WLAN_POWER_MODE_E power_mode
promiscuous mode filter setting.
#define M2MB_WLAN_WPS_MAX_KEY_LEN
M2MB_WLAN_ENCRYPT_TYPE_E
Different encryption modes supported by WLAN.
WPS credentials information.
M2MB_WLAN_MODE_E
WLAN interface operating modes.
M2MB_WLAN_POWER_MODULE_E power_module
M2MB_WLAN_PHY_MODE_E
802.11 PHY modes.