458 lines
11 KiB
C
458 lines
11 KiB
C
/*
|
|
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
|
|
* Description: 1901.1 hplc protocol, which is only used for DBK. mme module.
|
|
* Author: CompanyName
|
|
* Create: 2021-03-17
|
|
*/
|
|
|
|
#ifndef __DFX_DBK_MME_STRUCT_DEF_H__
|
|
#define __DFX_DBK_MME_STRUCT_DEF_H__
|
|
|
|
#include <soc_types.h>
|
|
|
|
/* managemet packet start */
|
|
/* MMeAssocReq */
|
|
typedef struct {
|
|
td_u8 mac[6]; /* STA MAC address: 6 count */
|
|
td_u8 candidate_proxy_tei0_l;
|
|
td_u8 candidate_proxy_tei0_h : 4;
|
|
td_u8 rsvd0 : 4;
|
|
|
|
td_u16 candidate_proxy_tei1 : 12;
|
|
td_u16 rsvd1 : 4;
|
|
td_u16 candidate_proxy_tei2 : 12;
|
|
td_u16 rsvd2 : 4;
|
|
|
|
td_u16 candidate_proxy_tei3 : 12;
|
|
td_u16 rsvd3 : 4;
|
|
td_u16 candidate_proxy_tei4 : 12;
|
|
td_u16 rsvd4 : 4;
|
|
|
|
td_u8 phase0 : 2;
|
|
td_u8 phase1 : 2;
|
|
td_u8 phase2 : 2;
|
|
td_u8 rsvd5 : 2;
|
|
td_u8 product_type;
|
|
td_u8 mac_type;
|
|
td_u8 rsvd6;
|
|
|
|
td_u32 associate_random;
|
|
|
|
/* td_u8 user_defined[18]; Manufacturer Information */
|
|
td_u8 system_mode; /* Begin */
|
|
td_u8 boot_ver_idx;
|
|
td_u8 system_abnormal_reason;
|
|
td_u8 main_ver[3]; /* main version : 3 count */
|
|
td_u8 build_time[6]; /* bulid time : 6 count */
|
|
|
|
td_u16 second_ver[2]; /* second version : 2 count */
|
|
td_u16 chip_ver; /* End */
|
|
|
|
/* STA Version */
|
|
td_u16 system_start_reason : 8; /* Begin */
|
|
td_u16 boot_ver : 8;
|
|
td_u16 sw_ver;
|
|
td_u16 usYear : 7;
|
|
td_u16 usMonth : 4;
|
|
td_u16 usDay : 5;
|
|
td_u8 manu_id[2]; /* manufacturer ID: 2 count */
|
|
td_u8 chip_id[2]; /* chip id: 2 count */
|
|
/* END */
|
|
|
|
td_u16 hard_reset_cnt;
|
|
td_u16 soft_reset_cnt;
|
|
td_u32 proxy_type : 8;
|
|
td_u32 rsvd8 : 24;
|
|
td_u32 end_sequence;
|
|
} MME_ASSOC_REQ_19011;
|
|
|
|
// MMeAssocCnf
|
|
typedef struct {
|
|
td_u8 sta_mac[6]; /* STA MAC address: 6 count */
|
|
td_u8 cco_mac[6]; /* CCO MAC address: 6 count */
|
|
|
|
td_u16 result : 8;
|
|
td_u16 level : 8;
|
|
td_u16 tei : 12;
|
|
td_u16 rsvd1 : 4;
|
|
|
|
td_u16 proxy_tei : 12;
|
|
td_u16 rsvd2 : 4;
|
|
td_u16 total_packet_cnt : 8;
|
|
td_u16 packet_index : 8;
|
|
|
|
td_u32 associate_random;
|
|
td_u32 reassociate_time;
|
|
td_u32 end_sequence;
|
|
td_u32 path_sequence;
|
|
td_u32 rsvd3;
|
|
|
|
/* Route Info */
|
|
td_u16 straight_sta_num;
|
|
td_u16 straight_pco_num;
|
|
td_u16 table_size;
|
|
td_u16 rsvd4;
|
|
|
|
td_u8 router_table[1]; /* route table, variable, N 8-byte sets(straight tei(12b), rsvd(4b) */
|
|
} MME_ASSOC_CNF_19011;
|
|
|
|
/* MMeAssocGatherInd */
|
|
typedef struct {
|
|
td_u8 result;
|
|
td_u8 level;
|
|
td_u8 cco_mac[6]; /* CCO MAC address */
|
|
|
|
td_u16 proxy_tei : 12;
|
|
td_u16 rsvd1 : 4;
|
|
td_u16 rsvd2 : 8;
|
|
td_u16 sta_num : 8;
|
|
|
|
td_u32 rsvd3;
|
|
|
|
td_u8 sta_info[1]; /* Variable, 1 count */
|
|
} MME_ASSOC_GATHER_IND_19011;
|
|
|
|
/* MMeChangeProxyReq */
|
|
typedef struct {
|
|
td_u16 sta_tei : 12;
|
|
td_u16 rsvd : 4;
|
|
td_u16 new_proxy_tei0 : 12;
|
|
td_u16 rsvd0 : 4;
|
|
|
|
td_u16 new_proxy_tei1 : 12;
|
|
td_u16 rsvd1 : 4;
|
|
td_u16 new_proxy_tei2 : 12;
|
|
td_u16 rsvd2 : 4;
|
|
|
|
td_u16 new_proxy_tei3 : 12;
|
|
td_u16 rsvd3 : 4;
|
|
td_u16 new_proxy_tei4 : 12;
|
|
td_u16 rsvd4 : 4;
|
|
|
|
td_u16 old_proxy_tei : 12;
|
|
td_u16 rsvd5 : 4;
|
|
td_u16 proxy_type : 8;
|
|
td_u16 reason : 8;
|
|
|
|
td_u32 end_sequence;
|
|
|
|
td_u8 sta_phase0 : 2;
|
|
td_u8 sta_phase1 : 2;
|
|
td_u8 sta_phase2 : 2;
|
|
td_u8 rsvd6 : 2;
|
|
td_u8 rsvd7[3]; /* reserved, 3 count */
|
|
} MME_CHANGE_PROXY_REQ_19011;
|
|
|
|
/* MMeChangeProxyCnf */
|
|
typedef struct {
|
|
td_u8 result;
|
|
td_u8 total_packet_num;
|
|
td_u8 packet_index;
|
|
td_u8 rsvd;
|
|
|
|
td_u16 tei : 12;
|
|
td_u16 rsvd1 : 4;
|
|
td_u16 proxy_tei : 12;
|
|
td_u16 rsvd2 : 4;
|
|
|
|
td_u32 end_sequence;
|
|
td_u32 path_sequence;
|
|
|
|
td_u16 child_sum;
|
|
td_u16 rsvd3;
|
|
|
|
td_u8 child_entry[1]; /* Variable, 1 count */
|
|
} MME_CHANGE_PROXY_CNF_19011;
|
|
|
|
/* MMeChangeProxyBitMapCnf */
|
|
typedef struct {
|
|
td_u8 result;
|
|
td_u8 rsvd;
|
|
td_u16 tei : 12;
|
|
td_u16 rsvd1 : 4;
|
|
|
|
td_u16 proxy_tei : 12;
|
|
td_u16 rsvd2 : 4;
|
|
td_u16 rsvd3;
|
|
|
|
td_u32 end_sequence;
|
|
td_u32 path_sequence;
|
|
|
|
td_u16 rsvd4;
|
|
td_u16 bitmap_size;
|
|
|
|
td_u8 child_bitmap_entry[1]; /* Variable, 1 count */
|
|
} MME_CHANGE_PROXY_BITMAP_CNF_19011;
|
|
|
|
/* MMeLeaveInd */
|
|
typedef struct {
|
|
td_u16 reason;
|
|
td_u16 leave_sta_num;
|
|
|
|
td_u16 leave_delay_time;
|
|
td_u16 rsvd;
|
|
|
|
td_u8 rsvd2[8]; /* reserved , 8 count */
|
|
|
|
td_u8 sta_mac_entry[1]; /* Variable, 1 count */
|
|
} MME_LEAVE_IND_19011;
|
|
|
|
/* MMeHeartBeatCheck */
|
|
typedef struct {
|
|
td_u16 ostei : 12;
|
|
td_u16 rsvd : 4;
|
|
td_u16 discover_count_tei : 12;
|
|
td_u16 rsvd2 : 4;
|
|
|
|
td_u16 discover_cnt;
|
|
td_u16 discover_btm_cnt;
|
|
|
|
td_u8 discover_btm[1]; /* Variable, 1 count */
|
|
} MME_HEART_BEAT_CHECK_19011;
|
|
|
|
/* MMeDiscoverNodeList */
|
|
typedef struct {
|
|
td_u32 tei : 12;
|
|
td_u32 proxy_tei : 12;
|
|
td_u32 role : 4;
|
|
td_u32 level : 4;
|
|
|
|
td_u8 mac[6]; /* MAC address, 6 count */
|
|
td_u8 cco_mac[6]; /* CCO MAC address, 6 count */
|
|
|
|
td_u8 sta_phase1 : 2;
|
|
td_u8 sta_phase2 : 2;
|
|
td_u8 sta_phase3 : 2;
|
|
td_u8 rsvd1 : 2;
|
|
td_u8 proxy_channel_quality;
|
|
td_u8 proxy_communication_rate;
|
|
td_u8 proxy_down_communication_rate;
|
|
|
|
td_u16 sta_num;
|
|
td_u16 send_discovery_packet_cnt : 8;
|
|
td_u16 up_route_entry_number : 8;
|
|
|
|
td_u16 evaluate_begin_timeout;
|
|
td_u16 discovery_sta_list_btm_size;
|
|
|
|
td_u8 min_communication_rate;
|
|
td_u8 rsvd2[3]; /* reserved2, 3 count */
|
|
|
|
td_u8 up_route_info[1]; /* Variable, 1 count, Up Route Entry Info */
|
|
/* Discovery STA List Bitmap */
|
|
/* Received Discovery Information */
|
|
} MME_DISCOVER_NODE_LIST_19011;
|
|
|
|
/* MMeSuccessRateReport */
|
|
typedef struct {
|
|
td_u16 tei : 12;
|
|
td_u16 rsvd : 4;
|
|
td_u16 sta_num;
|
|
|
|
td_u8 success_rate_info[1]; /* Variable, 1 count */
|
|
} MME_SUCCESSRATE_REPORT_19011;
|
|
|
|
/* MMeNetworkConflictReport */
|
|
typedef struct {
|
|
td_u8 cco_mac[6]; /* CCO MAC address */
|
|
td_u8 neighbor_net_cnt;
|
|
td_u8 nid_size;
|
|
|
|
td_u8 neighborNetContent[1]; /* Variable, 1 count */
|
|
} MME_NETWORK_CONFLICT_REP_19011;
|
|
|
|
/* MMeZeroCrossNTBCollectionReq */
|
|
typedef struct {
|
|
td_u16 tei : 12;
|
|
td_u16 rsvd : 4;
|
|
td_u8 collection_mode;
|
|
td_u8 collection_period;
|
|
td_u8 collection_quantity;
|
|
td_u8 rsvd2[3];
|
|
} MME_ZEROCROSS_NTB_COLLECT_REQ_19011;
|
|
|
|
/* MMeZeroCrossNTBReport */
|
|
typedef struct {
|
|
td_u16 tei : 12;
|
|
td_u16 rsvd : 4;
|
|
td_u8 total_cnt;
|
|
td_u8 diff_ntb_cnt_phase1;
|
|
|
|
td_u8 diff_ntb_cnt_phase2;
|
|
td_u8 diff_ntb_cnt_phase3;
|
|
td_u8 ntb_base[4]; /* ntb_base, 4 bytes */
|
|
td_u8 ntb_deviation[1];
|
|
} MME_ZEROCROSS_NTB_REPORT_19011;
|
|
|
|
/* MMeLBDAtReq NULL */
|
|
|
|
/* MMeLBDAtCnf */
|
|
typedef struct {
|
|
td_u8 BSF;
|
|
|
|
/* LBDAT */
|
|
td_u16 bridge_tei : 12;
|
|
td_u16 rsvd : 4;
|
|
td_u8 bridge_mac[6]; /* Bridge MAC, 6 count */
|
|
td_u8 bridge_destination_number;
|
|
td_u8 ntb_deviation[1]; /* Variable , 1 count, n*BDA+BDPID */
|
|
} MME_LBD_AT_CNF_19011;
|
|
|
|
/* MMeSetKeyRequest */
|
|
typedef struct {
|
|
td_u8 key_type;
|
|
td_u16 protocol_run_number;
|
|
td_u8 protocol_message_number;
|
|
td_u32 my_nonce;
|
|
td_u32 your_nonce;
|
|
td_u8 new_key[8]; /* New Key, 8 count */
|
|
td_u8 mac[6]; /* MAC, 6 count */
|
|
td_u16 rsvd;
|
|
} MME_SET_KEY_REQ_19011;
|
|
|
|
/* MMeSetKeyConfirm */
|
|
typedef struct {
|
|
td_u8 result;
|
|
td_u16 protocol_run_number;
|
|
td_u8 protocol_message_number;
|
|
td_u32 my_nonce;
|
|
td_u32 your_nonce;
|
|
td_u32 rsvd;
|
|
} MME_SET_KEY_CNF_19011;
|
|
|
|
/* MMeGetKeyRequest */
|
|
typedef struct {
|
|
td_u8 key_type;
|
|
td_u16 protocol_run_number;
|
|
td_u8 protocol_message_number;
|
|
td_u32 my_nonce;
|
|
td_u8 mac[4]; /* MAC, 4 count */
|
|
td_u8 rsvd[4]; /* reserved, 4 count */
|
|
} MME_GET_KEY_REQ_19011;
|
|
|
|
/* MMeGetKeyConfirm */
|
|
typedef struct {
|
|
td_u8 result;
|
|
td_u8 requested_key_type;
|
|
td_u8 protocol_run_number; /* question */
|
|
td_u8 protocol_message_number[2]; /* protocol_message_number, 2 count */
|
|
td_u8 my_nonce[4]; /* my_nonce, 4 count */
|
|
td_u8 your_nonce[4]; /* your_nonce, 4 count */
|
|
td_u8 rsvd[3]; /* reserved, 3 count */
|
|
} MME_GET_KEY_CNF_19011;
|
|
|
|
|
|
/* MMeAuthrzRequest */
|
|
typedef struct {
|
|
td_u8 protocol_run_number;
|
|
td_u16 protocol_message_number; /* question */
|
|
td_u8 my_nonce[4]; /* my_nonce, 4 count */
|
|
td_u8 mac[6]; /* MAC, 6 count */
|
|
td_u8 rsvd[3]; /* reserved, 3 count */
|
|
} MME_AUTH_REQ_19011;
|
|
|
|
/* MMeAuthrzConfirm */
|
|
typedef struct {
|
|
td_u8 result;
|
|
td_u8 protocol_run_number;
|
|
td_u16 protocol_message_number;
|
|
td_u32 my_nonce;
|
|
td_u32 your_nonce;
|
|
td_u8 mac[6]; /* MAC, 6 count */
|
|
td_u8 NMK[8]; /* NMK, 6 count */
|
|
td_u8 rsvd[2]; /* reserved, 2 count */
|
|
} MME_AUTH_CNF_19011;
|
|
|
|
/* MMeEncryptedPlInd */
|
|
typedef struct {
|
|
td_u8 payload_type;
|
|
td_u8 PEKS;
|
|
td_u8 protocol_run_number; /* question */
|
|
td_u8 protocol_message_number[2]; /* protocol_message_number, 3 count */
|
|
td_u16 length;
|
|
td_u8 variable[1]; /* Variable, 1 count */
|
|
} MME_ENCRYPTED_PL_IND_19011;
|
|
|
|
/* MMeSetAmpMapReq */
|
|
typedef struct {
|
|
td_u16 AmpLength;
|
|
td_u8 variable[1]; /* Variable, 1 count */
|
|
} MME_SET_AMP_REQ_19011;
|
|
|
|
/* MMeSetAmpMapCnf */
|
|
typedef struct {
|
|
td_u8 response;
|
|
} MME_SET_AMP_CNF_19011;
|
|
|
|
/* MMeNetworkDiagnosisReport */
|
|
typedef struct {
|
|
td_u8 manufacturer_id[2]; /* Manufacturer Id, 2 count */
|
|
td_u8 variable[1]; /* Variable, 1 count */
|
|
} MME_NETWORK_DIAGNOSIS_REPORT_19011;
|
|
|
|
typedef struct {
|
|
td_u8 variable[1]; /* Variable, 1 count */
|
|
} MME_OTHER_SOF_MSDU_19011;
|
|
|
|
/* Dynamic route repair request packet */
|
|
typedef struct {
|
|
td_u8 dmac[6]; /* destination, 6 bytes */
|
|
td_u8 requset_sta_mac[6]; /* request sta mac, 6 bytes */
|
|
|
|
td_u32 route_request_sequence;
|
|
td_u32 des_sequence;
|
|
|
|
td_u8 req_mode : 1;
|
|
td_u8 unknow_sequence : 1;
|
|
td_u8 des_reply : 1;
|
|
td_u8 rsvd : 5;
|
|
td_u8 hop_num;
|
|
td_u16 rsvd;
|
|
|
|
td_u8 pass_sta_sequence[1]; /* pass sta sequence variable, 1 bytes */
|
|
} MME_DYNAMIC_ROUTE_REPAIR_REQ_19011;
|
|
|
|
/* Dynamic route repair reply packet */
|
|
typedef struct {
|
|
td_u8 dmac[6]; /* destination, 6 bytes */
|
|
td_u8 req_mac[6]; /* request sta mac, 6 bytes */
|
|
|
|
td_u32 des_sequence;
|
|
|
|
td_u8 hop_num;
|
|
td_u8 rsvd[3]; /* reservd 3 bytes */
|
|
} MME_DYNAMIC_ROUTE_REPAIR_CNF_19011;
|
|
|
|
/* MESH discivery list */
|
|
typedef struct {
|
|
td_u8 send_sta_mac[6]; /* sta mac, 6 bytes */
|
|
td_u16 discovery_list_num;
|
|
|
|
td_u8 send_period;
|
|
td_u8 rsvd[3]; /* reservd 3 bytes */
|
|
|
|
td_u8 discovery_item[1];
|
|
} MME_NET_DISCOVERY_LIST_19011;
|
|
|
|
/* Route information packet */
|
|
typedef struct {
|
|
td_u8 send_sta_mac[6]; /* sta mac, 6 bytes */
|
|
td_u16 entry_num;
|
|
|
|
td_u8 rt_entry[1]; /* route infomation entry variable, 1 bytes */
|
|
} MME_ROUTE_INFO_19011;
|
|
|
|
/* Route invalid inform packet */
|
|
typedef struct {
|
|
td_u8 dmac[6]; /* destination, 6 bytes */
|
|
td_u16 entry_num;
|
|
|
|
td_u16 invalid_sequence;
|
|
td_u16 rsvd;
|
|
|
|
td_u8 invalid_rt[1]; /* invaliable mac inforamtion variable, 1 bytes */
|
|
} MME_ROUTE_INVALID_PKT_19011;
|
|
|
|
#endif /* __DFX_DBK_MME_STRUCT_DEF_H__ */
|
|
|