NetSim Source Code Help v14.4
All 13 Components
 
Loading...
Searching...
No Matches
IEEE802_11_HTPhy.h
1/************************************************************************************
2* Copyright (C) 2023 *
3* TETCOS, Bangalore. India *
4* *
5* Tetcos owns the intellectual property rights in the Product and its content. *
6* The copying, redistribution, reselling or publication of any or all of the *
7* Product or its content without express prior written consent of Tetcos is *
8* prohibited. Ownership and / or any other right relating to the software and all *
9* intellectual property rights therein shall remain at all times with Tetcos. *
10* *
11* Author: Shashi Kant Suman *
12* *
13* ---------------------------------------------------------------------------------*/
14#ifndef _NETSIM_IEEE802_11N_PHY_H_
15#define _NETSIM_IEEE802_11N_PHY_H_
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20 /**
21 Enumerations for 802.11n
22 Table 20-1—TXVECTOR and RXVECTOR parameters page 249- 802.11n-2009.pdf
23 */
24 typedef enum enum_802_11n_FORMAT
25 {
26 NON_HT, ///< For legacy non 802.11n
27 HT_MF, ///< indicates HT-mixed format. legacy + 802.11n
28 HT_GF, ///< indicates HT-greenfield format. Only 802.11n supported devices.
29 ///< We are considered this method only.
30 }FORMAT;
31
32 typedef enum enum_802_11_HT_CH_BANDWIDTH
33 {
34 HT_CBW20, ///< 20 MHz and 40 MHz upper and 40 MHz lower modes
35 HT_CBW40, ///< 40 MHz
36 VHT_CBW80, ///< 80 MHz
37 VHT_CBW160, ///< 160 MHz
38 NON_VHT_CBW160, ///< for non-HT duplicate format
39 NON_VHT_CBW80, ///< for all other non-HT formats
40 NON_HT_CBW40, ///< for non-HT duplicate format
41 NON_HT_CBW20, ///< for all other non-HT formats
42 }CH_BANDWIDTH;
43
44 //Frequency-domain smoothing is recommended as part of channel estimation.
45 typedef enum enum_802_11_HT_SMOOTHING
46 {
47 SMOOTHING_NOT_REC, ///< smoothing is not recommended.
48 SMOOTHING_REC, ///< smoothing is recommended.
49 }SMOOTHING;
50
51 /// Indicates whether this packet is a sounding packet.
52 typedef enum enum_802_11_HT_SOUNDING
53 {
54 SOUNDING, ///< sounding packet.
55 NOT_SOUNDING ///< not a sounding packet
56 }HT_SOUNDING;
57
58 /// Indicates whether the PSDU contains an A-MPDU.
59 typedef enum enum_802_11_HT_AGGREGATION
60 {
61 NOT_AGGREGATED, ///< Packet does not have A-MPDU aggregation
62 AGGREGATED, ///< Packet has A-MPDU aggregation
63 }AGGREGATION;
64
65 /// Indicates which FEC encoding is used.
66 typedef enum enum_802_11_HT_FEC_CODING
67 {
68 BCC_CODING, ///< Binary convolutional code -BCC
69 LDPC_CODING, ///< low-density parity check code - LDPC
70 }FEC_CODING;
71
72 /// Guard interval is used in the transmission of the packet.
73 typedef enum enum_802_11_HT_GI_TYPE
74 {
75 LONG_GI, ///< Long GI is not used in the packet 800ns
76 SHORT_GI, ///< Short GI is used in the packet 400ns
77 }GI_TYPE;
78
79 typedef enum enum_802_11_HT_CHAN_MAT_TYPE
80 {
81 COMPRESSED_SV, ///< CHAN_MAT is a set of compressed beamforming vector matrices.
82 NON_COMPRESSED_SV, ///< CHAN_MAT is a set of noncompressed beamforming vector matrices.
83 CSI_MATRICES, ///< CHAN_MAT is a set of channel state matrices.
84 }CHAN_MAT_TYPE;
85
86 /// Table 20-5—Timing-related constants and Table 20-6—Frequently used parameters
88 {
89 double dRxSensitivity;
90 PHY_MODULATION modulation;
91 double dCodingRate;
92 double dDataRate;
93 int nNBPSC;
94 int nNCBPS;
95 int nNDBPS;
96
97 int nChannelBandwidth; // 20MHz or 40MHz
98 int nFFT; ///< FFT length
99 int nNSD; ///< NSD Number of complex data numbers
100 int nNSP; ///< NSP Number of pilot values
101 int nNST; ///< NST Total number of subcarriers
102 int nNSR; ///< NSR Highest data subcarrier index
103 double dDeltaF; ///<dSubcarrierFrequencySpacing; // 312.5KHz (20 MHz/64) or (40 MHz/128)
104 double dTDFT; ///< IDFT/DFT period 3.2
105 double dTGI; ///< Guard interval duration 0.8 = TDFT/4
106 double dTGI2; ///< Double guard interval 1.6
107 double dTGIS; ///< Short guard interval duration dDFT/8 0.4
108 int nTL_STF; ///< Non-HT short training sequence duration 8 = 10*TDFT/4
109 int nTHT_GF_STF; ///< HT-greenfield short training field duration 8 =10* TDFT/4
110 int nTL_LTF; ///< Non-HT long training field duration 8 =2 * TDFT + TGI2
111 double dTSYM; ///< TSYM: Symbol interval 4 = TDFT + TGI
112 double dTSYMS; ///< dShortGIsymbolInterval; // TSYMS: Short GI symbol interval N/A 3.6 = TDFT+TGIS 3.6
113 int nTL_SIG; ///< Non-HT SIGNAL field duration 4
114 int nTHT_SIG; ///< HT SIGNAL field duration 8 = 2TSYM 8
115 int nTVHT_SIGA; ///< HT SIGNAL field duration = 2TSYM = 8
116 int nTVHT_SIGB; ///< HT SIGNAL field duration = TSYM = 4
117 int nTHT_STF; ///< HT short training field duration 4
118 int nTHT_LTF1; ///< First HT long training field duration 4 in HT-mixed format, 8 in HTgreenfield format
119 int nTHT_LTFs; ///< Second, and subsequent, HT long training fields duration 4
120
121 // Table 20-1—TXVECTOR and RXVECTOR parameters page 249- 802.11n-2009.pdf
122 FORMAT nFormat;
123 int nNonHtModulation;
124 int nL_LENGTH;
125 int nL_DATARATE;
126 int nLSIGVALID;
127 int nSERVICE;
128 int nTXPWR_LEVEL;
129 int nRSSI;
130 int nPREAMBLE_TYPE;
131 int nMCS;
132 int nREC_MCS;
133 CH_BANDWIDTH nCH_BANDWIDTH;
134 int nCH_OFFSET;
135 int nLENGTH;
136 SMOOTHING nSMOOTHING;
137 HT_SOUNDING nSOUNDING;
138 AGGREGATION nAGGREGATION;
139 int nSTBC;
140 FEC_CODING nFEC_CODING;
141 GI_TYPE nGI_TYPE;
142 int NUM_EXTEN_SS;
143 int ANTENNA_SET;
144 int nN_TX;
145 int nEXPANSION_MAT;
146 int nEXPANSION_MAT_TYPE;
147 int nCHAN_MAT;
148 CHAN_MAT_TYPE nCHAN_MAT_TYPE;
149 int nRCPI;
150 int nSNR;
151 int nNO_SIG_EXTN;
152 }IEEE802_11_OFDM_MIMO;
153
154
155#ifdef __cplusplus
156}
157#endif
158#endif //_NETSIM_IEEE802_11N_PHY_H_
Table 20-5—Timing-related constants and Table 20-6—Frequently used parameters.
int nTHT_STF
HT short training field duration 4.
int nTVHT_SIGA
HT SIGNAL field duration = 2TSYM = 8.
int nNSR
NSR Highest data subcarrier index.
double dTGI2
Double guard interval 1.6.
int nTHT_LTF1
First HT long training field duration 4 in HT-mixed format, 8 in HTgreenfield format.
double dTGI
Guard interval duration 0.8 = TDFT/4.
double dTSYM
TSYM: Symbol interval 4 = TDFT + TGI.
int nNSD
NSD Number of complex data numbers.
int nNST
NST Total number of subcarriers.
int nTVHT_SIGB
HT SIGNAL field duration = TSYM = 4.
double dDeltaF
dSubcarrierFrequencySpacing; // 312.5KHz (20 MHz/64) or (40 MHz/128)
int nTL_STF
Non-HT short training sequence duration 8 = 10*TDFT/4.
int nNSP
NSP Number of pilot values.
double dTGIS
Short guard interval duration dDFT/8 0.4.
double dTSYMS
dShortGIsymbolInterval; // TSYMS: Short GI symbol interval N/A 3.6 = TDFT+TGIS 3.6
int nTHT_SIG
HT SIGNAL field duration 8 = 2TSYM 8.
int nTHT_GF_STF
HT-greenfield short training field duration 8 =10* TDFT/4.
int nTL_LTF
Non-HT long training field duration 8 =2 * TDFT + TGI2.
int nTHT_LTFs
Second, and subsequent, HT long training fields duration 4.
double dTDFT
IDFT/DFT period 3.2.
int nTL_SIG
Non-HT SIGNAL field duration 4.