Test-Label: intel-Functional Test-Status: SUCCESS _Functional PASS_ DPDK git repo: dpdk commit 9f0e1c5cad46074bf85bfb9084bc8f7e47e8aff9 Author: Vamsi Attunuru Date: Fri Oct 17 19:36:52 2025 +0530 dmadev: add inter-domain control plane API Secure and controlled inter-domain DMA transfers require dedicated control-plane APIs to create and manage access groups. DMA devices used for inter-process data transfer can be categorized as follows: Class A: Both endpoints require a DMA device for data transfer (e.g., Marvell DMA devices). Class B: Only one endpoint requires a DMA device; the other does not. Class C: Other device types not currently classified. Providing a unified API for all these categories is complex, as Linux and other operating systems do not offer native control-plane APIs for this purpose. Therefore, DPDK can implement its own control-plane mechanisms to support Class A, B, and C devices. This commit introduces the necessary APIs for Class A DMA devices. Devices can create or join access groups using token-based authentication, ensuring that only authorized devices within the same group can perform DMA transfers across processes or OS domains. API Usage Flow: Process 1 (Group Creator): Invokes rte_dma_access_pair_group_create() to establish a new access pair group, then shares the group_id and token with Process 2 via IPC. Process 2 (Group Joiner): Receives the group_id and token from Process 1 and calls rte_dma_access_pair_group_join() to join the group. Both Processes: Use rte_dma_access_pair_group_handler_get() to obtain handler information for domains in the group. Perform DMA transfers as required. Process 2 (when finished): Calls rte_dma_access_pair_group_leave() to exit the group. Process 1: Monitors for group updates and confirms group membership as needed. Signed-off-by: Vamsi Attunuru Acked-by: Chengwen Feng Smoke-Testing Summary : 31 Case Done, 31 Successful, 0 Failures OS : Ubuntu 22.04.2 LTS Kernel : 5.15.0-60-generic GCC : 11.3.0-1ubuntu1~22.04 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc Test result details: +-----------------+---------------------------------------------------+-------+ | suite | case | status| +-----------------+---------------------------------------------------+-------+ | checksum_offload| test_checksum_offload_with_vlan | passed| | checksum_offload| test_do_not_insert_checksum_on_the_transmit_packet| passed| | checksum_offload| test_hardware_checksum_check_ip_rx | passed| | checksum_offload| test_hardware_checksum_check_ip_tx | passed| | checksum_offload| test_hardware_checksum_check_l4_rx | passed| | checksum_offload| test_insert_checksum_on_the_transmit_packet | passed| | checksum_offload| test_rx_checksum_valid_flags | passed| | checksum_offload| test_hardware_checksum_check_l4_tx | n/a | | dual_vlan | test_dual_vlan_priority_rxtx | passed| | dual_vlan | test_vlan_filter_config | passed| | dual_vlan | test_vlan_filter_table | passed| | dual_vlan | test_vlan_insert_config | passed| | dual_vlan | test_vlan_random_test | passed| | dual_vlan | test_vlan_strip_config | passed| | dual_vlan | test_vlan_synthetic_test | passed| | dual_vlan | test_vlan_tpid_config | passed| | dual_vlan | test_vlan_stripq_config | n/a | | jumboframes | test_jumboframes_bigger_jumbo | passed| | jumboframes | test_jumboframes_jumbo_jumbo | passed| | jumboframes | test_jumboframes_jumbo_nojumbo | passed| | jumboframes | test_jumboframes_normal_jumbo | passed| | jumboframes | test_jumboframes_normal_nojumbo | passed| | rxtx_offload | test_rxoffload_port_all | passed| | rxtx_offload | test_rxoffload_port_cmdline | passed| | rxtx_offload | test_txoffload_port | passed| | rxtx_offload | test_txoffload_port_all | passed| | rxtx_offload | test_txoffload_port_checksum | passed| | rxtx_offload | test_txoffload_port_cmdline | passed| | rxtx_offload | test_rxoffload_queue | n/a | | rxtx_offload | test_txoffload_port_multi_segs | n/a | | rxtx_offload | test_txoffload_queue | n/a | +-----------------+---------------------------------------------------+-------+ DPDK STV team