| /dpdk/lib/eal/common/ |
| H A D | eal_common_dev.c | 53 .it = it, \ 613 it->bus = bus; in rte_dev_iterator_init() 614 it->cls = cls; in rte_dev_iterator_init() 656 it = ITCTX(ctx); in class_next_dev_cmp() 662 if (it->cls_str != NULL && cls != it->cls) in class_next_dev_cmp() 685 it = ITCTX(ctx); in bus_next_dev_cmp() 687 dev = it->device; in bus_next_dev_cmp() 691 if (it->bus_str != NULL && bus != it->bus) in bus_next_dev_cmp() 714 it->cls = cls; in bus_next_dev_cmp() 731 if (it->bus_str == NULL && it->cls_str == NULL) { in rte_dev_iterator_next() [all …]
|
| /dpdk/lib/eal/include/ |
| H A D | rte_dev.h | 271 const struct rte_dev_iterator *it); 295 rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str); 315 rte_dev_iterator_next(struct rte_dev_iterator *it); 317 #define RTE_DEV_FOREACH(dev, devstr, it) \ argument 318 for (rte_dev_iterator_init(it, devstr), \ 319 dev = rte_dev_iterator_next(it); \ 321 dev = rte_dev_iterator_next(it))
|
| /dpdk/license/ |
| H A D | gpl-2.0.txt | 7 of this license document, but changing it is not allowed. 12 freedom to share and change it. By contrast, the GNU General Public 18 the GNU Lesser General Public License instead.) You can apply it to 25 if you want it, that you can change the software or use pieces of it 31 distribute copies of the software, or if you modify it. 67 that is to say, a work containing the Program or a portion of it, 80 source code as you receive it, in any medium, provided that you 91 of it, thus forming a work based on the Program, and copy and 104 when run, you must cause it, when started running for such 187 the Program or works based on it. [all …]
|
| H A D | lgpl-2.1.txt | 7 of this license document, but changing it is not allowed. 16 freedom to share and change it. By contrast, the GNU General Public 31 it if you want it; that you can change the software and use pieces of 32 it in new free programs; and that you are informed that you can do 38 you if you distribute copies of the library or if you modify it. 46 it. And you must show them these terms so they know their rights. 52 To protect each distributor, we want to make it very clear that 163 of it, thus forming a work based on the Library, and copy and 199 it. 364 the Library or works based on it. [all …]
|
| /dpdk/doc/guides/prog_guide/ |
| H A D | event_timer_adapter.rst | 12 such adapter; it bridges event devices and timer mechanisms. 20 software implementations of the timer mechanism; it will query an eventdev PMD 47 it: 73 request to arm or cancel it takes effect. 75 If the application wishes to rearm the timer after it has expired, it should 128 device capability, it might require creating an additional event port to be 131 configure an event port; it will examine the current event device 139 to control how it is done. 202 manage event timers with it. 227 Note that it is necessary to initialize the event timer state to [all …]
|
| H A D | mbuf_lib.rst | 13 A rte_mbuf struct generally carries network packet buffers, but it can actually 69 An mbuf contains a field indicating the pool that it originated from. 87 Freeing a mbuf means returning it into its original mempool. 124 On TX side, it is also possible for an application to delegate some 125 processing to the hardware if it supports it. For instance, the 162 Note that it can only work if outer L4 checksum is 0. 175 Note that it can only work if outer L4 checksum is 0. 189 Note that it can only work if outer L4 checksum is 0. 240 data offset in it refer to data in another direct buffer. 255 Finally, it is not possible to reattach an indirect buffer to the direct buffer (unless it is detac… [all …]
|
| H A D | packet_distrib_lib.rst | 35 …As it does so, it examines the "tag" -- stored in the RSS hash field in the mbuf -- for each packet 40 and given to it in preference to other packets when that work next makes a request for work. 64 Once a worker lcore requests a new packet, the distributor assumes that it has completely finished … 88 Each worker calls "rte_distributor_get_pkt()" API to request a new packet when it has finished proc… 89 [The previous packet should be returned to the distributor component by passing it as the final par… 91 Since it may be desirable to vary the number of worker cores, depending on the traffic load 93 it is possible to have a worker stop processing packets by calling "rte_distributor_return_pkt()" t… 94 it has finished the current packet and does not want a new one.
|
| H A D | gpudev.rst | 12 it is possible to allocate a chunk of GPU memory and use it 22 (e.g. CUDA Toolkit or OpenCL), thus it is not possible to launch workload 37 - Register CPU memory to make it visible from the device. 64 Later, it's also possible to free that memory with gpudev. 71 gpudev can register a CPU memory area to make it visible from a GPU device. 72 Later, it's also possible to unregister that memory with gpudev. 81 Later, it's also possible to unmap that memory with gpudev. 192 * and then it does a cleanup of the received mbufs. 197 /* CPU notifies the CUDA kernel that it has to terminate. */ 217 /* GPU kernel keeps checking this flag to know if it has to quit or wait for more packets. */
|
| H A D | multi_proc_support.rst | 22 but can attach to pre- initialized shared memory and create objects in it. 110 it is possible to run multiple DPDK processes side-by-side, 125 will attempt to preallocate all memory it can get to, and memory use must be 164 so it is recommended that it be disabled only when absolutely necessary, 180 since it uses a pointer to the hash function internally. 287 this, it may not be possible for DPDK to trigger another interrupt-based 291 (so that it would be possible to determine for which sent message this is a 314 response to the request - it must always be explicitly sent even in case 330 it safe to allocate/free memory inside IPC callbacks. Attempting to do so may 348 If a callback has been registered, IPC will assume that it is safe to call it. [all …]
|
| H A D | lpm6_lib.rst | 22 since it strongly depends on the depth and IP address of every rule. 40 If a rule with the specified prefix is present in the LPM table, then it is removed. 127 * If the entry is invalid (i.e. it doesn't already contain a rule) then set its next hop to its v… 136 * If the entry is invalid (i.e. it doesn't already contain a rule) then look for a free tbl8, 145 and fill it with the next hop, setting the next entry flag to 0. 155 it is found in, at the most, 14 memory accesses, 157 Prefix expansion is one of the keys of this algorithm, since it improves the speed dramatically by … 160 So, for example, is the depth is 34 bits, it will be performed in the third level (second tbl8-base… 168 If the entry is not in use, then it means we don't have a rule matching this IP. 169 If it is valid and the external entry flag is set to 0, then the next hop is returned. [all …]
|
| H A D | thread_safety_dpdk_functions.rst | 12 In some cases, it is not only multi-threaded, but multi-process. 13 Typically, it is best to avoid sharing data structures between threads and/or processes where possi… 34 and it is recommended that no locking be used as it will impact performance. 41 Moreover, it provides high performance for either multi- or single-consumer/producer enqueue/dequeu… 75 it is up to the application to provide the appropriate locking or mutual exclusion restrictions aro…
|
| /dpdk/doc/guides/nics/ |
| H A D | af_xdp.rst | 15 This Linux-specific PMD creates the AF_XDP socket and binds it to a 16 specific netdev queue, it allows a DPDK application to send and receive raw 21 AF_XDP PMD enables need_wakeup flag by default if it is supported. This 25 actually improves it for Tx heavy workloads. 47 * If using libxdp, it requires an environment variable called 51 * For need_wakeup feature, it requires kernel version later than v5.3-rc1; 52 * For PMD zero copy, it requires kernel version later than v5.4-rc1; 53 * For shared_umem, it requires kernel version v5.10 or later and libbpf version 70 one can use flow steering if the network card supports it. 133 The feature is enabled by default in the AF_XDP PMD. To disable it, set the [all …]
|
| H A D | null.rst | 9 On Rx it returns requested number of empty packets (all zero). On Tx it just frees all sent packets. 25 It copies data of the packet before Rx/Tx. For Rx it uses another empty dummy mbuf for this.
|
| H A D | netvsc.rst | 10 The device offers multi-queue support (if kernel and host support it), 27 …Hyper-V driver does not support MAC or VLAN filtering because the Hyper-V host does not support it. 56 store it in a shell variable: 92 The dpdk-devbind.py script can not be used since it only handles PCI devices. 102 to use the netvsc PMD with 4.16 kernel but it is limited to a single queue. 117 If the value is too large or too small it will be 125 the MTU would prevent it from ever making an external mbuf and always 140 external mbuf, it always allocates mbuf and copy received data to mbuf)
|
| H A D | fail_safe.rst | 26 meant to be removed itself, unlike its sub-devices which should support it. 95 address of the first of its sub-device to be successfully probed and use it as 96 its default MAC address, trying to set it to all of its other sub-devices. 115 operations to avoid probing it twice, as the PCI bus is in blocklist mode. 123 If the sub-device ``84:00.0`` is not blocked, it will be probed by the 124 EAL first. When the fail-safe then tries to initialize it the probe operation 129 #. Alternatively, it can be used alongside any other device in allow mode. 144 #. Start testpmd, automatically probing the device 84:00.0 and using it with 202 emitted this event, allowing it to free its eventual resources. 217 When this device is plugged, it is always used as emitting device. [all …]
|
| /dpdk/doc/api/ |
| H A D | meson.build | 11 # is in a subdirectory that is created at build time and thus it cannot 21 # if install is set to true it will override build_by_default and it will 23 # false it would be impossible to install the docs.
|
| /dpdk/doc/guides/contributing/ |
| H A D | abi_versioning.rst | 40 ``librte_mbuf``, may cause an implicit ripple effect on the ABI of it's 150 * ``MAP_STATIC_SYMBOL(f, p)``: Declare the prototype ``f``, and map it to the 151 fully qualified function ``p``, so that if a symbol becomes versioned, it 189 private, is safe), but it also requires modifying the code as follows 213 application was linked to it. To see how this is done, we start with the 317 function name, with the ``v22`` suffix, and implement it appropriately. 347 such that it contains both versions of the symbol and the public API. 624 it as static. This is a coding style choice. 631 While removing a symbol from an ABI may be useful, it is more practical to 634 removing part of it, typically makes it incomplete. In those cases it is better [all …]
|
| H A D | stable.rst | 33 maintainer volunteers to maintain it and there is a commitment from major 34 contributors to validate it before releases. 35 If a version is to be a "Stable Release", it should be designated as such 58 After the X.11 release, an LTS branch will be created for it at 106 In some limited cases, it may be acceptable to backport a new feature 112 * Is it for the latest LTS release (to avoid LTS upgrade issues)? 116 * Is it obvious that the feature will not impact existing functionality? 119 * Does it impact common components or vendor specific? 127 * An existing feature in LTS is not usable as intended without it.
|
| /dpdk/doc/guides/sample_app_ug/ |
| H A D | vhost.rst | 94 1000 is assigned to it. So make sure configure your packet generator 96 log from the vhost-switch console. It means you get it work:: 112 will create it. Put simply, it's the server to create the socket file. 121 - 2 means hardware mode packet forwarding between guests, it allows packets 137 rates, by allowing it to delay and retry in the receive path. This option is 141 The rx-retry-num option specifies the number of retries on an Rx burst, it 146 retries on an RX burst, it takes effect only when rx retry is enabled. The 150 Dequeue zero copy will be enabled when this option is given. it is worth to 184 When running QEMU the above error indicates that it has failed to allocate
|
| /dpdk/doc/guides/cryptodevs/ |
| H A D | chacha20_poly1305.rst | 25 and compile it on their user system before building DPDK. 29 After downloading the library, the user needs to unpack and compile it 37 The library requires NASM to be built. Depending on the library version, it might 43 Once it is downloaded, extract it and follow these steps:
|
| H A D | zuc.rst | 37 and compile it on their user system before building DPDK. 41 After downloading the library, the user needs to unpack and compile it 49 The library requires NASM to be built. Depending on the library version, it might 55 Once it is downloaded, extract it and follow these steps:
|
| H A D | snow3g.rst | 37 and compile it on their user system before building DPDK. 41 After downloading the library, the user needs to unpack and compile it 49 The library requires NASM to be built. Depending on the library version, it might 55 Once it is downloaded, extract it and follow these steps:
|
| H A D | aesni_gcm.rst | 10 to learn more about it, including installation). 42 and compile it on their user system before building DPDK. 51 The library requires NASM to be built. Depending on the library version, it might 57 Once it is downloaded, extract it and follow these steps:
|
| /dpdk/doc/guides/howto/ |
| H A D | avx512.rst | 8 AVX-512 is not used by default in DPDK, but it can be selected at runtime by apps through the use o… 16 Apps can request DPDK uses AVX-512 at runtime, if it provides improved application performance. 17 This can be done by modifying the EAL setting for max SIMD bitwidth to 512, as by default it is 256,
|
| /dpdk/doc/guides/eventdevs/ |
| H A D | dlb2.rst | 26 The DLB PMD provides the functions of a DPDK event device; specifically, it 40 When one is configured, it allocates load-balanced and 49 regardless of whether it will consume a directed or load-balanced credit. 79 that when the PMD is used with a virtual DLB device, it cannot change the 109 whether it should be configured as a directed (the flag is set) or a 112 whether it is a directed or load-balanced queue. 134 The flow ID field is preserved in the event when it is scheduled in the 215 until it is last dequeued. If the event goes through multiple event queues, it 220 to enqueue if it lacks enough hardware credits to enqueue; load-balanced 233 to enqueue an event, and it must dequeue an event before it can recover the [all …]
|