inwudriver-weibo/target/config/diag/dfx_sys_dsid_sdm.h

425 lines
20 KiB
C
Raw Permalink Normal View History

/*
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
* Description: dfx_sys dsid sdm.
* Author: CompanyName
* Create: 2021-1-27
*/
#ifndef DFX_SYS_DSID_SDM_H
#define DFX_SYS_DSID_SDM_H
#include "soc_phy_nv.h"
#include "soc_config.h"
#include "dfx_sys_sdm.h"
/* storage access id */
typedef enum {
SDM_FLASH = 0,
SDM_RAM
} ext_sdm_sa_id;
typedef struct {
ext_sdm_sa_id said; /* storage access id */
ext_sdm_cmd_id scid; /* sdm command id. */
td_u32 offset; /* reserved */
td_u32 num;
} ext_dsid_sdm_dump;
typedef struct {
td_u32 id;
td_u32 cnt;
td_u32 local_time;
td_u32 net_time;
td_u32 status;
} ext_dsid_sdm_hrd;
typedef struct {
td_u32 save_time; /* deprecated */
td_u32 flash_size; /* flash size */
td_u32 flash_addr; /* flash basic addr */
td_u32 sdm_save_buffer; /* periodic storage structure pointer */
td_u32 magic_num; /* content magic word */
td_u16 sys_cause; /* deprecated */
td_u16 sdm_content_arrtibute; /* sdm_content_attribute_e */
td_u16 sdm_save_buffer_size; /* periodic storage structure size */
td_u16 per_block_size; /* ulsdmperiodsavebuffersize or ulsdmperiodsavebuffersize+magic+logic */
td_u16 current_write_block_idx; /* record the flash offset block number to be written. */
td_u16 current_logic_block_idx; /* record the index number to be written. */
td_u16 max_write_block_idx; /* free block */
td_u16 write_fail_times;
td_u8 sdm_content_type; /* sdm_content_type_e content id */
td_u8 sdm_blk_id; /* share flashid, valid for shared flash */
/*
* a value of 1 indicates that the semaphore was created successfully,
* and it is meaningful for partitions that support synchronous operations.
*/
td_u8 created_sem : 1;
td_u8 inited : 1; /* indicates that initialization is complete */
td_u8 cur_stat_reserver : 6;
td_u8 reserver_2;
td_u32 sem_handle; /* semaphore */
td_u32 sem_wait_time; /* get semaphore timeout ms */
} sdm_eng_ctx;
typedef struct {
td_u32 write_fail;
td_u32 read_fail;
td_u32 malloc_fail;
td_u32 msg_send_fail_times;
td_u32 msg_send_sucess_times;
td_u32 msg_receive_times;
} sdm_eng_dsid_msg;
typedef struct {
td_u32 tx_send_sof_cnt; /* the number of sof packets sent by the sender */
td_u32 tx_send_sack_cnt; /* the number of sack messages sent by the sender */
td_u32 tx_send_beacon_cnt; /* the number of beacon packets sent by the sender */
/* total number of discarded packets due to reassembly of the reassembly module */
td_u16 rsb_reassemble_fail_cnt;
td_u16 rx_receive_coordinate_cnt; /* receiver receives the total number of coordinates */
td_u32 rx_receive_beacon_cnt; /* receiver receives the total number of beacons */
td_u32 rx_receive_sof_cnt; /* receiver receives the total number of sof */
td_u32 rx_receive_sack_cnt; /* receiver receives the total number of sacks */
td_u32 rx_get_macbuffer_success_cnt; /* receiver gets the total number of cache successes */
td_u32 rx_get_macbuffer_fail_cnt; /* total number of cache failures received by the receiver */
td_u16 rx_rcv_not_finished_cnt; /* receiver receives the total number of outstanding release buffers */
td_u16 rx_discard_packet_cnt; /* total number of packets discarded by the receiver */
td_u32 rsb_receive_cnt; /* total number of messages processed by the reassembly module */
td_u32 rsb_deliver_cnt; /* total number of messages distributed by the reassembly module */
td_u32 cvg_receive_delivery_cnt; /* total number of packets received by the aggregation module */
td_u32 cvg_discard_unicast_cnt; /* total number of unicast packets discarded by the aggregation module */
td_u32 cvg_transmit_unicast_cnt; /* total number of unicast packets forwarded by the aggregation module */
td_u32 cvg_discard_broadcast_cnt; /* total number of broadcast packets discarded by the aggregation module */
td_u32 cvg_transmit_broadcast_cnt; /* total number of broadcast packets forwarded by the aggregation module */
td_u32 cvg_deliver_app_cnt; /* total number of app messages distributed by the aggregation module */
td_u32 cvg_deliver_app_fail_cnt; /* total number of failed app messages distributed by the aggregation module */
td_u32 cvg_deliver_nm_cnt; /* total number of nm packets distributed by the aggregation module */
td_u32 cvg_deliver_nm_fail_cnt; /* total number of failed nm packet transmissions by the aggregation module */
/* the aggregation module distributes the total number of unknown types of packets. */
td_u32 cvg_deliver_invalid_type_cnt;
td_u32 cvg_receive_transmit_cnt; /* total number of packets received by the aggregation module */
td_u32 cvg_receive_transmit_fail_cnt; /* total number of failed packets received by the aggregation module */
td_u32 cvg_receive_nm_cnt; /* total number of nm packets received by the aggregation module */
td_u32 cvg_receive_app_cnt; /* total number of app messages received by the aggregation module */
/* the total number of failed processing errors received by the aggregation */
td_u16 cvg_receive_app_no_buffer_cnt;
/* module receiving app messages due to insufficient cache
* total number of queue packet overflow failures received by the aggregation module */
td_u16 cvg_receive_app_queue_overflow_cnt;
td_u32 cvg_handle_cnt; /* total number of packets processed by the aggregation module */
td_u32 cvg_handle_transmit_cnt; /* the total number of packets forwarded by the aggregation module */
td_u32 cvg_handle_nm_cnt; /* total number of nm packets processed by the aggregation module */
td_u16 cvg_handle_app_cnt; /* total number of app messages processed by the aggregation module */
/* the aggregation module processes the total number of unknown types of packets. */
td_u16 cvg_handle_invalid_cnt;
td_u32 cvg_handle_fail_cnt; /* total number of failed packets processed by the aggregation module */
td_u32 cvg_handle_transmit_route_fail_cnt; /* the total number of failed routing attempts by the */
/* aggregation module to process forwarded packets */
td_u32 cvg_handle_nm_route_fail_cnt; /* total number of route failures in the aggregation module nm packet */
td_u32 cvg_handle_app_route_fail_cnt; /* total number of route failures in the aggregation module app packet */
td_u32 cvg_segment_fail_cnt; /* total number of aggregation module segmentation processing failures */
td_u16 pad; /* total number of failures of the aggregation module segment to generate mac frames */
/* total number of failed segmentation split macs in the aggregation module */
td_u16 cvg_segment_split_mac_fail_cnt;
td_u32 cvg_segment_set_fc_fail_cnt; /* aggregate module segmentation sets the total number of fc failures */
td_u32 cvg_segment_queue_overflow_cnt; /* total number of aggregate module segment queue full failures */
td_u32 segment_sof_cnt; /* total number of packets received by the segmentation module */
/* the total number of discarded packets successfully sent by the segmentation module */
td_u32 sgm_mpdu_send_success_cnt;
/* total number of discarded packets by the segmentation module due to transmission failure */
td_u32 sgm_mpdu_send_fail_cnt;
/* the total number of discarded packets by the segmentation module due to packet timeout */
td_u32 sgm_mpdu_send_timeout_cnt;
/* total number of discarded packets by the segmentation module due to system soft restart */
td_u32 sgm_mpdu_reset_discard_cnt;
} ext_mac_interface_statistics;
typedef struct {
/* Channel statistics */
td_u32 first_notify_time; /* the first notification time stamp after the network is completed */
td_u32 last_true_time; /* the last time the channel changed to the available message timestamp */
td_u32 last_false_time; /* the last time the channel changed to the unavailable message timestamp */
td_u32 chl_status; /* current channel status */
td_u16 chl_change_true; /* channel availability */
td_u16 chl_change_false; /* channel unavailable times */
td_u32 uart_rx_total_len[2]; /* serial port receive bytes (send message/process message), 2 count */
/* the serial port receives the full number of frames (sends the message/process message), 2 count */
td_u16 uart_rx_ok_num[2]; /* 2 count */
td_u32 uart_rx_last_time[2]; /* last time the serial port received (send message/process message), 2 count */
td_u32 uart_tx_total_len[2]; /* serial port number of bytes sent (send message/process message), 2 count */
/* the number of successful frames sent by the serial port (sending message/processing message), 2 count */
td_u16 uart_tx_ok_num[2]; /* 2 count */
td_u32 uart_tx_last_time[2]; /* last time the serial port was sent (send message/process message), 2 count */
/* number of failed serial port transmissions (sending message/processing message), 2 count */
td_u16 uart_tx_fail_num[2]; /* 2 count */
/* the reason why the serial port failed to send the last time (send message/process message), 2 count */
td_u32 uart_tx_err_cause[2]; /* 2 count */
td_u16 plc_rx_total_num[2]; /* plc receives the number of frames (sends a message/process message), 2 count */
td_u32 plc_rx_last_time[2]; /* the last time the plc received (sending a message/processing message), 2 count */
td_u16 plc_rx_last_id[2]; /* the last time the plc received the id (send message/process message), 2 count */
/* the last time the plc received the packet length (send message/process message), 2 count */
td_u32 plc_rx_last_len[2]; /* 2 count */
/* the number of frames sent by the plc (sending a message/processing message), 2 count */
td_u16 plc_tx_total_num[2];
td_u32 plc_tx_last_time[2]; /* the last time the plc sent (send message/process message), 2 count */
td_u16 plc_tx_last_id[2]; /* the last time the plc sent an id (send message/process message), 2 count */
/* the last time the plc sent the packet length (send message/process message), 2 count */
td_u32 plc_tx_last_len[2];
td_u16 plc_tx_fail_num[2]; /* plc failed to send (send message/process message), 2 count */
td_u32 plc_tx_fail_len[2]; /* plc sends the last failed packet length (send message/process message), 2 count */
/* plc sends the last reason for failure (sending message/processing message), 2 count */
td_u32 plc_tx_err_cause[2];
} ext_mrs_interface_statistics; /* mrs external interface statistics */
/* End-to-end interface level including MRS-IP-MAC-PHY */
typedef struct {
ext_dsid_sdm_hrd hrd;
/* * ip packet received, segment count, sent to phy count */
ext_mac_interface_statistics mac_hl_info; /* mac first-level statistics, focusing on access */
} ext_dsid_sdm_chl;
typedef struct {
ext_dsid_sdm_hrd hrd;
td_u32 rx_fc_cnt;
td_u32 rx_fc_crc_success_cnt;
td_u32 rx_fc_crc_err_cnt;
td_u32 rx_false_frame;
td_u32 rx_beacon_fc_recv_cnt;
td_u32 rx_beacon_fc_discard_cnt;
td_u32 rx_beacon_pb_crc_err_cnt;
td_u32 rx_beacon_pb_crc_success_cnt;
td_u32 rx_sof_broadcast_cnt;
td_u32 rx_sof_unicast_cnt;
td_u32 rx_sof_resend_cnt;
td_u32 rx_sof_136_pb_crc_err_cnt;
td_u32 rx_sof_136_pb_crc_success_cnt;
} ext_dsid_sdm_rx;
typedef struct {
ext_dsid_sdm_hrd hrd;
td_u32 tx_sof_unicast_cnt;
td_u32 tx_sof_broadcast_cnt;
td_u32 tx_sof_resend_cnt;
td_u32 tx_sof_136_pb_cnt;
td_u32 tx_sof_520_pb_cnt;
td_u32 tx_tdma_refresh_evt_cnt;
td_u32 tx_mpdu_queued_in_evt_cnt;
td_u32 tx_get_slot_fail_cnt;
td_u32 tx_start_hr_timer_fail_cnt;
td_u32 tx_get_all_msdu_cnt; /* total number of messages received by the sender */
td_u32 sof_wait_sack_send_success; /* wait for sack sof to send successfully */
td_u32 sof_not_wait_sack_send_success; /* no need to wait for the number of successful sack packets sent */
/* the number of retransmissions of the message, excluding fixed retransmissions */
td_u32 sof_resend_exclude_fix_resend;
td_u8 switch_to_rf_by_blink_check_cnt; /* number of times due to blind detection switching to rf mode */
td_u8 network_mode_switch_cmd_cnt; /* network mode switching command switching times */
td_u8 pad[2]; /* pad 2 byte */
} ext_dsid_sdm_tx;
typedef struct {
ext_dsid_sdm_hrd hrd;
td_u32 bcn_slot_table_update_cnt;
td_u32 bcn_last_update_slot_table_time;
td_u32 bcn_last_update_slot_table_bpc;
td_u32 bcn_last_rcv_beacon_time;
td_u32 bcn_last_rcv_beacon_bpc;
td_u32 bcn_discard_beacon_slot_cnt;
td_u32 bcn_discard_bind_csma_slot_cnt;
td_u32 bcn_discard_csma_slot_cnt;
td_u32 bcn_discard_tdma_slot_cnt;
td_u32 bcn_give_beacon_slot_cnt;
td_u32 bcn_give_bind_csma_slot_cnt;
td_u32 bcn_give_csma_slot_cnt;
td_u32 bcn_give_tdma_slot_cnt;
td_u32 bcn_get_repeat_slot_cnt;
td_u32 bcn_give_oneself_slot_cnt;
td_u32 tx_get_slot_cnt;
td_u32 tx_get_slot_fail_cnt;
td_u32 phs_evaluate_a_cnt;
td_u32 phs_evaluate_b_cnt;
td_u32 phs_evaluate_c_cnt;
} ext_dsid_sdm_bcn;
typedef struct _dfx_switch_freq_info_ {
td_u16 freq_total_cnt;
td_u16 reason;
td_u32 last_time; /* Duration of this band */
} dfx_switch_freq_info;
typedef struct _dfx_switch_snid_info_ {
td_u16 snid_total_cnt;
td_u16 status;
td_u32 fc_success_cnt;
td_u32 beacon_pb_success_cnt;
} dfx_switch_snid_info;
typedef struct _dfx_rt_info_ {
td_u16 rt_discover_station_cnt; /* number of sites found */
td_u16 rt_near_station_cnt; /* find the number of sites closer to cco */
td_u16 rt_upper_comm_rate_station_cnt; /* number of communication rate upper limit sites */
/* number of intermediate stations with upper and lower communication rates */
td_u16 rt_middle_comm_rate_station_cnt;
td_u16 rt_lower_comm_rate_station_cnt; /* number of stations with lower communication rate */
td_u16 rt_rcv_discover_pk_cnt; /* receive the number of discovery lists (1 window) */
td_u16 rt_rcv_bea_cnt; /* number of received beacons (1 window) */
td_u8 rt_proxy_up_comm_rate; /* uplink communication rate with proxy site */
td_u8 rt_proxy_down_comm_rate; /* downstream communication rate with proxy site */
td_u16 rt_rcv_proxy_beacon_cnt; /* receive proxy station beacon frames (1 window) */
td_u16 rt_rcv_proxy_discover_pk_cnt; /* number of receiving proxy site discovery lists (1 window) */
td_u8 proxy_mac[EXT_PLC_MAC_ADDR_LEN];
td_u8 chose_proxy_mac[EXT_PLC_MAC_ADDR_LEN];
td_u16 change_proxy_reason;
td_bool proxy_is_static;
td_u8 rsvd;
} dfx_rt_info;
#define DFX_RT_INDEX_MAX 10
/* Proxy change reason bit */
enum {
PROXY_RATE_IS_LOW = 1 << 0,
PROXY_RATE_IS_MIDDLE = 1 << 1,
PROXY_RATE_IS_UPPER = 1 << 2,
PROXY_IS_FAR_TO_CCO = 1 << 3,
MULTI_PROXY_COMMRATE_BAD = 1 << 4,
HALF_WINDOW_COMM_BAD = 1 << 5,
NEW_PROXY_LEVEL_IS_SMALL = 1 << 6,
NEW_PROXY_IS_STA = 1 << 7,
NEW_PROXY_RATE_IS_BIG = 1 << 8,
CHANGE_TO_STATIC_PROXY = 1 << 9,
};
typedef struct {
ext_dsid_sdm_hrd hrd;
td_u32 switch_freq_last_systime; /* last cut band system time */
dfx_switch_freq_info switch_freq_info[FREQ_MAX_CNT]; /* band switching record */
td_u8 freq_now; /* current band */
td_u8 freq_last; /* last band */
td_u16 last_change_reason; /* last time the band was switched */
td_u32 switch_snid_last_systime; /* last time switching snid system time */
dfx_switch_snid_info switch_snid_info[15]; /* snid switch record 15 count */
td_u32 join_first_systime; /* first association request system time */
td_u32 join_last_systime; /* network access time */
td_u16 not_bigger_enough_bpc_cnt; /* no larger bpc to associate requests */
td_u16 rcv_bea_period_count; /* receive beacons for several beacon periods */
td_u16 chose_proxy_fail_cnt; /* select agent failures */
td_u16 assoc_req_cnt; /* number of association requests */
td_u16 cco_reject_cnt; /* number of cco rejections */
td_u16 cco_reject_reason; /* reason for cco rejection */
td_u32 mac_reset_cnt; /* mac soft restart times */
td_u16 join_not_white_cnt; /* not whitelisted requests */
td_u16 join_level_overflow_cnt; /* too many times */
td_u16 join_proxy_overflow_cnt; /* too many agents */
td_u16 join_sta_overflow_cnt; /* too many subsites */
td_u16 join_total_overflow_cnt; /* too many totals */
td_u16 join_repeat_mac_cnt; /* repeat mac times */
td_u16 join_illege_proxy_cnt; /* the number of times the agent does not exist */
td_u16 join_end_sequence_err; /* end_sequence error count */
td_u32 cco_recv_req_cnt; /* total number of cco requests received */
diag_cmd_soft_reset soft_reset;
td_u32 nm_handle_assoc_req_cnt;
td_u32 nm_handle_assoc_cnf_cnt;
td_u32 nm_create_assoc_ind_01_cnt;
td_u32 nm_create_change_proxy_cnf_cnt;
td_u32 nm_handle_change_proxy_cnf_cnt;
td_u32 dfx_ndm_handle_dbk_cmd_callback_cnt;
td_u32 dfx_ndm_pipe_output_cnt;
td_u32 dfx_ndm_packet_frame_copy_payload_list_cnt;
td_u32 dfx_ndm_handle_packet_cnt;
td_u32 dfx_ndm_pipe_send_ack_back_cnt;
td_u32 dfx_ndm_pipe_fragment_output_cnt;
td_u32 dfx_ndm_fill_reply_payload_cnt;
td_u32 nm_write_nv_fail;
td_u8 cco_mac[EXT_PLC_MAC_ADDR_LEN]; /* lock the network's cco mac address */
td_u8 lock_status; /* lock status */
td_u8 lock_status_identify; /* lock status under the station identification function */
td_u32 lock_begin_time; /* lock start time */
td_u32 lock_duration; /* lock duration */
td_u32 reject_time; /* lock network rejection time */
td_u16 lock_cnt; /* number of locks */
td_u16 reject_cnt; /* lock network rejections */
td_u16 lock_timeout_cnt; /* lock timeout at this time */
td_u16 lock_fail_by_not_join_cnt; /* failed to join the network lock */
td_u16 send_msg_fail_cnt; /* message failed to be sent */
td_u16 unlock_cnt_by_identify; /* number of unlocking times for station identification (measurement) */
td_u8 lock_freq_identify; /* lock network band number */
td_u8 lock_snid_identify; /* lock the network number */
td_u8 cco_mac_identify[EXT_PLC_MAC_ADDR_LEN]; /* the zone identifies the cco mac address of the locked network */
td_u32 lock_begin_time_by_identify; /* lock start time, unit s */
td_u32 lock_freqsnid_duration_by_identify; /* lock duration, unit s */
td_u32 lock_ccomac_duration_by_identify; /* lock cco mac duration, unit s */
td_u32 unlock_time_by_identify; /* unlock time (measurement) */
/* the zone identifies the locked band and the number of network numbers (measurement) */
td_u16 lock_freqsnid_cnt_by_identify;
td_u16 lock_ccomac_cnt_by_identify; /* station identification lock cco mac times (measurement) */
td_u32 lock_freq : 8; /* lock the band of the network */
td_u32 lock_snid : 24; /* lock the snid of the network */
} ext_dsid_sdm_nm;
typedef struct {
ext_dsid_sdm_hrd hrd;
dfx_rt_info rt_dfx_info[DFX_RT_INDEX_MAX];
td_u8 rt_dfx_index;
td_u8 rsvd2[2]; /* pad 2 byte */
td_u8 my_static_proxy_exist;
td_u8 static_proxy_mac[EXT_PLC_MAC_ADDR_LEN];
td_u16 rt_fast_proxy_change_cnt; /* quickly trigger route change times */
td_u16 rt_window_proxy_change_cnt; /* total window changes */
td_u16 lock_static_proxy_cnt;
td_u16 unlock_static_proxy_cnt;
td_u16 choose_static_proxy_fail_cnt;
} ext_dsid_sdm_rt;
typedef struct {
ext_dsid_sdm_hrd hrd;
} ext_dsid_sdm_mr;
typedef struct {
ext_dsid_sdm_hrd hrd;
} ext_dsid_sdm_boot;
typedef struct {
ext_dsid_sdm_hrd hrd;
} ext_dsid_sdm_evt_mac;
typedef struct {
ext_dsid_sdm_hrd hrd;
} ext_dsid_sdm_evt_mr;
#endif /* DFX_SYS_DSID_SDM_H */