blob: b6071d8b543f10cc200ed72efcab2c6e898a1933 [file] [log] [blame]
#ifndef __QL_NET_COMMON_H__
#define __QL_NET_COMMON_H__
#include <stdint.h>
/** Maximum length of the APN name. */
#define QL_NET_MAX_APN_NAME_LEN 150
/** Maximum length of the APN user name. */
#define QL_NET_MAX_APN_USERNAME_LEN 127
/** Maximum length of the password. */
#define QL_NET_MAX_APN_PASSWORD_LEN 127
/** Maximum address length. */
#define QL_NET_MAX_ADDR_LEN 46
// 1 - 7 (ASR 1806)
#define QL_NET_MAX_DATA_CALL_NUM 7
/** Maximum lenth of the device name. */
#define QL_NET_MAX_NAME_LEN 32
#define QL_NET_MAX_RECONNECT_INTERVAL_LEN 20
#define QL_NET_MAX_APN_ID QL_NET_MAX_DATA_CALL_NUM
#define QL_NET_USB_DEV_MAX_NUM QL_NET_MAX_DATA_CALL_NUM
#define QL_NET_MAX_LANHOST_NUM 18
#define QL_NET_MAX_LANHOST_NAME_LEN 64
typedef enum {
QL_NET_DATA_CALL_STATUS_MIN = -1,
QL_NET_DATA_CALL_STATUS_NONE = 0x0, /**< Call state is NONE */
QL_NET_DATA_CALL_STATUS_CREATED = 0x1, /**< Call state was created */
QL_NET_DATA_CALL_STATUS_IDLE = 0x2, /**< Call state is IDLE. */
QL_NET_DATA_CALL_STATUS_CONNECTING = 0x3, /**< Call is connecting. */
QL_NET_DATA_CALL_STATUS_PARTIAL_V4_CONNECTED = 0x4, /**< V4V6 mode, V4 is connected. */
QL_NET_DATA_CALL_STATUS_PARTIAL_V6_CONNECTED = 0x5, /**< V4V6 mode, V6 is connected. */
QL_NET_DATA_CALL_STATUS_CONNECTED = 0x6, /**< Call is connected. */
QL_NET_DATA_CALL_STATUS_DISCONNECTED = 0x7, /**< Call is disconnected. */
QL_NET_DATA_CALL_STATUS_ERROR = 0x8, /**< Error ocurred */
QL_NET_DATA_CALL_STATUS_DELETED = 0x9, /**< Data Call was deleted */
QL_NET_DATA_CALL_STATUS_MAX
} QL_NET_DATA_CALL_STATUS_E;
#define IS_QL_NET_DATA_CALL_STATUS_VALID(status) \
((status)>QL_NET_DATA_CALL_STATUS_MIN && (status)<QL_NET_DATA_CALL_STATUS_MAX)
typedef enum {
QL_NET_DATA_CALL_RECONNECT_MODE_MIN = -1,
QL_NET_DATA_CALL_RECONNECT_DISABLE = 0x0,
QL_NET_DATA_CALL_RECONNECT_NORMAL = 0x1, /**< Normal mode, interval defined by reconnect_interval[0] in sec */
QL_NET_DATA_CALL_RECONNECT_MODE_1 = 0x2, /**< Mode 1, time interval list defined by reconnect_interval in sec,
if the time interval list is T1,T2,T3...Tn, the reconnection interval is T1,T2,T3...Tn,Tn,Tn...Tn */
QL_NET_DATA_CALL_RECONNECT_MODE_2 = 0x3, /**< Mode 2, time interval list defined by reconnect_interval in sec,
if the time interval list is T1,T2,T3...Tn, the reconnection interval is T1,T2,T3..Tn,T1,T2,T3..Tn,T1.. */
QL_NET_DATA_CALL_RECONONECT_MODE_MAX
} QL_NET_DATA_CALL_RECONNECT_MODE_E;
#define IS_QL_NET_DATA_CALL_RECONNECT_MODE_VALID(mode) \
((mode)>QL_NET_DATA_CALL_RECONNECT_MODE_MIN && (mode)<QL_NET_DATA_CALL_RECONONECT_MODE_MAX)
typedef enum {
QL_NET_IP_VER_MIN = -0,
QL_NET_IP_VER_V4 = 0x1,
QL_NET_IP_VER_V6 = 0x2,
QL_NET_IP_VER_V4V6 = 0x3,
QL_NET_IP_VER_MAX
} QL_NET_IP_VER_E;
#define IS_QL_NET_IP_VER_VALID(ver) \
((ver)>QL_NET_IP_VER_MIN && (ver)<QL_NET_IP_VER_MAX)
typedef enum {
QL_NET_AUTH_PREF_MIN = -1,
QL_NET_AUTH_PREF_PAP_CHAP_NOT_ALLOWED = 0,
QL_NET_AUTH_PREF_PAP_ONLY_ALLOWED = 1,
QL_NET_AUTH_PREF_CHAP_ONLY_ALLOWED = 2,
QL_NET_AUTH_PREF_PAP_CHAP_BOTH_ALLOWED = 3,
QL_NET_AUTH_PREF_MAX
} QL_NET_AUTH_PREF_E;
#define IS_QL_NET_AUTH_PREF_VALID(pref) \
((pref)>QL_NET_AUTH_PREF_MIN && (pref)<QL_NET_AUTH_PREF_MAX)
typedef enum {
QL_NET_USB_DEV_TYPE_MIN = 0,
QL_NET_USB_DEV_TYPE_ECM = 1,
QL_NET_USB_DEV_TYPE_NCM = 2,
QL_NET_USB_DEV_TYPE_RNDIS = 3,
QL_NET_USB_DEV_TYPE_MBIM = 4,
QL_NET_USB_DEV_TYPE_MAX
} QL_NET_USB_DEV_TYPE_E;
typedef enum {
QL_NET_USB_DEV_STATUS_MIN = -1,
QL_NET_USB_DEV_STATUS_NONE = 0,
QL_NET_USB_DEV_STATUS_LINKDOWN = 1,
QL_NET_USB_DEV_STATUS_LINKUP = 2,
QL_NET_USB_DEV_STATUS_MAX
} QL_NET_USB_DEV_STATUS_E;
typedef enum {
QL_NET_NF_CMD_FORMAT_MIN = -1,
QL_NET_NF_CMD_FORMAT_COMMON = 0,
QL_NET_NF_CMD_FORMAT_JSON = 1,
QL_NET_NF_CMD_FORMAT_MAX
} QL_NET_NF_CMD_FORMAT_E;
typedef enum {
QL_LANHOST_EVENT_ADD = 0,
QL_LANHOST_EVENT_DEL,
QL_LANHOST_EVENT_UPDATE,
} QL_LANHOST_EVENT_TYPE_E;
typedef struct {
char device[QL_NET_MAX_NAME_LEN];
QL_NET_USB_DEV_TYPE_E type;
QL_NET_USB_DEV_STATUS_E status;
int8_t inst_id;
} ql_net_usb_dev_t;
typedef struct {
char addr[QL_NET_MAX_ADDR_LEN]; /**< IPV4 address format string */
char netmask[QL_NET_MAX_ADDR_LEN]; /**< Subnet mask, format */
uint8_t subnet_bits; /**< Subnet mask bit number, exp:
255.255.255.0 is 24, 255.255.0.0 is 16 */
char gateway[QL_NET_MAX_ADDR_LEN]; /**< Gateway, IPV4 address*/
char dnsp[QL_NET_MAX_ADDR_LEN]; /**< Primary DNS server address. */
char dnss[QL_NET_MAX_ADDR_LEN]; /**< Secondary DNS server address. */
} ql_net_addr_t;
typedef struct
{
char addr[QL_NET_MAX_ADDR_LEN]; /**< IPV6 address format string */
char prefix[QL_NET_MAX_ADDR_LEN];
int32_t prefix_bits;
char gateway[QL_NET_MAX_ADDR_LEN]; /**< Gateway address. */
char dnsp[QL_NET_MAX_ADDR_LEN]; /**< Primary DNS server address. */
char dnss[QL_NET_MAX_ADDR_LEN]; /**< Secondary DNS server address. */
} ql_net_addr6_t;
typedef struct
{
char addr[QL_NET_MAX_ADDR_LEN]; /**< IPV4 address format string */
char macaddr[18]; /**< MAC address, format: XX:XX:XX:XX:XX:XX */
char name[QL_NET_MAX_LANHOST_NAME_LEN]; /**< hostname */
char ifname[QL_NET_MAX_NAME_LEN]; /**< device name */
int uptime; /**< online time in sec */
} ql_lanhost_t;
#endif