| /dpdk/doc/guides/prog_guide/ |
| H A D | lpm_lib.rst | 19 In this implementation, the user data is 1-byte long and is called next hop, 27 An error is returned when there is no available rule space left. 30 If a rule with the specified prefix is present in the LPM table, then it is removed. 109 * When deleting, to check whether there is a rule containing the one that is to be deleted. 159 Prefix expansion is performed if the rule's depth is not exactly 24 bits or 32 bits. 187 If it is valid and the external entry flag is set to 0, then the next hop is returned. 189 * If it is valid and the external entry flag is set to 1, 193 If it is valid then the next hop is returned. 199 The first one is the maximum number of rules, which is a parameter passed through the API. 200 Once this number is reached, [all …]
|
| H A D | hash_lib.rst | 40 …then the position of the entry is returned, otherwise (i.e., lookup miss) a negative value is retu… 73 a custom compare function, which is assigned to a function pointer (therefore, it is not supported … 100 If this flag is set, the (RTE_HASH_EXTRA_FLAGS_NO_FREE_ON_DEL) flag is set by default. 112 An extra flag is used to enable this functionality (flag is not set by default). When the (RTE_HASH… 133 when the key is looked up. 149 First of all, the primary bucket is identified and entry is likely to be stored there. 152 If signature is not in the primary bucket, the secondary bucket is looked up, where same procedure 153 is carried out. If there is no match there either, key is not in the table and a negative value wil… 164 is stored in it. If not, same process is repeated (one of the entries gets pushed) until an empty e… 169 key is considered not able to be added (unless extendable bucket flag is set, and in that case the … [all …]
|
| H A D | lpm6_lib.rst | 18 * Number of tbl8s: A tbl8 is a node of the trie that the LPM6 algorithm is based on. 29 In this implementation, the user data is 21-bits long and is called "next hop", 35 …If there is no rule with the same prefix present in the table, then the new rule is added to the L… 36 …If a rule with the same prefix is already present in the table, the next hop of the rule is update… 37 An error is returned when there is no available space left. 40 If a rule with the specified prefix is present in the LPM table, then it is removed. 104 The depth or length of the rule is the number of bits of the rule that is stored in a specific entr… 116 When deleting, to check whether there is a rule containing the one that is to be deleted. 160 So, for example, is the depth is 34 bits, it will be performed in the third level (second tbl8-base… 169 If it is valid and the external entry flag is set to 0, then the next hop is returned. [all …]
|
| H A D | efd_lib.rst | 78 key, as this is dictated by the hash function. 81 target load, etc.) is simply not possible. 99 is indexed with the hash of the flow key and the keys (more than one is possible, 102 and if there is a match the value (target id) is returned. 125 The basic idea of EFD is when a given key is to be inserted, a family of 192 is retrieved the key is hashed using this hash function and the result 200 the flows served at each node is used and is 229 socket as where the lookup thread is running. 307 key is added, the hash function is updated that will satisfy the 362 contradictions, this index is stored for this group. This procedure is [all …]
|
| H A D | member_lib.rst | 68 whether its id is a member of the set of visited nodes, and if it is, then a 69 routing loop is detected. 84 Membership Library is a configurable library that is optimized to cover set 109 then Y is definitely not in the set. Otherwise there is a high probability that 150 them. The basic idea of vBF is shown in the above figure where an element is 207 When looking up an element, the element is hashed and the HTSS is addressed 282 which is the name of the created set-summary, *type* which is one of the types 307 error is returned. For success the returned value is dependent on the 313 value is 1 to indicate such situation, but it is not an error. 324 returns as soon as the first match is found. The return value is 1 if a [all …]
|
| H A D | ring_lib.rst | 44 * Size is fixed 77 A ring is identified by a unique name. 93 The ring structure is composed of two head and tail couples; one is used by producers and one is us… 105 and there is only one producer. 115 If there is not enough room in the ring (this is detected by checking cons_tail), it returns an err… 144 The enqueue operation is finished. 197 The dequeue operation is finished. 222 If there is not enough room in the ring (this is detected by checking cons_tail), it returns an err… 274 This is only true on core 1. The operation is finished on core 1. 287 Once ring->prod_tail is updated by core 1, core 2 is allowed to update it too. [all …]
|
| H A D | env_abstraction_layer.rst | 206 each segment is strictly one physical page. It is possible to change the amount 263 it is opened and locked for the entire time the hugepage is used. 350 allocated memory for DMA is also performed on any memory segment that is added 382 is undesirable - for example, when manual memory management is performed on an 490 status change event. The execution context is thus the same, i.e. it is the 517 On FreeBSD, RTE_IOVA_PA is always the default. On Linux, the IOVA mode is 535 - if /sys/kernel/iommu_groups is not empty, RTE_IOVA_VA mode is used 669 A number is a "digit([0-9]+)"; a range is "<number>-<number>"; a group is "(<number|range>[,<number… 733 CPU 2 (main lcore, which is the default when no CPU is available). 971 * dirty - this flag is only meaningful when ``state`` is ``FREE``. [all …]
|
| H A D | bbdev.rst | 82 When an operation is enqueued to a specific queue ID, the result is dequeued 505 If it is for one TB, this is the total length of the TB under operation. 819 The mbuf input ``input`` is mandatory for all BBDEV PMDs and is the 822 The mbuf output ``output`` is mandatory and is the encoded CB(s). In 843 is appended to the CB. If ``RTE_BBDEV_LDPC_CRC_24A_ATTACH`` is not 850 flag is set when it is the responsibility of BBDEV. The input data 862 The first CB index is given by ``r`` but the number of the CBs is 1042 The mbuf output ``soft_output`` is optional and is an LLR rate matched 1045 The mbuf input ``harq_combine_input`` is optional and is a buffer with 1051 The mbuf output ``harq_combine_output`` is optional and is a buffer for [all …]
|
| H A D | vhost_lib.rst | 56 IOMMU support will be enabled when this flag is set. It is disabled by 61 is negotiated and an IOMMU device is declared. 66 It is disabled by default. 87 It is disabled by default. 125 the mbuf. This behavior is inconsistent with other drivers but it is left 148 is the vhost device ID. 152 This callback is invoked when a virtio device is paused or shut down. 156 This callback is invoked when a specific queue's state is changed, for 161 This callback is invoked when the features is changed. For example, 173 This callback is invoked when vhost-user socket connection is closed. [all …]
|
| H A D | mbuf_lib.rst | 88 The content of an mbuf is not modified when it is stored in a pool (as a free mbuf). 160 This is similar to case 1), but l2_len is different. It is supported 162 Note that it can only work if outer L4 checksum is 0. 172 This is similar to case 2), but l2_len is different. It is supported 175 Note that it can only work if outer L4 checksum is 0. 213 The size of the mbuf is constrained and limited; 231 It is not possible to unregister fields or flags. 238 A direct buffer is a buffer that is completely separate and self-contained. 247 Similarly, whenever the indirect buffer is detached, the reference counter on the direct buffer is … 248 If the resulting reference counter is equal to 0, the direct buffer is freed since it is no longer … [all …]
|
| H A D | qos_framework.rst | 342 The multicore scaling strategy is: 395 If the queue is full, then the packet is discarded. 485 This way, as a packet is scheduled for transmission, the time is incremented with (n + h), 486 where n is the packet length in bytes and h is the number of framing overhead bytes per packet. 499 is the amount of CPU cycles that is equivalent to the transmission time for one byte on the wire 506 #. If NIC time is in the future (NIC time >= current time), no adjustment of NIC time is needed. 1210 This is the classical Proportional Integral (PI) controller method, which is known for 1500 If the average queue size is below the minimum threshold, an arriving packet is enqueued. 1501 If the average queue size is at or above the maximum threshold, an arriving packet is dropped. 1535 is used (red curve). [all …]
|
| H A D | thread_safety_dpdk_functions.rst | 7 The DPDK is comprised of several libraries. 11 The run-time environment of the DPDK is typically a single thread per logical core. 12 In some cases, it is not only multi-threaded, but multi-process. 14 Where this is not possible, then the execution blocks must access the data in a thread- safe manner. 27 Locking is not needed in all situations, and in both the hash and LPM libraries, 34 and it is recommended that no locking be used as it will impact performance. 36 when each thread is performing I/O on a different NIC queue. 38 then locking, or some other form of mutual exclusion, is necessary. 42 The mempool library is based on the DPDK lockless ring library and therefore is also multi-thread s… 51 The setup and configuration of the PMD is not performance sensitive, but is not thread safe either. [all …]
|
| H A D | packet_framework.rst | 19 while developing flexible frameworks is never a problem, but performance is usually low; 112 The port abstract interface is described in. 156 … | Typically, the lookup key is hashed to produce a signature that is u… 270 … When *key* is already associated value *value0*, then the association (*key*, *value0*) is removed 274 When *key* is already associated *value*, then association *(key, value)* is removed; 305 the key is either located in this bucket or it is not present in the hash table at all, 412 One of the existing keys in the bucket is deleted and the new key is added in its place. 515 provided that it is preformed early enough before the respective data structure is actually used. 952 A pipeline is defined by: 1010 The action handler is executed after the table lookup operation is performed and the table entry as… [all …]
|
| H A D | traffic_management.rst | 11 This is the generic API for the Quality of Service (QoS) Traffic Management of 14 is agnostic of the underlying HW, SW or mixed HW-SW implementation. 50 the level if node is non-leaf type etc., are exposed as a result of 56 shaper rate, etc. is exposed by node level capability API. 138 is triggered by a packet's arrival before enqueuing into a queue. 148 DEI bit is left as is (either set or not). 152 the current color, otherwise the ECN field is left as is. 158 color is left as is. 169 is reserved for leaf nodes. 194 is created is further used to update the node configuration or to connect [all …]
|
| /dpdk/doc/guides/sample_app_ug/ |
| H A D | l2_forward_job_stats.rst | 21 performs L2 forwarding for each packet that is received. 22 The destination port is the adjacent port from the enabled portmask, that is, 149 The memory is allocated in rte_socket_id() socket, 171 For each port, there is only one RX queue (only one lcore is able to poll a given port). 266 First infinite for loop is to minimize impact of stats reading. Lock is only locked/unlocked when a… 273 Third do-while loop is the idle job (idle stats counter). Its only purpose is monitoring if any job… 280 This is done using the following code: 294 After first read second try is issued. 311 If total_nb_rx is smaller than target value job->period will be increased. If it is greater the per… 318 a destination port is assigned that is either the next or previous enabled port from the portmask. [all …]
|
| H A D | l2_forward_crypto.rst | 19 The destination port is the adjacent port from the enabled portmask, that is, 69 (default is ANY) 77 (default is Cipher->Hash) 83 (default is ENCRYPT) 105 (default is GENERATE) 125 (default is ENCRYPT) 212 If no parameter is passed, the default crypto operation is: 270 After all the checks, the device is configured and it is added to the 284 This session is created and is later attached to the crypto operation: 288 :start-after: Session is created and is later attached to the crypto operation. 8< [all …]
|
| H A D | l3_forward_power_man.rst | 185 The assumption is that the Rx queue size is 128 and the thresholds specified above 197 or if the average packet per iteration is less than expectation, the frequency is decreased by one … 206 There is no way to control C- state directly, and the CPUIdle subsystem in OS is intelligent enough 213 * If idle count is between 100 and 999, a fixed sleep interval of 100 μs is used. 216 * If idle count is greater than 1000, a fixed sleep value of 1 ms is used until the next timer ex… 278 POWER: Low threshold is 230277 279 POWER: MED threshold is 335071 280 POWER: HIGH threshold is 523769 283 POWER: Low threshold is 236814 284 POWER: MED threshold is 344567 [all …]
|
| H A D | l2_forward_real_virtual.rst | 23 The destination port is the adjacent port from the enabled portmask, that is, 48 when MAC addresses updating is disabled. 149 The method of argument parsing is not described here. 180 A per-lcore cache of 32 mbufs is kept. 181 The memory is allocated in NUMA socket 0, 204 The next step is to configure the RX and TX queues. 205 For each port, there is only one RX queue (only one lcore is able to poll a given port). 262 This is done using the following code: 275 addresses updating is enabled. 282 a destination port is assigned that is either the next or previous enabled port from the portmask. [all …]
|
| H A D | rxtx_callbacks.rst | 7 The RX/TX Callbacks sample application is a packet forwarding application that 12 In the sample application a user defined callback is applied to all received 13 packets to add a timestamp. A separate callback is applied to all packets 26 The application is located in the ``rxtx_callbacks`` sub-directory. 63 The ``lcore_main()`` function is also identical. 66 callbacks are added. This is explained in the next section: 72 The main functional part of the port initialization is shown below with 91 is used. 99 The ``add_timestamps()`` callback is added to the RX port and is applied to 115 The ``calc_latency()`` callback is added to the TX port and is applied to all [all …]
|
| H A D | link_status_intr.rst | 73 Command line parsing is done in the same way as it is done in the L2 Forwarding Sample Application. 79 Mbuf pool initialization is done in the same way as it is done in the L2 Forwarding Sample Applicat… 95 The next step is to configure the RX and TX queues. 96 For each port, there is only one RX queue (only one lcore is able to poll a given port). 114 and no user space interrupt event is received. 132 This function is called when a link status interrupt is present for the right port. 138 which is different from the main thread of its caller. 149 If lsc is initialized with 0, the callback is never called since no interrupt event would ever be p… 188 For every port, a single TX queue is initialized. 213 This is done using the following code: [all …]
|
| /dpdk/doc/guides/testpmd_app_ug/ |
| H A D | run_app.rst | 69 The default value is 1. 159 The default port is the port 9 which is defined for the discard protocol 274 The default value is 1. 284 The default value is 1. 296 RX hairpin is binded to the first TX hairpin, the second RX hairpin is 307 default is not defined, default of 32 is used. 329 The default value is 8. 334 The default value is 8. 614 is enabled, packet loss occurs when traffic is sent to all processes at the same 617 All the dev ops is supported in primary process. While secondary process is [all …]
|
| /dpdk/doc/guides/nics/ |
| H A D | mlx5.rst | 316 is in the past it should be ignored, if one is in the distant future 330 There is no any packet reordering according timestamps is supposed, 375 mode is enabled. 566 MPRQ is disabled, Checksum format is used in case MPRQ is enabled. 682 ``mprq_en`` is set. 739 packet is inlined. 780 amount, in this case warning is emitted. If ``txq_inline_max`` key is 807 is emitted. If ``txq_inline_mpw`` key is specified and requested inline 862 feature is disabled. 955 If there is no E-Switch configuration the ``dv_xmeta_en`` parameter is [all …]
|
| /dpdk/doc/guides/contributing/ |
| H A D | abi_policy.rst | 21 #. The ABI version is managed at a project level in DPDK, and is reflected in 33 is not an indefinite state. 43 What is an ABI? 48 is the result of compilation. It is also effectively cloned when applications 49 link to dynamic libraries. That is to say when an application is compiled to 52 Therefore, in the case of dynamic linking, it is critical that an ABI is 63 What is an ABI version? 143 the need for the ABI change, is also mandatory. 228 is part of the major ABI version ``21``. 231 This is not a problem as long as the symbol ``rte_foo@DPDK_21`` is [all …]
|
| /dpdk/doc/guides/eventdevs/ |
| H A D | dlb2.rst | 64 ``nb_atomic_order_sequences`` is zero, the queue is configured for atomic and 112 whether it is a directed or load-balanced queue. 117 cannot change after the eventdev is started. 134 The flow ID field is preserved in the event when it is scheduled in the 175 Each port is a member of both credit pools. A port's credit allocation is 185 When the eventdev is started, each port is pre-allocated a high watermark's 210 RTE_EVENT_OP_NEW) event is injected into the system, and the credit is 216 is still considered "in the system" while a worker thread is processing it. 240 is attempting to enqueue, and dequeue more events. It is important that the 257 is enqueued. [all …]
|
| H A D | opdl.rst | 7 The OPDL (Ordered Packet Distribution Library) eventdev is a specific\ 8 implementation of the eventdev API. It is particularly suited to packet\ 11 packets follow is determined by the order in which queues are set up.\ 23 * Ordered (Parallel is supported as parallel is a subset of Ordered) 53 Packets dequeued from this queue do not need to be re-enqueued (as is the 54 case with an ordered queue). The purpose of this queue is to allow for 62 As stated the order in which packets travel through queues is static in 89 The following list is a comprehensive outline of the what is supported and 93 (dynamic scheduling is not supported). 102 - Event priority is NOT supported. [all …]
|