Visible to Intel only — GUID: smj1745508001907
Ixiasoft
3.5.1. Hardware Requirements
3.5.2. Software Requirements
3.5.3. Set Up the Hardware and Program the FPGA
3.5.4. Configuration Changes from BIOS
3.5.5. Host Operating System Check for Ubuntu v22.04
3.5.6. Installing the Required Kernel Version for Ubuntu v24.04
3.5.7. Set the Boot Parameters
3.5.8. MCDMA Custom Driver
3.5.9. MCDMA DPDK Poll Mode Driver
3.5.10. MCDMA Kernel Mode Network Device Driver
Visible to Intel only — GUID: smj1745508001907
Ixiasoft
3.5.8.5. BAS Test
Note: For the Traffic Generator/Checker design example, you must disable the MSI-X parameter, IFC_QDMA_MSIX_ENABLE, in the Custom Driver's p0_software/kernel/common/include/mcdma_ip_params.h file if MSI-X is not enabled in the IP Parameter Editor. By default, the Custom Driver software parameter is enabled and MSI-X is disabled in the IP. This mismatch prevents the ifc_uio kernel module from being loaded.
For BAS x4:
- BAS x4 supports a burst length of 32 by default. In the file perfq_app.h (p0_software/user/cli/perfq_app/perfq_app.h)
#define IFC_MCDMA_BAS_X4_BURST_LENGTH 32
To enable BAS, set the following software flag in p0_software/user/common/mk/common.mk):
__cflags += -DIFC_MCDMA_BAS_EN
Note: Refer to Design Example BAR Mappings for BAR mappings information.
Commands:
To verify the write operation:
$ sudo ./cli/perfq_app/perfq_app -b 0000:01:00.0 -s 512 -e -t --bar=0
Figure 37. BAS Write Operation

To verify the read operation:
$ sudo ./cli/perfq_app/perfq_app -b 0000:01:00.0 -s 512 -e -r --bar=0
Figure 38. BAS Read Operation

To verify the write and read operations:
$ sudo ./cli/perfq_app/perfq_app -b 0000:01:00.0 -s 512 -e -z --bar=0
Figure 39. BAS Write and Read Operations

Performance test:
The log below is collected on a Gen4 1x16 P-Tile:
sudo ./cli/perfq_app/perfq_app -b 0000:01:00.0 -s 16384 --bas_perf -z --bar=0
Figure 40. BAS Write and Read Performance Test

Note: You may not be able to proceed with the -z option. Add the flag #define IFC_QDMA_INTF_ST in user/common/include/mcdma_ip_params.h as a workaround to make it work.
Note: In the case of VFIO, to run BAM+BAS+MCDMA, you need to create at least three VFs and run on each VF respectively. If you try to use one VF to run BAM+BAS+MCDMA simultaneously in the case of VFIO, it gives a "resource busy" prompt.