| /dpdk/drivers/net/bnxt/tf_core/ |
| H A D | lookup3.h | 59 #define mix(a, b, c) \ argument 61 (a) -= (c); (a) ^= rot((c), 4); (c) += b; \ 62 (b) -= (a); (b) ^= rot((a), 6); (a) += c; \ 63 (c) -= (b); (c) ^= rot((b), 8); (b) += a; \ 64 (a) -= (c); (a) ^= rot((c), 16); (c) += b; \ 65 (b) -= (a); (b) ^= rot((a), 19); (a) += c; \ 66 (c) -= (b); (c) ^= rot((b), 4); (b) += a; \ 93 #define final(a, b, c) \ argument 96 (a) ^= (c); (a) -= rot((c), 11); \ 97 (b) ^= (a); (b) -= rot((a), 25); \ [all …]
|
| /dpdk/lib/hash/ |
| H A D | rte_jhash.h | 48 #define __rte_jhash_mix(a, b, c) do { \ argument 49 a -= c; a ^= rot(c, 4); c += b; \ 50 b -= a; b ^= rot(a, 6); a += c; \ 51 c -= b; c ^= rot(b, 8); b += a; \ 52 a -= c; a ^= rot(c, 16); c += b; \ 53 b -= a; 57 __rte_jhash_final(a,b,c) global() argument 84 uint32_t a, b, c; __rte_jhash_2hashes() local 313 __rte_jhash_3words(uint32_t a,uint32_t b,uint32_t c,uint32_t initval) __rte_jhash_3words() argument 340 rte_jhash_3words(uint32_t a,uint32_t b,uint32_t c,uint32_t initval) rte_jhash_3words() argument 359 rte_jhash_2words(uint32_t a,uint32_t b,uint32_t initval) rte_jhash_2words() argument 376 rte_jhash_1word(uint32_t a,uint32_t initval) rte_jhash_1word() argument [all...] |
| /dpdk/drivers/common/cnxk/hw/ |
| H A D | npc.h | 17 #define NPC_AF_KPUX_CFG(a) (0x500ull | (uint64_t)(a) << 3) argument 23 #define NPC_AF_KEX_LDATAX_FLAGS_CFG(a) (0x800ull | (uint64_t)(a) << 3) argument 24 #define NPC_AF_INTFX_KEX_CFG(a) (0x1010ull | (uint64_t)(a) << 8) argument 25 #define NPC_AF_PKINDX_ACTION0(a) (0x80000ull | (uint64_t)(a) << 6) argument 26 #define NPC_AF_PKINDX_ACTION1(a) (0x80008ull | (uint64_t)(a) << 6) argument 27 #define NPC_AF_PKINDX_CPI_DEFX(a, b) \ argument 28 (0x80020ull | (uint64_t)(a) << 6 | (uint64_t)(b) << 3) 30 #define NPC_AF_KPUX_ENTRYX_CAMX(a, b, c) \ argument 31 (0x100000ull | (uint64_t)(a) << 14 | (uint64_t)(b) << 6 | \ 33 #define NPC_AF_KPUX_ENTRYX_ACTION0(a, b) \ argument [all …]
|
| H A D | ml.h | 20 #define ML_AXI_BRIDGE_CTRL(a) (0x10020 | (uint64_t)(a) << 3) argument 24 #define ML_JCMDQ_IN(a) (0x11000 | (uint64_t)(a) << 3) /* CN10KA */ argument 26 #define ML_STGX_STATUS(a) (0x11020 | (uint64_t)(a) << 3) /* CNF10KB */ argument 29 #define ML_SCRATCH(a) (0x14000 | (uint64_t)(a) << 3) argument 30 #define ML_ANBX_BACKP_DISABLE(a) (0x18000 | (uint64_t)(a) << 12) /* CN10KA */ argument 31 #define ML_ANBX_NCBI_P_OVR(a) (0x18010 | (uint64_t)(a) << 12) /* CN10KA */ argument 32 #define ML_ANBX_NCBI_NP_OVR(a) (0x18020 | (uint64_t)(a) << 12) /* CN10KA */ argument 36 #define ML_A35_0_RST_VECTOR_BASE_W(a) (0x12084014 + (a) * (0x04)) argument 37 #define ML_A35_1_RST_VECTOR_BASE_W(a) (0x1208401c + (a) * (0x04)) argument
|
| /dpdk/drivers/common/cnxk/ |
| H A D | roc_hash.c | 40 #define FF(a, b, c, d, x, s, ac) \ argument 42 (a) += F((b), (c), (d)) + (x) + (uint32_t)(ac); \ 43 (a) = ROTATE_LEFT((a), (s)); \ 44 (a) += (b); \ 47 #define GG(a, b, c, d, x, s, ac) \ argument 49 (a) += G((b), (c), (d)) + (x) + (uint32_t)(ac); \ 50 (a) = ROTATE_LEFT((a), (s)); \ 51 (a) += (b); \ 54 #define HH(a, b, c, d, x, s, ac) \ argument 56 (a) += H((b), (c), (d)) + (x) + (uint32_t)(ac); \ [all …]
|
| /dpdk/lib/sched/ |
| H A D | rte_sched_common.h | 48 * gcd(a, 0) = a 49 * gcd(a, b) = gcd(b, a mod b) 52 rte_get_gcd64(uint64_t a, uint64_t b) in rte_get_gcd64() argument 56 if (a == 0) in rte_get_gcd64() 59 return a; in rte_get_gcd64() 61 if (a < b) { in rte_get_gcd64() 62 c = a; in rte_get_gcd64() 63 a in rte_get_gcd64() 80 rte_get_gcd(uint32_t a,uint32_t b) rte_get_gcd() argument 91 rte_get_lcd(uint32_t a,uint32_t b) rte_get_lcd() argument [all...] |
| /dpdk/drivers/common/sfc_efx/base/ |
| H A D | efx_hash.c | 94 uint32_t a; in efx_hash_dwords() local 99 a = b = c = EFX_HASH_INITIAL_VALUE + in efx_hash_dwords() 104 a += input[0]; in efx_hash_dwords() 107 EFX_HASH_MIX(a, b, c); in efx_hash_dwords() 122 a += input[0]; in efx_hash_dwords() 123 EFX_HASH_FINALISE(a, b, c); in efx_hash_dwords() 143 uint32_t a; in efx_hash_bytes() local 148 a = b = c = EFX_HASH_INITIAL_VALUE + (uint32_t)length + init; in efx_hash_bytes() 152 a += ((uint32_t)input[0]) << 24; in efx_hash_bytes() 153 a += ((uint32_t)input[1]) << 16; in efx_hash_bytes() [all …]
|
| /dpdk/examples/pipeline/examples/ |
| H A D | packet.txt | 11 000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05 12 000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 17 000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05 18 000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 23 000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05 24 000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 29 000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05 30 000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 35 000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05 36 000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 [all …]
|
| /dpdk/app/test/ |
| H A D | test_prefetch.c | 23 int a = 0; in test_prefetch() local 25 rte_prefetch0(&a); in test_prefetch() 26 rte_prefetch1(&a); in test_prefetch() 27 rte_prefetch2(&a); in test_prefetch() 29 rte_prefetch0_write(&a); in test_prefetch() 30 rte_prefetch1_write(&a); in test_prefetch() 31 rte_prefetch2_write(&a); in test_prefetch() 33 rte_cldemote(&a); in test_prefetch()
|
| H A D | test_efd_perf.c | 181 unsigned int i, a; in timed_adds() local 189 for (a = 0; a < params->key_size; a++) in timed_adds() 190 printf("%02x", keys[i][a]); in timed_adds() 207 unsigned int i, j, a; in timed_lookups() local 218 for (a = 0; a < params->key_size; a++) in timed_lookups() 219 printf("%02x", keys[i][a]); in timed_lookups() 241 unsigned int i, j, k, a; in timed_lookups_multi() local 261 for (a = 0; a < params->key_size; a++) in timed_lookups_multi() 263 keys[data_idx][a]); in timed_lookups_multi() 285 unsigned int i, a; in timed_deletes() local [all …]
|
| /dpdk/drivers/net/dpaa2/base/ |
| H A D | dpaa2_tlu_hash.c | 11 unsigned int a, b, c, d; in sbox() local 14 a = x & 0x1; in sbox() 19 oa = ((a & ~b & ~c & d) | (~a & b) | (~a & ~c & ~d) | (b & c)) & 0x1; in sbox() 20 ob = ((a & ~b & d) | (~a & c & ~d) | (b & ~c)) & 0x1; in sbox() 21 oc = ((a & ~b & c) | (a & ~b & ~d) | (~a & b & ~d) | (~a & c & ~d) | in sbox() 23 od = ((a & ~b & c) | (~a & b & ~c) | (a & b & ~d) | (~a & c & d)) & 0x1; in sbox()
|
| /dpdk/doc/guides/howto/ |
| H A D | vfd.rst | 7 VFd (the VF daemon) is a mechanism which can be used to configure features on 8 a VF (SR-IOV Virtual Function) without direct access to the PF (SR-IOV 10 the scenario of DPDK PF with a DPDK VF. If the PF port is driven by the Linux 16 configuring a feature on a VF is that an application would call the APIs 18 VF directly (the most common case) the VF sends a message to the PF through 25 become a limitation when the user wants to configure features on the VF. 27 VFd is a new method of controlling the features on a VF. The VF driver doesn't 28 talk directly to the PF driver when configuring a feature on the VF. When a VF 29 application (i.e., an application using the VF ports) wants to enable a VF 30 feature, it can send a message to the PF application (i.e., the application [all …]
|
| /dpdk/doc/guides/prog_guide/ |
| H A D | stack_lib.rst | 7 DPDK's stack library provides an API for configuration and use of a bounded 12 * Create a uniquely named stack of a user-specified size and using a 16 * Push and pop a burst of one or more stack objects (pointers). These function 19 * Free a previously created stack. 21 * Lookup a pointer to a stack by its name. 23 * Query a stack's current depth and number of free entries. 36 The lock-based stack consists of a contiguous array of pointers, a current 37 index, and a spinlock. Accesses to the stack are made multi-thread safe by the 45 The lock-free stack consists of a linked list of elements, each containing a 46 data pointer and a next pointer, and an atomic stack depth counter. The [all …]
|
| H A D | toeplitz_hash_lib.rst | 7 DPDK provides a Toeplitz Hash Library 9 The Toeplitz hash function is commonly used in a wide range of NICs 36 "host" byte order and a multiple of 4 bytes in length. 39 The ``rte_softrss_be`` function is a faster implementation, 46 ``rte_thash_gfni()`` calculates the hash value for a single tuple, and 61 * Number of tuples in a bulk. 63 ``rte_thash_complete_matrix()`` is a function that calculates matrices required by 74 In some use cases it is useful to have a way to find partial collisions of the 75 Toeplitz hash function. In figure :numref:`figure_rss_queue_assign` only a few 84 find a special source port number on translation so that the hash of [all …]
|
| H A D | link_bonding_poll_mode_drv_lib.rst | 8 DPDK also includes a pure-software library that 9 allows physical PMDs to be bonded together to create a single logical PMD. 19 of multiple (member) NICs into a single logical interface between a server 20 and a switch. The new bonding PMD will then process these interfaces based on 24 The librte_net_bond library exports a C API which provides an API for the 49 the last. Packets are bulk dequeued from devices then serviced in a 60 In this mode only one member in the bond is active at any time, a different 75 a simple calculation based on the packet flow source and destination MAC 77 device to classify the packet to a specific member to transmit on. Alternate 116 #. Calls to ``rte_eth_tx_burst`` must have a buffer size of at least 2xN, [all …]
|
| H A D | cmdline.rst | 7 Since its earliest versions, DPDK has included a command-line library - 28 * Ability to multiplex multiple commands to a single callback function 33 Adding a command-line instance to an application involves a number of coding steps. 41 #. Provide a parse result structure instance for the command, linking the callback to the command 43 #. Add the parse result structure to a command-line context 45 #. Within your main application code, create a new command-line instance passing in the context. 49 This section covers adding a command-line using this script to generate the boiler plate, 53 Creating a Command List File 56 The ``dpdk-cmdline-gen.py`` script takes as input a list of commands to be used by the application. 57 While these can be piped to it via standard input, using a list file is probably best. [all …]
|
| /dpdk/lib/eal/unix/ |
| H A D | eal_firmware.c | 24 struct archive *a; member 33 ctx->a = archive_read_new(); in firmware_open() 34 if (ctx->a == NULL) in firmware_open() 37 if (archive_read_support_format_raw(ctx->a) != ARCHIVE_OK) in firmware_open() 40 err = archive_read_support_filter_xz(ctx->a); in firmware_open() 44 err = archive_read_support_filter_zstd(ctx->a); in firmware_open() 48 if (archive_read_open_filename(ctx->a, name, blocksize) != ARCHIVE_OK) in firmware_open() 51 if (archive_read_next_header(ctx->a, &e) != ARCHIVE_OK) in firmware_open() 57 archive_read_free(ctx->a); in firmware_open() 58 ctx->a = NULL; in firmware_open() [all …]
|
| /dpdk/lib/eal/include/ |
| H A D | rte_common.h | 55 * while a host application (like pmdinfogen) may have another compiler. 57 * no matter it is a target or host application. 77 * This macro should be used when alignment of a struct or union type 84 * not be used, instead prefer C11 alignas(a). 87 #define __rte_aligned(a) __declspec(align(a)) argument 89 #define __rte_aligned(a) __attribute__((__aligned__(a))) 107 * Force a structure to be packed 116 * Force a structur 624 RTE_MIN(a,b) global() argument 638 RTE_MIN_T(a,b,t) global() argument 644 RTE_MAX(a,b) global() argument 658 RTE_MAX_T(a,b,t) global() argument 697 RTE_SWAP(a,b) global() argument 734 RTE_DIM(a) global() argument [all...] |
| H A D | rte_uuid.h | 22 * Struct describing a Universal Unique Identifier 29 #define RTE_UUID_INIT(a, b, c, d, e) { \ argument 30 ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, \ 31 ((a) >> 8) & 0xff, (a) & 0xff, \ 69 * @param a 74 * returns an integer less than, equal to, or greater than zero if UUID a is 77 int rte_uuid_compare(const rte_uuid_t a, const rte_uuid_t b); 87 * Returns 0 on success, and -1 if string is not a vali [all...] |
| /dpdk/doc/guides/eventdevs/ |
| H A D | sw.rst | 7 The software eventdev is an implementation of the eventdev API, that provides a 8 wide range of the eventdev features. The eventdev relies on a CPU core to 30 * Each event has a priority, which can be used to provide basic QoS 36 The software eventdev is a vdev device, and as such can be created from the 55 schedule in a single schedule call performed by the service core. Note that 56 is a *hint* only, and that fewer or more events may be scheduled in a given 59 The scheduling quanta can be set using a string argument to the vdev 70 The credit quanta is the number of credits that a port will fetch at a time from 74 of credits are pre-allocated at a time, while also mitigating performance impact 80 system with a higher number of credits at all times. [all …]
|
| /dpdk/lib/eal/x86/ |
| H A D | rte_cycles.c | 113 uint32_t a, b, c, d, maxleaf; in get_tsc_freq_arch() local 119 a = cpuinfo[0]; in get_tsc_freq_arch() 124 __cpuid(0, a, b, c, d); in get_tsc_freq_arch() 138 a = cpuinfo[0]; in get_tsc_freq_arch() 143 __cpuid(0x15, a, b, c, d); in get_tsc_freq_arch() 148 return c * (b / a); in get_tsc_freq_arch() 153 a = cpuinfo[0]; in get_tsc_freq_arch() 158 __cpuid(0x1, a, b, c, d); in get_tsc_freq_arch() 160 model = rte_cpu_get_model(a); in get_tsc_freq_arch()
|
| /dpdk/license/ |
| H A D | lgpl-2.1.txt | 41 or for a fee, you must give the recipients all the rights that we gave 48 We protect your rights with a two-step method: (1) we copyright the 59 Finally, software patents pose a constant threat to the existence of 60 any free program. We wish to make sure that a company cannot 61 effectively restrict the users of a free program by obtaining a 62 restrictive license from a patent holder. Therefore, we insist that 63 any patent license obtained for a version of the library must be 73 When a program is linked with a library, whether statically or using 74 a shared library, the combination of the two is legally speaking a 75 combined work, a derivative of the original library. The ordinary [all …]
|
| /dpdk/doc/guides/sample_app_ug/ |
| H A D | service_cores.rst | 9 any DPDK component to register a service. A service is a work item or task, that 15 service cores APIs, however the sample application introduces a "profile" 17 is application specific, and not a part of the service cores API. 32 pass a service core-mask as an EAL argument at startup time. 47 Registering a Service 50 The following code section shows how to register a service as an application. 58 :start-after: Register a service as an application. 8< 59 :end-before: >8 End of registering a service as an application. 66 This section demonstrates how to add a service core. The ``rte_service.h`` 71 These are the functions to start a service core, and have it run a service: [all …]
|
| /dpdk/examples/ip_pipeline/ |
| H A D | cli.c | 3047 struct table_rule_action *a) in parse_table_action_fwd() argument 3056 a->fwd.action = RTE_PIPELINE_ACTION_DROP; in parse_table_action_fwd() 3057 a->action_mask |= 1 << RTE_TABLE_ACTION_FWD; in parse_table_action_fwd() 3068 a->fwd.action = RTE_PIPELINE_ACTION_PORT; in parse_table_action_fwd() 3069 a->fwd.id = id; in parse_table_action_fwd() 3070 a->action_mask |= 1 << RTE_TABLE_ACTION_FWD; in parse_table_action_fwd() 3075 a->fwd.action = RTE_PIPELINE_ACTION_PORT_META; in parse_table_action_fwd() 3076 a->action_mask |= 1 << RTE_TABLE_ACTION_FWD; in parse_table_action_fwd() 3087 a->fwd.action = RTE_PIPELINE_ACTION_TABLE; in parse_table_action_fwd() 3088 a in parse_table_action_fwd() 3099 parse_table_action_balance(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_balance() argument 3122 parse_policer_action(char * token,enum rte_table_action_policer * a) parse_policer_action() argument 3170 parse_table_action_meter(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_meter() argument 3213 parse_table_action_tm(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_tm() argument 3234 parse_table_action_encap(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_encap() argument 3588 parse_table_action_nat(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_nat() argument 3630 parse_table_action_ttl(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_ttl() argument 3650 parse_table_action_stats(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_stats() argument 3665 parse_table_action_time(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_time() argument 3967 parse_table_action_sym_crypto(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_sym_crypto() argument 4031 parse_table_action_tag(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_tag() argument 4047 parse_table_action_decap(char ** tokens,uint32_t n_tokens,struct table_rule_action * a) parse_table_action_decap() argument 4065 parse_table_action(char ** tokens,uint32_t n_tokens,char * out,size_t out_size,struct table_rule_action * a) parse_table_action() argument 4266 struct table_rule_action a; cmd_pipeline_table_rule_add() local 4759 struct table_rule_action *a = &rule->action; table_rule_show() local 5011 struct table_rule_action *a = &table->rule_default->action; table_rule_show() local [all...] |
| /dpdk/doc/guides/contributing/ |
| H A D | stable.rst | 18 consumers of DPDK with a stable target on which to base applications or 25 The Long Term Support release (LTS) is a designation applied to a Stable 32 Any release of DPDK can be designated as a Stable Release if a 33 maintainer volunteers to maintain it and there is a commitment from major 35 If a version is to be a "Stable Release", it should be designated as such 41 The duration of a stable is one complete release cycle (4 months). It can be 42 longer, up to 1 year, if a maintainer continues to support the stable branch, 48 the validation engineers to ensure that a tagged release has been tested. 55 agreement and a commitment from a maintainer. The current policy is that each 62 A LTS release may align with the declaration of a new major ABI version, [all …]
|