393 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			393 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/****************************************************************************
 | 
						|
 | 
						|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | 
						|
 | 
						|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | 
						|
be copied by any method or incorporated into another program without
 | 
						|
the express written consent of Aerospace C.Power. This Information or any portion
 | 
						|
thereof remains the property of Aerospace C.Power. The Information contained herein
 | 
						|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | 
						|
liability for its use in any way and conveys no license or title under
 | 
						|
any patent or copyright and makes no representation or warranty that this
 | 
						|
Information is free from patent or copyright infringement.
 | 
						|
 | 
						|
****************************************************************************/
 | 
						|
 | 
						|
#ifndef PLC_CONST_H
 | 
						|
#define PLC_CONST_H
 | 
						|
 | 
						|
#include "plc_utils.h"
 | 
						|
#include "plc_cert_test.h"
 | 
						|
#include "plc_conn_less.h"
 | 
						|
#include "plc_mac_header.h"
 | 
						|
#include "plc_mac_cfg.h"
 | 
						|
#include "plc_beacon.h"
 | 
						|
#include "plc_fr.h"
 | 
						|
#include "hw_war.h"
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
/*
 | 
						|
 * max logic network number on a single node
 | 
						|
 * shared by SG, SPG(NW), and GP
 | 
						|
 * usually used by security setting
 | 
						|
 * NOTE: must be <= MAX_AVLN_HW_NUM, it's 8 for kunlun
 | 
						|
 */
 | 
						|
#define MAX_AVLN_NUM            (1)
 | 
						|
 | 
						|
/* max logic key table number for an avln
 | 
						|
 * NOTE: must be <= MAX_KEY_TABLE_HW_NUM, it's 4 for kunlun
 | 
						|
 */
 | 
						|
#define MAX_KEY_TABLE_NUM       (2)
 | 
						|
 | 
						|
/* max logic key number for a key table
 | 
						|
 * NOTE: must be <= MAX_KEY_ENTRY_HW_NUM, it's 32 for kunlun
 | 
						|
 */
 | 
						|
#define MAX_KEY_ENTRY_NUM       (4)
 | 
						|
 | 
						|
#define MAC_QUE_NUM             (24)
 | 
						|
 | 
						|
/* ieee1901 */
 | 
						|
#define MAC_HDR_LEN_NO_VAR_I1901    (sizeof(i1901_mac_header_t))
 | 
						|
#define MAC_HDR_LEN_WITH_VAR_I1901  (sizeof(i1901_mac_header_t) \
 | 
						|
    + sizeof(i1901_mac_header_var_t))
 | 
						|
#define MAC_HDR_LEN_WITH_VAR_ADDR_I1901  (MAC_HDR_LEN_WITH_VAR_I1901 \
 | 
						|
    + IOT_MAC_ADDR_LEN * 2)
 | 
						|
 | 
						|
/* smart grid */
 | 
						|
#define MAC_HDR_LEN_WITH_ADDR   (sizeof(mac_header_t) + IOT_MAC_ADDR_LEN * 2)
 | 
						|
#define MAC_HDR_LEN_NO_ADDR     (sizeof(mac_header_t))
 | 
						|
#define MAC_HDR_LEN_SHORT       (sizeof(mac_short_header_t))
 | 
						|
#define FC_LEN                  (sizeof(frame_control_t))
 | 
						|
 | 
						|
/* MAC layer required reserved len when sending data through mac_send_msdu_ex */
 | 
						|
#define MAC_REQ_HEAD_RSVD_LEN   (FC_LEN + 16)
 | 
						|
#define MAC_REQ_TAIL_RSVD_LEN   (4)
 | 
						|
#define MME_HEAD_RESERVE_LEN    (MAC_REQ_HEAD_RSVD_LEN)
 | 
						|
#define MME_TAIL_RESERVE_LEN    (MAC_REQ_TAIL_RSVD_LEN)
 | 
						|
#define APP_HEAD_RESERVE_LEN    (MAC_REQ_HEAD_RSVD_LEN + MAC_HDR_LEN_WITH_ADDR)
 | 
						|
#define APP_TAIL_RESERVE_LEN    (MAC_REQ_TAIL_RSVD_LEN)
 | 
						|
#define APP_HEAD_CONN_LESS_RESERVE_LEN   \
 | 
						|
    (APP_HEAD_RESERVE_LEN + sizeof(cert_test_t) + sizeof(plc_conn_less_hdr_t))
 | 
						|
#define APP_HEAD_SILA_NHM_RESERVE_LEN    \
 | 
						|
    (APP_HEAD_RESERVE_LEN + sizeof(nhm_header_t))
 | 
						|
 | 
						|
/* southern power grid */
 | 
						|
#define MAC_LONG_HDR_LEN_SPG      \
 | 
						|
    (sizeof(spg_mac_header_t) + sizeof(spg_mac_lheader_tail_t))
 | 
						|
#define MAC_SHORT_HDR_LEN_SPG     (sizeof(spg_mac_header_t))
 | 
						|
#define MAC_SINGLE_HOP_HDR_LEN_SPG (sizeof(spg_mac_short_header_t))
 | 
						|
#define MSDU_LONG_HDR_LEN_SPG     (sizeof(spg_msdu_lfrm_t))
 | 
						|
#define MSDU_SHORT_HDR_LEN_SPG    (sizeof(spg_msdu_sfrm_t))
 | 
						|
#define FC_LEN_SPG                (sizeof(spg_frame_control_t))
 | 
						|
 | 
						|
#define MAC_REQ_HEAD_RSVD_LEN_SPG (FC_LEN_SPG + 16)
 | 
						|
#define MAC_REQ_TAIL_RSVD_LEN_SPG (4)
 | 
						|
#define MME_HEAD_RESERVE_LEN_SPG  (MAC_REQ_HEAD_RSVD_LEN_SPG)
 | 
						|
#define MME_TAIL_RESERVE_LEN_SPG  (MAC_REQ_TAIL_RSVD_LEN_SPG)
 | 
						|
#define APP_HEAD_RESERVE_LEN_SPG  \
 | 
						|
    (MAC_REQ_HEAD_RSVD_LEN_SPG + MAC_LONG_HDR_LEN_SPG + MSDU_LONG_HDR_LEN_SPG \
 | 
						|
    + 16)
 | 
						|
#define APP_TAIL_RESERVE_LEN_SPG  (MAC_REQ_TAIL_RSVD_LEN_SPG)
 | 
						|
#define APP_HEAD_CONN_LESS_RESERVE_LEN_SPG   \
 | 
						|
    (APP_HEAD_RESERVE_LEN_SPG + sizeof(spg_cert_test_hdr_t) + \
 | 
						|
    sizeof(plc_conn_less_hdr_t))
 | 
						|
 | 
						|
/* 1901 */
 | 
						|
#define FC_LEN_1901               FC_LEN
 | 
						|
 | 
						|
#define PLC_PDEV_ID                     0           // PLC default pDEV id
 | 
						|
 | 
						|
#define RF_PDEV_ID                      0           // rf default PDEV id
 | 
						|
 | 
						|
#define PLC_DEFAULT_VDEV                0
 | 
						|
#define PLC_INV_DBG_PKT_MODE_VDEV_ID    0xFF
 | 
						|
 | 
						|
#define PLC_MAX_PB_PER_MPDU     4
 | 
						|
 | 
						|
/* give smallest number, which is -128 */
 | 
						|
#define INVALID_SNR             (-128)
 | 
						|
/* give smallest number, which is -128 */
 | 
						|
#define INVALID_RSSI            (-128)
 | 
						|
/* give largest number, which is 127 */
 | 
						|
#define MAX_SNR                 (127)
 | 
						|
/* highest available snr */
 | 
						|
#define SNR_HIGHEST             (90)
 | 
						|
/* lowest available snr */
 | 
						|
#define SNR_LOWEST              (-10)
 | 
						|
/* update snr max threshold value */
 | 
						|
#define MAX_FD_SNR              (20)
 | 
						|
/* update snr min threshold value */
 | 
						|
#define MIN_FD_SNR              (-10)
 | 
						|
/* update rf snr max threshold value */
 | 
						|
#define RF_MAX_FD_SNR           (63)
 | 
						|
/* update rf snr max threshold value */
 | 
						|
#define RF_MIN_FD_SNR           (0)
 | 
						|
/* give smallest rf snr number, which is 0 */
 | 
						|
#define RF_INVALID_SNR          (INVALID_SNR)
 | 
						|
/* rf highest snr value in protocal */
 | 
						|
#define RF_SNR_HIGHEST          (90)
 | 
						|
/* rf lowest snr value in protocal */
 | 
						|
#define RF_SNR_LOWEST           (-10)
 | 
						|
/* highest available rssi */
 | 
						|
#define RF_RSSI_HIGHEST         (-10)
 | 
						|
/* lowest available rssi */
 | 
						|
#define RF_RSSI_LOWEST          (-110)
 | 
						|
/* define rf tx power max value for smart power grid */
 | 
						|
#define RF_TX_PWR_MAX_DBM_NSG       (20)
 | 
						|
/* define rf tx power min value for smart power grid */
 | 
						|
#define RF_TX_PWR_MIN_DBM_NSG       (-35)
 | 
						|
/* define rf tx power default value for smart power grid */
 | 
						|
#define RF_TX_PWR_DEF_DBM_NSG       (10)
 | 
						|
/* define rf tx full power value for smart power grid */
 | 
						|
#define RF_TX_FULL_PWR_DBM_NSG      (15)
 | 
						|
/* define rf tx power max value for overseas power grid */
 | 
						|
#define RF_TX_PWR_MAX_DBM_OVERSEAS  (8)
 | 
						|
/* define rf tx power min value for overseas power grid */
 | 
						|
#define RF_TX_PWR_MIN_DBM_OVERSEAS  (-35)
 | 
						|
/* define rf tx power default value for overseas power grid */
 | 
						|
#define RF_TX_PWR_DEF_DBM_OVERSEAS  (8)
 | 
						|
/* define rf tx full power value for overseas power grid */
 | 
						|
#define RF_TX_FULL_PWR_DBM_OVERSEAS (8)
 | 
						|
/* define rf loopback tx power value */
 | 
						|
#define RF_TX_LOOPBACK_PWR_DBM  (5)
 | 
						|
/* define rf tx power invalid value */
 | 
						|
#define RF_TX_PWR_INVALID       (-128)
 | 
						|
 | 
						|
/* war for qianjing sack snr alway queal 100 */
 | 
						|
#define WAR_QJWY_SNR_INPUT      (100)
 | 
						|
#define WAR_QJWY_SNR_OUTPUT     (0)
 | 
						|
 | 
						|
/* calculate ppm parameter. 1 << 20 meanse 1million */
 | 
						|
#define PPM_CALC_MILLION_SHIFT  (20)
 | 
						|
 | 
						|
/* max ppm supported, if in this range, we try to re-cal */
 | 
						|
#define PLC_MAX_PPM_SUPPORT     (250)
 | 
						|
/* ntb ppm shift bit, ntb_ppm_accuracy = 1/(1 << 6) ppm */
 | 
						|
#define PLC_NTB_PPM_SHIFT       (6)
 | 
						|
/* register ppm shift bit, reg_ppm_accuracy = 1/(1 << 4) ppm */
 | 
						|
#define PLC_REG_PPM_SHIFT       (4)
 | 
						|
/* max mac ntb supported */
 | 
						|
#define PLC_MAX_MAC_NTB_PPM     \
 | 
						|
    ((PLC_MAX_PPM_SUPPORT) << (PLC_NTB_PPM_SHIFT))
 | 
						|
/* the max ppm for sync ntb beacon */
 | 
						|
#define PLC_SYNC_NTB_MAX_PPM    (50 << PLC_NTB_PPM_SHIFT)
 | 
						|
/* the max ppm for rf sync ntb beacon */
 | 
						|
#define RF_SYNC_NTB_MAX_PPM     (50 << PLC_NTB_PPM_SHIFT)
 | 
						|
 | 
						|
/* hw ppm available snr */
 | 
						|
#define PLC_HW_PPM_AVL_SNR      (20)
 | 
						|
 | 
						|
#if (HW_PLATFORM != HW_PLATFORM_SIMU)
 | 
						|
/* KPI for Performance */
 | 
						|
#if PLC_SUPPORT_CCO_ROLE
 | 
						|
#if (IOT_FLASH_BUILD)
 | 
						|
#if RUN_IN_PSRAM
 | 
						|
#if (IOT_PSRAM_SIZE >= 4)
 | 
						|
#define PCO_PERFORMANCE_MBPS    (6)     // x1 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (50)    /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (140)   /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (6)     /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#else /* (IOT_PSRAM_SIZE >= 4) */
 | 
						|
#define PCO_PERFORMANCE_MBPS    (6)     // x1 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (30)    /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (100)   /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (6)     /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#endif /* (IOT_PSRAM_SIZE >= 4) */
 | 
						|
#else /* RUN_IN_PSRAM */
 | 
						|
#define PCO_PERFORMANCE_MBPS    (1)     // x1 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (5)     /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (10)    /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (1)     /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#endif /* RUN_IN_PSRAM */
 | 
						|
#else
 | 
						|
/* PSRAM build don't have so much RAM */
 | 
						|
#define PCO_PERFORMANCE_MBPS    (1)     // x1 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (5)     /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (5)     /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (1)     /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#endif
 | 
						|
#elif ((IOT_STA_CONTROL_MODE == IOT_STA_CONTROL_TYPE_STA) || \
 | 
						|
        (IOT_STA_CONTROL_MODE == IOT_STA_CONTROL_TYPE_METER) || \
 | 
						|
        (IOT_STA_CONTROL_MODE == IOT_STA_CONTROL_TYPE_PPM_DETECT) || \
 | 
						|
        IOT_DEV_TEST_CCO_MODE)
 | 
						|
#if RUN_IN_PSRAM
 | 
						|
#define PCO_PERFORMANCE_MBPS    (6)     // x6 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (50)    /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (100)   /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (6)     /* nmber of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#else
 | 
						|
#define PCO_PERFORMANCE_MBPS    (5/4)   // x1.25 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (6)     /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (21)    /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (4)     /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#endif
 | 
						|
#else
 | 
						|
#if RUN_IN_PSRAM
 | 
						|
#define PCO_PERFORMANCE_MBPS    (6)      // x6 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (50)     /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (100)    /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (20)     /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#else
 | 
						|
#define PCO_PERFORMANCE_MBPS    (1)     // x1 Mbps
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (6)     /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (20)    /* 1k buffer minimal requirement */
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (1)     /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
#else /* HW_PLATFORM != HW_PLATFORM_SIMU */
 | 
						|
#define PCO_PERFORMANCE_MBPS    (6)     // x6 Mbps
 | 
						|
#define PLC_BCSMA_TOKEN_NUM     (20)    /* number of bound CSMA tokens */
 | 
						|
#define PLC_TDMA_TOKEN_NUM      (1)     /* number of bound TDMA tokens */
 | 
						|
#if PLC_SUPPORT_CCO_ROLE
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (110)   /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (215)   /* 1k buffer minimal requirement */
 | 
						|
#else /* PLC_SUPPORT_CCO_ROLE */
 | 
						|
#define PLC_LONG_BUF_MIN_NUM    (6)     /* 2k buffer minimal requirement */
 | 
						|
#define PLC_LARGE_BUF_MIN_NUM   (30)    /* 1k buffer minimal requirement */
 | 
						|
#endif /* PLC_SUPPORT_STA_ROLE */
 | 
						|
#endif /* HW_PLATFORM == HW_PLATFORM_SIMU */
 | 
						|
 | 
						|
/* max buf required under KPI */
 | 
						|
#define PCO_RX_DATA_BUF_KB      ((64 * PCO_PERFORMANCE_MBPS) << 10)
 | 
						|
 | 
						|
#if HPLC_RF_DEV_SUPPORT
 | 
						|
#if (PLC_NETWORK_SCALE > 1015)
 | 
						|
/* 3K : reserved for rf discovery node list mme generation */
 | 
						|
#define PLC_HUGE_BUF_SIZE       (3000)
 | 
						|
#define PLC_HUGE_BUF_COUNT      (2)
 | 
						|
#elif (PLC_NETWORK_SCALE > 256)
 | 
						|
/* 2K : reserved for rf discovery node list mme generation */
 | 
						|
#define PLC_HUGE_BUF_SIZE       (PLC_LONG_BUF_SIZE)
 | 
						|
#define PLC_HUGE_BUF_COUNT      (0)
 | 
						|
#else
 | 
						|
/* 1K : reserved for rf discovery node list mme generation */
 | 
						|
#define PLC_HUGE_BUF_SIZE       (PLC_LARGE_BUF_SIZE)
 | 
						|
#define PLC_HUGE_BUF_COUNT      (0)
 | 
						|
#endif
 | 
						|
#else /* HPLC_RF_DEV_SUPPORT */
 | 
						|
#if (PLC_NETWORK_SCALE > 1015)
 | 
						|
/* 3K : reserved for discovery node list mme generation */
 | 
						|
#define PLC_HUGE_BUF_SIZE       (3000)
 | 
						|
#define PLC_HUGE_BUF_COUNT      (1)
 | 
						|
#elif (PLC_NETWORK_SCALE > 256)
 | 
						|
#define PLC_HUGE_BUF_SIZE       (PLC_LONG_BUF_SIZE)
 | 
						|
#define PLC_HUGE_BUF_COUNT      (0)
 | 
						|
#else
 | 
						|
#define PLC_HUGE_BUF_SIZE       (PLC_SHORT_BUF_SIZE)
 | 
						|
#define PLC_HUGE_BUF_COUNT      (0)
 | 
						|
#endif
 | 
						|
#endif /* HPLC_RF_DEV_SUPPORT */
 | 
						|
 | 
						|
/* 2K : 1/16 at least 2 */
 | 
						|
#define PLC_LONG_BUF_SIZE       (PLC_HW_RX_BUF_SIZE)
 | 
						|
#define PLC_LONG_BUF_COUNT      ((PCO_RX_DATA_BUF_KB/PLC_LONG_BUF_SIZE / 16) \
 | 
						|
                                    < PLC_LONG_BUF_MIN_NUM ? \
 | 
						|
                                    PLC_LONG_BUF_MIN_NUM : \
 | 
						|
                                    (PCO_RX_DATA_BUF_KB/PLC_LONG_BUF_SIZE / 16))
 | 
						|
#define PLC_LONG_RX_BUF_COUNT   (PLC_LONG_BUF_COUNT / 2)
 | 
						|
#define PLC_LONG_TX_BUF_COUNT   (PLC_LONG_BUF_COUNT - PLC_LONG_RX_BUF_COUNT)
 | 
						|
 | 
						|
/* 1K : 1/16 */
 | 
						|
#define PLC_LARGE_BUF_SIZE      (PLC_HW_RX_BUF_SIZE / 2)
 | 
						|
#define PLC_LARGE_BUF_COUNT \
 | 
						|
    ((PCO_RX_DATA_BUF_KB/PLC_LARGE_BUF_SIZE / 16) < PLC_LARGE_BUF_MIN_NUM ? \
 | 
						|
    PLC_LARGE_BUF_MIN_NUM : (PCO_RX_DATA_BUF_KB/PLC_LARGE_BUF_SIZE / 16))
 | 
						|
#define PLC_LARGE_RX_BUF_COUNT  (PLC_LARGE_BUF_COUNT / 2)
 | 
						|
#define PLC_LARGE_TX_BUF_COUNT  (PLC_LARGE_BUF_COUNT - PLC_LARGE_RX_BUF_COUNT)
 | 
						|
 | 
						|
/* 136 : 3/8, in rx ring */
 | 
						|
#define PLC_SMALL_BUF_SIZE      (PLC_RX_BUF_RESV_SIZE + 136 + MAC_HW_WAR_RESV_BYTES)
 | 
						|
 | 
						|
#if (PLC_SUPPORT_STA_ROLE && (TARGET_VERSION == TARGET_KUNLUN))
 | 
						|
 | 
						|
#define PLC_SMALL_BUF_COUNT     ((PCO_RX_DATA_BUF_KB/PLC_SMALL_BUF_SIZE / 8 * 3) \
 | 
						|
    - 10)
 | 
						|
 | 
						|
#else /* PLC_SUPPORT_STA_ROLE && (TARGET_VERSION == TARGET_KUNLUN) */
 | 
						|
 | 
						|
#define PLC_SMALL_BUF_COUNT     ((PCO_RX_DATA_BUF_KB/PLC_SMALL_BUF_SIZE / 8 * 3))
 | 
						|
 | 
						|
#endif /* PLC_SUPPORT_STA_ROLE && (TARGET_VERSION == TARGET_KUNLUN) */
 | 
						|
 | 
						|
#define PLC_SMALL_RX_BUF_COUNT  (PLC_SMALL_BUF_COUNT / 2)
 | 
						|
#define PLC_SMALL_TX_BUF_COUNT  (PLC_SMALL_BUF_COUNT - PLC_SMALL_RX_BUF_COUNT)
 | 
						|
 | 
						|
/* 520 : 4/8, in rx ring */
 | 
						|
/* the rest alloc to 520's buffer size */
 | 
						|
#define PLC_SHORT_BUF_SIZE      (PLC_RX_BUF_RESV_SIZE + 520 \
 | 
						|
            + MAC_HW_WAR_RESV_BYTES + MAC_HW_WAR_SPG_RESV_SHORT_BYTES)
 | 
						|
#define PLC_SHORT_BUF_COUNT     (PCO_RX_DATA_BUF_KB/PLC_SHORT_BUF_SIZE / 8 * 4)
 | 
						|
#define PLC_SHORT_RX_BUF_COUNT  (PLC_SHORT_BUF_COUNT / 2)
 | 
						|
#define PLC_SHORT_TX_BUF_COUNT  (PLC_SHORT_BUF_COUNT - PLC_SHORT_RX_BUF_COUNT)
 | 
						|
 | 
						|
#if HPLC_RF_DEV_SUPPORT
 | 
						|
#if RUN_IN_PSRAM
 | 
						|
#define RF_PCO_PERFORMANCE_MBPS (6)
 | 
						|
#else /* RUN_IN_PSRAM */
 | 
						|
#define RF_PCO_PERFORMANCE_MBPS (1)
 | 
						|
#endif /* RUN_IN_PSRAM */
 | 
						|
#else /* HPLC_RF_DEV_SUPPORT */
 | 
						|
#define RF_PCO_PERFORMANCE_MBPS (0)
 | 
						|
#endif /* HPLC_RF_DEV_SUPPORT */
 | 
						|
 | 
						|
//TODO: fix rf performance base on chip
 | 
						|
#define RF_PCO_RX_DATA_BUF_KB   ((64 * RF_PCO_PERFORMANCE_MBPS) << 10)
 | 
						|
 | 
						|
/* 136: 1/2, rf in rx ring buffer */
 | 
						|
#define RF_SMALL_BUF_COUNT      (RF_PCO_RX_DATA_BUF_KB / PLC_SMALL_BUF_SIZE / 2)
 | 
						|
#define RF_SMALL_RX_BUF_COUNT   (RF_SMALL_BUF_COUNT / 2)
 | 
						|
#define RF_SMALL_TX_BUF_COUNT   (RF_SMALL_BUF_COUNT - RF_SMALL_RX_BUF_COUNT)
 | 
						|
 | 
						|
/* 520: 1/2, rf in rx ring buffer */
 | 
						|
#define RF_SHORT_BUF_COUNT      (RF_PCO_RX_DATA_BUF_KB / PLC_SHORT_BUF_SIZE / 2)
 | 
						|
#define RF_SHORT_RX_BUF_COUNT   (RF_SHORT_BUF_COUNT / 2)
 | 
						|
#define RF_SHORT_TX_BUF_COUNT   (RF_SHORT_BUF_COUNT - RF_SHORT_RX_BUF_COUNT)
 | 
						|
 | 
						|
#if RUN_IN_PSRAM
 | 
						|
#define RF_BCSMA_TOKEN_NUM      (20)    /* number of bound CSMA tokens */
 | 
						|
#define RF_TDMA_TOKEN_NUM       (1)     /* number of bound TDMA tokens */
 | 
						|
#else
 | 
						|
#define RF_BCSMA_TOKEN_NUM      (1)     /* number of bound CSMA tokens */
 | 
						|
#define RF_TDMA_TOKEN_NUM       (1)     /* number of bound TDMA tokens */
 | 
						|
#endif
 | 
						|
 | 
						|
/* AVG pkt len */
 | 
						|
#define PCO_AVG_PKT_LEN_KB      (1) // 1k Byte
 | 
						|
/* MAX Peer NUM support when not dropping packet under KPI */
 | 
						|
#define PCO_PEER_NUM_SUPPORT    \
 | 
						|
    (PCO_RX_DATA_BUF_KB / PCO_AVG_PKT_LEN_KB)
 | 
						|
 | 
						|
/* plc debug pkt mode parameter */
 | 
						|
/* debug pkt mode tx/rx nid */
 | 
						|
#define PLC_DBG_PKT_MODE_NID            0
 | 
						|
/* debug pkt mode default link id */
 | 
						|
#define PLC_DBG_PKT_MODE_DEF_LID        LID_CSMA_CAP3
 | 
						|
/* debug pkt mode default tx/rx phase */
 | 
						|
#define PLC_DBG_PKT_MODE_DEF_PHASE      PLC_PHASE_ALL
 | 
						|
/* rf rssi value */
 | 
						|
#define INV_RSSI_RF                     (INVALID_RSSI)
 | 
						|
#define MAX_RSSI_RF                     (127)
 | 
						|
#define MIN_RSSI_RF                     (-127)
 | 
						|
 | 
						|
/* NTB tick number for each ms */
 | 
						|
#define NTB_TICKS_PER_MS        (25000)
 | 
						|
 | 
						|
/* rf bcn slot tx reserver time, unit: 1us */
 | 
						|
#define RF_BCN_TX_RESERVE_US            (7 * 1000)
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif  // PLC_CONST_H
 |