| /dpdk/doc/guides/prog_guide/ |
| H A D | rcu_lib.rst | 57 to enter a quiescent state. 62 However, the writer does not need to wait for reader thread 3 to enter 82 The writer has to poll the readers to identify the end of grace period. 95 to do other work without having to block until the readers report their 105 reader side to a minimum. 114 period to a minimum. 116 How to use this library 175 does not have to store the token or the reference to the deleted resource. The 199 #. Has to start the grace period 200 #. Has to store a reference to the deleted resources in a FIFO [all …]
|
| H A D | event_crypto_adapter.rst | 8 programming model with features to schedule events. 16 The Adapter queries an eventdev PMD to determine which mechanism to be used. 22 The application can choose to submit a crypto operation directly to 64 queue to this port and starts enqueuing crypto operations as events to eventdev 71 to enqueue a crypto operation in addition to the event information (response 94 configuration for the adapter to setup an event port(if the adapter needs to use 122 passed to it. 175 Adding queue pair to the adapter instance 229 addition to the event information (response information) needed to enqueue 235 to provide only the response information. [all …]
|
| H A D | graph_lib.rst | 8 ``links`` them together to create a complex ``graph`` to enable reusable/modular 116 The dynamic array to store the downstream nodes connected to this node. Downstream 177 matching to include the required nodes. After the graph create any changes to 196 are designed to work on single-core to have better performance. 219 the user needs to update the context of the node hence access to 231 to a worker thread. 257 to be written carefully to achieve max performance. 272 ``next_node[]`` to send to on a per-packet basis. In these nodes, 276 * Secondly, each packet needs to be queued to its next node. 312 to single next node. So, the current stream can be moved to next node using [all …]
|
| H A D | vhost_lib.rst | 9 to fetch/put packets from/to the VM virtio net device. To achieve this, a 23 the information it needs to know how to manipulate the vring. 59 Enabling this flag makes possible to use guest vIOMMU to protect vhost 84 buffers to be dequeue, this flag should be enabled to force only linear 96 but doesn't want to increase the default mempool object size nor to 223 Tell vhost which DMA vChannel is going to use. This function needs to 260 Submit an enqueue request to transmit ``count`` packets from host to guest 302 it just tries to connect to the server (which responses to create the 352 lib when mapping the guest memory; and also we need to lock the memory to 407 Called to set the negotiated features to device. [all …]
|
| H A D | event_ethernet_rx_adapter.rst | 32 DPDK service function and the application is also required to assign a core to 40 configuration for the adapter to setup an event port if the adapter needs to use 63 passed to it. 70 set to true. The function is passed the event device to be associated with 72 if the adapter needs to use a service function. 74 Adding Rx Queues to the Adapter Instance 148 The eventdev to which the event_eth_rx_adapter is connected needs to 159 it was not able to enqueue to the event device. 192 of zero when adding the Rx queue to the adapter. 202 is mapped to the main lcore. [all …]
|
| H A D | multi_proc_support.rst | 10 to work together in a simple transparent manner to perform packet processing, 15 The EAL has been modified to allow different types of DPDK processes to be spawned, 40 * ``--file-prefix:`` to allow processes that do not want to co-operate to have different memory r… 125 will attempt to preallocate all memory it can get to, and memory use must be 126 explicitly limited. This is done by passing the ``-m`` flag to each process to 208 delivered to primary process. Unicast from primary to secondary or from 248 * ``fds`` - file descriptors to pass long with the data (up to 8 fd's). 302 message to be delivered and for the callback to be trigger. 317 to do so will cause the requestor to time out while waiting on a response. 330 it safe to allocate/free memory inside IPC callbacks. Attempting to do so may [all …]
|
| H A D | event_ethernet_tx_adapter.rst | 29 to it. 36 configuration for the adapter to setup an event port if the adapter needs to use 43 and needs to create an event port for it. The callback is expected to fill the 59 Adding Tx Queues to the Adapter Instance 62 Ethdev Tx queues are added to the instance using the 64 of -1 is used to indicate all queues within a device. 91 Linking a Queue to the Adapter's Event Port 95 application is required to link a queue to the adapter's event port. The adapter's 98 since it is linked to a single event port. 118 Enqueuing Packets to the Adapter [all …]
|
| H A D | toeplitz_hash_lib.rst | 8 to calculate the Toeplitz hash function and to use its properties. 10 to calculate the RSS hash sum to spread the traffic among the queues. 33 * A pointer to the RSS hash key corresponding to the one installed on the NIC. 40 but it expects ``rss_key`` to be converted to the host byte order. 52 * A pointer to the tuple. 74 In some use cases it is useful to have a way to find partial collisions of the 88 MPLS tag to bind an LSP (Label Switching Path) to a given queue. This method 102 * Use the helper run time to calculate the adjustable bits of the tuple to 153 * A pointer to the Thash context to be associated with. 199 * A pointer to the tuple to be changed. [all …]
|
| H A D | mbuf_lib.rst | 44 Message buffers may also use their buffer pointers to point to other message buffer data sections o… 85 The offset to data is initialized to have some bytes of headroom in the buffer (RTE_PKTMBUF_HEADROO… 100 * Get a pointer to the start of data 138 set out_ip checksum to 0 in the packet 158 set in_ip checksum to 0 in the packet 169 set in_ip checksum to 0 in the packet 184 set in_ip checksum to 0 in the packet 200 set in_ip checksum to 0 in the packet 252 Attempting to attach buffer A to indirect buffer B that is attached to C, makes rte_pktmbuf_attach(… 253 Secondly, for a buffer to become indirect, its reference counter must be equal to 1, [all …]
|
| H A D | gpudev.rst | 19 to enhance the dialog between CPU and GPU. 55 connected to a physical device (parent). 63 returning the pointer to that memory. 97 that's waiting to receive a signal from the CPU 98 to move forward with the execution. 108 to receive the next bursts of packets. 111 to receive a new burst of packets to be processed, 112 there is the need to communicate from the CPU 116 and communicated to the task running on the GPU. 166 * With this flag, the CPU can tell to the CUDA kernel to exit from the main loop. [all …]
|
| H A D | writing_efficient_code.rst | 10 which is a valuable reference to writing efficient code. 46 Concurrent Access to the Same Memory Area 66 Sometimes, it can be a good idea to duplicate data to optimize speed. 129 When PCI devices write to system memory through DMA, 137 An application can be tuned to achieve a high throughput, 140 a low end-to-end latency, at the cost of lower throughput. 142 In order to achieve higher throughput, 218 to move to the critical section, but the memory operations in the critical 227 The payload or the data that the writer wants to communicate to the reader, 251 allow the developer to indicate if a code branch is likely to be taken or not. [all …]
|
| H A D | eventdev.rst | 10 similar to the ethdev or cryptodev APIs, which may already be familiar to the 156 events from an eventdev. Ports are linked to queues in order to retrieve events 163 This section will introduce the reader to the eventdev API, showing how to 189 The eventdev library uses vdev options to add devices to the DPDK application. 298 The final step is to "wire up" the ports to the queues. After this, the 303 Linking all workers to atomic queues, and the TX core to the single-link queue 324 events. Note that all queues must be linked to for the instance to start, as 325 if any queue is not linked to, enqueuing to that queue will cause the 326 application to backpressure and eventually stall due to no space in the 342 enqueue some events into the system for it to schedule. The events to be [all …]
|
| H A D | member_lib.rst | 28 We use the term "Set-Summary" in this guide to refer to the space-efficient, 56 attempt to share their web caches (cached from a set of back-end web servers) to 60 set-summary to find its location and quickly determine whether to retrieve the 72 Library to load-balance flows to worker threads with in-order guarantee where a 73 set-summary is used to query if a packet belongs to an existing flow or a new 74 flow. Packets belonging to a new flow are forwarded to the current least loaded 75 worker thread, while those belonging to an existing flow are forwarded to the 104 ``0`` to ``m-1`` to perform hashing calculations on each element to be inserted. Every time when an 149 bloom filters concurrently to determine which set(s) it belongs to or none of 234 distributing elements to different target sets. By allowing HTSS to evict old [all …]
|
| /dpdk/doc/guides/rawdevs/ |
| H A D | cnxk_gpio.rst | 19 - read/write specific value from/to exported GPIO 40 GPIOs in userspace please refer to 66 call barely exports GPIO to userspace. 83 Message is used to set output to low or high. This does not work for GPIOs 95 Message is used to set edge that triggers interrupt. 106 Message is used to change GPIO direction to either input or output. 117 Message is used to set whether pin is active low. 132 Payload contains integer set to either 0 or 1. 139 Message is used to read GPIO edge. 150 Message is used to read GPIO direction. [all …]
|
| H A D | cnxk_bphy.rst | 20 - Access to BPHY memory 26 The BPHY CGX/RPM devices will need to be bound to a user-space IO driver for 28 view the state of the devices and to bind them to a suitable DPDK-supported 52 Message is used to get information about link state. 70 Message is used to enable or disable PTP mode. 79 Message is used to change link mode. 81 Message must have type set to ``CNXK_BPHY_CGX_MSG_TYPE_SET_LINK_MODE``. Prior to sending actual 88 Message is used to set link up or down. 90 Message must have type set to ``CNXK_BPHY_CGX_MSG_TYPE_SET_LINK_STATE``. Prior to sending actual 97 Message is used to start or stop accepting traffic. [all …]
|
| /dpdk/doc/guides/tools/ |
| H A D | flow-perf.rst | 12 The application allows to configure which rule to apply through several 164 Add VLAN item to all flows items, 170 Add IPv4 item to all flows items, 175 Add IPv6 item to all flows item, 186 Add VXLAN item to all flows items, 198 Add GRE item to all flows items, 204 Add GENEVE item to all flows items, 210 Add GTP item to all flows items, 216 Add Meta item to all flows items, 222 Add Tag item to all flows items, [all …]
|
| /dpdk/doc/guides/contributing/ |
| H A D | abi_versioning.rst | 130 arguments. Occasionally that function may need to change to accommodate new 133 linked to the DPDK. 138 a given library to allow multiple versions of a symbol to exist in a shared 147 the linker to bind references to symbol ``b`` to the internal symbol 160 The macro is used when a symbol matures to become part of the stable ABI, to 332 new parameter in place. Next we need to map this function to the new default 410 Finally, we need to indicate to the :doc:`meson/ninja build system 430 promoting the symbol, the maintainer may choose to provide an alias to the 434 The process to provide an alias to ``experimental`` is similar to that, of 508 an alias to experimental. The process to add an alias to experimental, [all …]
|
| /dpdk/doc/guides/faq/ |
| H A D | faq.rst | 7 This is most likely due to the test application not being run with sudo to promote the user to a su… 25 If you need to change the number of pages, it is easier to first remove the pages. 48 affinitizing the application to a would-be main core. 80 Similarly, the application can be tuned to have, on average, a low end-to-end latency at the cost o… 103 …ht logical cores on each processor with RSS set to distribute network load from two 10 GbE interfa… 108 The first 64B chunk is mapped to node 0, the second 64B chunk is mapped to node 1, the third to nod… 123 I am getting errors about not being able to open files. Why? 145 Is it safe to add an entry to the hash table while running? 148 This is likely to be supported in future releases. 160 When trying to send packets from an application to itself, meaning smac==dmac, using Intel(R) 82599… [all …]
|
| /dpdk/doc/guides/dmadevs/ |
| H A D | idxd.rst | 51 and the work-queues, which are used by applications to assign work to the device, 52 need to be assigned to groups, and the various other configuration options, 55 To assign an engine to a group:: 59 To assign work queues to groups for passing descriptors to the engines a similar accel-config comma… 67 * name: identifier given to the WQ. 113 The HW devices to be used will need to be bound to a user-space IO driver for use. 115 and to bind them to a suitable DPDK-supported driver, such as ``vfio-pci``. 125 the need to pass parameters to the application. 139 probed by the driver to make them available to the application. 172 * The transfer direction must be set to ``RTE_DMA_DIR_MEM_TO_MEM`` to copy from memory to memory. [all …]
|
| H A D | ioat.rst | 14 cloning packet data, to be accelerated by IOAT hardware rather than having to 20 The ``dpdk-devbind.py`` script, included with DPDK, can be used to show the 24 "Crystal Beach DMA", or "CBDMA" or on some newer systems '0b00' due to the 28 Error handling is not supported by this driver on hardware prior to 41 Intel\ |reg| IOAT devices will need to be bound to a suitable DPDK-supported 42 user-space IO driver such as ``vfio-pci`` in order to be used by DPDK. 48 The ``dpdk-devbind.py`` script can also be used to bind devices to a suitable driver. 56 For devices bound to a suitable DPDK-supported driver (``vfio-pci``), the HW 58 initialization time without the need to pass parameters to the application. 84 * The transfer direction must be set to ``RTE_DMA_DIR_MEM_TO_MEM`` to copy from memory to memory. [all …]
|
| /dpdk/doc/guides/howto/ |
| H A D | flow_bifurcation.rst | 4 Flow Bifurcation How-to Guide 15 The Flow Bifurcation splits the incoming data traffic to user space 19 plane traffic, to the traditional Linux networking stack. 31 network adapters. Filters can be configured to direct specific flows to a 33 types to direct flows to a Virtual Function or a queue that belong to it. 51 so there is no need to split into SR-IOV PF/VF 52 in order to get the flow bifurcation mechanism. 56 and let the rest go to the kernel stack. 57 In order to define the filters strictly with flow rules, 60 There is no specific instructions to follow. [all …]
|
| H A D | vfd.rst | 8 a VF (SR-IOV Virtual Function) without direct access to the PF (SR-IOV 45 control should be limited to the PF. 70 The typical procedure to achieve this is as follows: 74 #. Bind the PF port to ``igb_uio``, for example:: 82 #. Start a VM with the new VF port bypassed to it. 88 #. Bind the VF port to ``igb_uio`` in the VM:: 107 Run a testpmd runtime command on the PF to set TX loopback:: 112 allowed to send the packets to other virtual ports. 152 VLAN ID does not belong to VLAN IDs that this port can receive. 164 to the transmitted packets by the hardware. [all …]
|
| /dpdk/license/ |
| H A D | gpl-2.0.txt | 13 License is intended to guarantee your freedom to share and change free 16 Foundation's software and to any other program whose authors commit to 29 anyone to deny you these rights or to ask you to surrender the rights. 83 notices that refer to this License and to the absence of any warranty; 100 part thereof, to be licensed as a whole at no charge to all third 125 your rights to work written entirely by you; rather, the intent is to 215 It is not the purpose of this section to induce you to infringe any 226 This section is intended to make thoroughly clear what is believed to 282 How to Apply These Terms to Your New Programs 285 possible use to the public, the best way to achieve this is to make it [all …]
|
| /dpdk/doc/guides/mempool/ |
| H A D | cnxk.rst | 18 - Up to 128 NPA LFs 21 - Ethdev Rx buffer allocation in HW to save CPU cycles in the Rx path. 22 - Ethdev Tx buffer recycling in HW to save CPU cycles in the Tx path. 26 - Burst alloc of up to 32 pointers. 30 - Batch dequeue of up to 512 pointers with single instruction. 31 - Batch enqueue of up to 15 pointers with single instruction. 47 The maximum number of mempools per application needs to be configured on 48 HW during mempool driver initialization. HW can support up to 1M mempools, 57 the given application to save HW resources. 61 Since this configuration is per application, the end user needs to [all …]
|
| /dpdk/doc/guides/sample_app_ug/ |
| H A D | vm_power_management.rst | 116 In addition to the ability to send power management requests to the 129 doing this is to monitor the ratio of the branch miss to branch hits 163 relevant BIOS documentation to determine how to access these settings. 290 Now, it is possible to add virtual machines to the VM Power Manager: 300 running to add them. 302 It is possible to issue several commands from the CLI to manage VMs. 527 to send a power policy to the host application: 576 to the following: 773 The type of packet to send to the VM Power Manager. 793 The cores to which to apply a policy. [all …]
|