Wi-Fi PER Mode#

SiWx91x RCP driver supports Wi-Fi PER mode transmit and E2E mode receive functionality. Follow the steps below to verify both functionalities. 

PER Transmit#

  1. See the Compilation Steps section and compile the driver, as follows:

    # make clean; make
  2. Navigate to the release folder and run the following commands to set the driver to PER mode.

    # cd release
    # insmod rsi_91x.ko dev_oper_mode=1 driver_mode_value=2 rsi_zone_enabled=0x601
    # insmod rsi_sdio.ko sdio_clock=10
  3. Run the following command to check 11N PER transmit:

    # ./transmit <base_interface> <Transmit_power> <Data_rate> <Pkt_length> <Transmit_mode> <Channel_no> <11ax_enable> <Rate_flags> <Aggr_enable> <no_of_packets> <delay> <Regulatory_domain>

Description of each field:

SI No

Parameters

Description

values

1

base_interface

Interface Name (string like rpine0).

2

Transmit_power

Controls the transmit power in dBm units

-7 to 18

127 → The packet will be transmitted at the maximum power from the Transmit power table

3

Data_rate

Set the transmit data rate

1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54, mcs0, mcs1, mcs2, mcs3, mcs4, mcs5, mcs6 and mcs7

4

Pkt_length

Transmit packet length in bytes

5

Transmit_mode

Burst or Continuous mode

0 → Burst mode

1 → Continuous mode

6

Channel_no

Channel number on which packets are transmitted

IEEE802.11 channels

7

11ax_enable

Enable / Disable 11ax mode

1 → 11ax mode enabled

0 → 11n Mode enabled

8

Rate_flags

- To enable/disable Short GI & Greenfield.

- Also to set the channel width of the transmitted packets

Bit 0  (Short_GI for HT mode)/(Short_preamble in 11b)

Bit 1  : (GreenField for HT mode)/(preamble enable for 11b)

Bit 4-2 : CH_BW flags

Bit 5 : This bit has to be set when the user selects 11J channel

Bit 15-6 : Reserved

9

Aggr_enable

Enable / Disable Aggregation of transmitting packets

0 → Disable

1 → Enable

10

no_of_packets

- Number of packets to be transmitted in Burst mode.

- The transmission stops after the no. of packets specified by this parameter are transmitted in the Burst mode.

- If this value is 0, then the transmission will not stop until the user gives the "./transmit 0" command in order to stop the transmissions.

- This parameter is ignored in the case of Continuous mode of transmission.

11

delay

- To specify a delay (in us) between any two packets in burst mode.

- If 0, then the packets will be transmitted without any delay.

- Is ignored in the case of Continuous mode of transmission

12

Regulatory_domain

Set the regulatory Domain

0 → US (FCC)

1 → Europe (ETSI)

2 → Japan (JP)

255 → World Domain

Example

# ./transmit rpine0 127 5.5 750 0 11 0 0 0 0 0 255

The above command starts continuous transmission with the following configuration:

Parameter

Value

Transmit gain

2 dbm

Data rate

5.5 Mbps

Packet Length

750 bytes

Transmit mode

1 (continuous mode).

Channel number

11

External PA

disabled

Rate flags

1 (Short GI is enabled with 20 MHz Channel width)

Aggregation

disabled (ignored in continuous mode)

Number of packets to be transmitted

0 (ignored in continuous mode)

Delay between the packets

0 (ignored in continuous mode)

  1. Run the following command to check 11AX PER transmit:

    # ./transmit <base_interface> <Trasmit_power> <Data_rate> <Pkt_length> <Transmit_mode> <Channel> <11ax_en> <Rate_flags> <Aggr_enable> <no_of_packets> <delay> <Regulatory_Domain> <coding_type> <nominal_pe> <he_ppdu_type> <beam_change> <BW> <UL_DL> <STBC> <Tx_BF> <GI_LTF> <DCM> <NSTS_MIDAMBLE> <spatial_reuse> <BSS_color> <HE_SIGA2_RESERVED> <RU_ALLOCATION> <N_HELTF_TOT> <SIGB_DCM> <SIGB_MCS> <USER_STA_ID> <SIGB_COMPRESSION_FIELD> <USER_IDX>

Description of each parameter is as below:

Parameters Name

Description

Expected Values

coding_type

Indicates whether BCC or LDPC to be used

0 - BCC

1 - LDPC

nominal_pe

Indicates Nominal T-PE value

0 - 0us

1 - 8us

2 - 16us

HE_PPDU_TYPE

0 - HE SU PPDU

1 - HE ER SU PPDU

2 - HE TB PPDU

3 - HE MU PPDU

Beam Change

Indicates the spatial mapping of pre-HE and HE fields

0 - pre-HE and HE fields are spatially mapped in the same way

1 - pre-HE and HE fields are spatially mapped differently

BW

Indicates the BW for the PPDU

SU PPDU:

0 - 20 MHz

1 - 40 MHz

2 - 80 MHz

3 -160 MHz (Only 20 MHz is supported in H/W)

ER SU PPDU:

0 - 242-tone RU

1 - upper

106-tone RU

UL_DL

Indicates whether the PPDU is UL/DL

Set to 1,if PPDU is Sent by Station to AP

Set to 0,if PPDU is sent by AP

STBC

Indicates whether STBC is used for PPDU transmission

0 - no STBC

1 - STBC only if DCM field is set to 0

TxBF

Indicates whether beamforming matrix is applied to the transmission

0 - No beamforming matrix

1 - beamforming matrix.

Set to "0" by default.

GI_LTF

Indicates the GI and LTF size

SU/ER_SU:

0 - 1x HE-LTF and 0.8us GI

1 - 2x HE-LTF and 0.8us GI

2 - 2x HE-LTF and 1.6us GI

3 - 4x HE-LTF and 0.8us GI if both DCM and STBC fields are 1, else 4x HE-LTF and 3.2us GI

MU:

0 - 4x HE-LTF and 0.8us GI

1 - 2x HE-LTF and 0.8us GI

2 - 2x HE-LTF and 1.6us GI

3 - 4x HE-LTF and 3.2us GI

TB:

0 - 1x HE-LTF and 1.6us GI

1 - 2x HE-LTF and 1.6us GI

2 - 4x HE-LTF and 3.2us GI

3 - Reserved

DCM

Indicates whether DCM is applied to Data Symbols

0 - no DCM

1 - DCM

NSTS_MIDAMBLE

Indicates the Nsts and Midamble Periodicity

If Doppler is set to 0

BIT[15:13] = Number of space-time streams-1

If Doppler is set to 1

BIT[14:13] = = Number of space-time streams-1

BIT[15] = 0 for MIDAMBLE Periodicity of 10

BIT[15]= 1 for MIDAMBLE Periodicity of 20

Default Doppler value is 0.

Spatial Reuse

Indicates whether spatial reuse is allowed during the transmission of the PPDU

BSS color

Color value of BSS

HE_SIGA2_RESERVE

This should be set to 1

The value should be between 0 to 511

RU_ALLOCATION

Indicates the RU Allocation Subfield for 20 MHz BW

The value should be between 0 to 255

N_HELTF_TOT

Indicates the number of HE-LTF to be transmitted

The vale should be between 0 to 7

SIGB_DCM

Indicates whether DCM is applied to SIG-B Symbols** 

The value should be 0 to Enable and 1 to Disable

SIGB_MCS

Indicates the MCS for SIG-B Symbols

Range of 0-5

6,7 - Reserved

USER_STA_ID

Indicates the Station ID of the intended user

The value should be between 0 to 2047

SIGB_COMPRESSION_FIELD

The value should be 0 or 1

USER_IDX

Indicates the index of the intended user

0 - 1st user

1 - 2nd user .....

8 - 9th user

9 - 63 - Reserved

Example:

# ./transmit rpine0 127 mcs0 4000 0 6 1 0 1 0 0 255 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0
  1. Run the following command to stop PER transmit:

# ./transmit rpine0 0

Wi-Fi Receive#

The "receive" utility present in the "release" folder can be invoked for displaying the following information.

  • Total number of CRC PASS packets

  • Total number of CRC FAIL packets and

  • Total number of FALSE CCAs

Receive Command Usage#

# ./receive <rpine-interface> <filename> <channel_number> <start/stop> <channel_width> [user_mask]

<rpine_interface>: This parameter specifies the Base Interface (string like rpine0).

<file_name >: Name of the file into which the statistics will be logged, in addition to being displayed on the console.

<channel_number> Channel number in which the statistics need to be logged. On-air testing in DFS,; The channels should be avoided till the module is certified for DFS. Cabled tests can be made to run in these channels.

<start/stop>: Parameter to start or stop logging the statistics. Enter 0 to start logging and 1 to stop logging. 

<channel_width>: Operating bandwidth of the channel. See the table below.

[user_mask]: This is an OPTIONAL parameter and is a bitmap through which we can select group of stats defined in below section.

Value

Channel Width

0

20 MHz

2

Upper 20 MHz of 40 MHz

4

Lower 20 MHz of 40 MHz

6

Full 40 MHz

8

20 Mhz mode for 11J channel

<user_mask>: The receive stats are divided in 5 groups. You can select any of the groups or multiple groups of stats by using user_mask value.

Giving 0 or Not argument will result in the old format.

Below table is a grouping of stats:

crc_pass and crc_fail are the common stats to all the groups.

If you do not provide the user_mask value or 0, the default stats are displayed.

BIT

STATS

0

cca_stk

cca_stk

cca_not_stk

pkt_abort

false_rx_stat

cca_idle

cal_rssi

no_of_ack_sent

1

false_under_sat

bss_broad_cast_pkts

bss_multicast_pkts

bss_da_matched_multicast_pkts

eof_pkts_drop_count

mask_pkts_drop_count

2

11B_pkts

11G_pkts

11N/mcs pkts

11AX_pkts

HE_SU_PPDU_pkts

HE_ER_SU_PPDU_pkts

HE_TRIG_PPDU_pkts

HE_MU_PPDU_pkts

11AC_pkts

3

Tx done count

4

Total_tx_pkts(mgmt/internal mgmt)

rx_packets

tx_retries

gf_pkts

ht_pkts

leg_pkts

leg_prty_pkts

ht_crc_fails

sp_rejected

lp_rejected

ch1_sig_pow

ch1_noise_pow

ch2_sig_pow

ch2_noise_pow

ch3_sig_pow

ch3_noise_pow

rssi

lna_bb_gain

avg_val

max_retries

max_consecutive_pkt_dropped

Example 1: If user_mask value = 2 , below output is expected: Output with user_mask value 2

Example 2: If user_mask value = 9 , below output is expected: Output with user_mask value 9

Example 3: If user_mask value = 4 , below output is expected: Output with user_mask value 4

If no user_mask value is given default stats are displayed as in below image: Output with no user_mask value

Once the above command is given on command line, periodically(For each sec) the stats will be displayed on the terminal.

Receive E2E Stats#

  1. See the Compilation Steps and Installing the Driver sections for Wi-Fi E2E Connection.

  2. Navigate to the release folder and run receive utility for E2E receive stats.

# cd release 
# ./receive rpine0 <filename> <ch_num> <start/stop> <ch_width>

Note : Make sure to disable power save while running E2E Receive stats