91 lines
2.2 KiB
C
91 lines
2.2 KiB
C
|
|
#ifndef __RWNX_MISC_H_
|
||
|
|
#define __RWNX_MISC_H_
|
||
|
|
|
||
|
|
#include "rwnx_version.h"
|
||
|
|
#include "rw_msdu.h"
|
||
|
|
|
||
|
|
#if NX_VERSION > NX_VERSION_PACK(6, 22, 0, 0)
|
||
|
|
|
||
|
|
#if CONFIG_NX_MEDIA_DYNC_DTIM
|
||
|
|
#define MM_DYNC_DTIM_DUR 200
|
||
|
|
#endif // CONFIG_NX_MEDIA_DYNC_DTIM
|
||
|
|
|
||
|
|
#if CONFIG_MQTT_ARP_ALIGN_EN
|
||
|
|
#define MM_MQTT_KEEPALIVE_MARGIN (1 * 1000000) ///< 1s
|
||
|
|
#define MM_MQTT_ARP_MARGIN (2 * 1000000) ///<2s
|
||
|
|
#endif //CONFIG_MQTT_ARP_ALIGN_EN
|
||
|
|
|
||
|
|
enum SPECIAL_FRAME_TYPE
|
||
|
|
{
|
||
|
|
S_FRAME_EAPOL = 0,
|
||
|
|
S_FRAME_DHCP,
|
||
|
|
S_FRAME_ARP,
|
||
|
|
S_FRAME_DARP,
|
||
|
|
S_FRAME_CNT_MAX,
|
||
|
|
S_FRAME_INVALID = 0xff,
|
||
|
|
};
|
||
|
|
|
||
|
|
#if CONFIG_MQTT_ARP_ALIGN_EN
|
||
|
|
///Mqtt structure
|
||
|
|
struct mm_mqtt_tag
|
||
|
|
{
|
||
|
|
/// True indicates that mqtt is valid
|
||
|
|
bool mqtt_valid;
|
||
|
|
/// True indicates that mqtt is connected
|
||
|
|
bool mqtt_conn;
|
||
|
|
/// The number of mqtt ping to align arp reply
|
||
|
|
uint8_t mqtt_num_align_arp;
|
||
|
|
/// The count of mqtt ping after last arp reply alignment
|
||
|
|
uint8_t mqtt_cnt_align_arp;
|
||
|
|
/// Mqtt keepalive period (in us)
|
||
|
|
uint32_t ping_period;
|
||
|
|
/// mqtt next ping time (in us)
|
||
|
|
uint32_t next_ping_time;
|
||
|
|
};
|
||
|
|
#endif // CONFIG_MQTT_ARP_ALIGN_EN
|
||
|
|
|
||
|
|
#if CONFIG_DHCP_PROTECT_IN_CONNECTED
|
||
|
|
enum SM_DHCP_FRAME_TYPE{
|
||
|
|
SM_DHCP_FRAME_NULL = 0,
|
||
|
|
SM_DHCP_FRAME_DISCOVER, // 1
|
||
|
|
SM_DHCP_FRAME_OFFER, // 2
|
||
|
|
SM_DHCP_FRAME_REQUEST, // 3
|
||
|
|
SM_DHCP_FRAME_RELET, // 4
|
||
|
|
SM_DHCP_FRAME_ACK, // 5
|
||
|
|
SM_DHCP_FRAME_NAK, // 6
|
||
|
|
SM_DHCP_FRAME_RELEASE, // 7
|
||
|
|
SM_DHCP_FRAME_INFORM, // 8
|
||
|
|
};
|
||
|
|
|
||
|
|
#define SM_DHCP_RELET_PERIOD 10
|
||
|
|
#endif //CONFIG_DHCP_PROTECT_IN_CONNECTED
|
||
|
|
|
||
|
|
#if CONFIG_NX_MEDIA_DYNC_DTIM
|
||
|
|
void mm_media_dtim_check();
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if CONFIG_NX_OTA_DYNC_DTIM
|
||
|
|
void mm_ota_dtim_open();
|
||
|
|
void mm_ota_dtim_close();
|
||
|
|
#endif
|
||
|
|
#endif // NX_VERSION
|
||
|
|
|
||
|
|
struct sm_disconnect_ind;
|
||
|
|
struct sm_connect_ind;
|
||
|
|
|
||
|
|
void rwnx_misc_disconnect_ind(struct sm_disconnect_ind *ind);
|
||
|
|
void rwnx_misc_connect_ind(struct sm_connect_ind *ind);
|
||
|
|
void rwnx_dhcp_done_handler(uint8_t vif_idx);
|
||
|
|
void rwnx_connecting_handler();
|
||
|
|
|
||
|
|
/**
|
||
|
|
* preprocess pbuf before pass it to TCP/IP protocol stack
|
||
|
|
*/
|
||
|
|
void rwnx_rx_preprocess(uint8_t vif_idx, struct pbuf *p);
|
||
|
|
/**
|
||
|
|
* postprocess pbuf after TCP/IP protocol stack passes it to umac
|
||
|
|
*/
|
||
|
|
void rwnx_tx_postprocess(uint8_t vif_idx, struct sk_buff *skb);
|
||
|
|
|
||
|
|
#endif // __RWNX_MISC_H_
|