26 #include <odp/helper/odph_api.h>
29 #define MB (1024 * 1024)
30 #define MAX_HUGE_PAGES 32
32 #define MAX_NAME_LEN 128
34 #define PROG_NAME "odp_sysinfo"
37 char name[MAX_NAME_LEN];
44 pktio_t pktio[MAX_IFACES];
53 ODP_STATIC_ASSERT(
sizeof(
unsigned int) >=
sizeof(uint32_t),
"unsigned int smaller than uint32_t");
61 default:
return "UNKNOWN";
189 return "chacha20_poly1305";
193 return "snow3g_uea2";
227 return "sha224_hmac";
229 return "sha256_hmac";
231 return "sha384_hmac";
233 return "sha512_hmac";
235 return "sha3_224_hmac";
237 return "sha3_256_hmac";
239 return "sha3_384_hmac";
241 return "sha3_512_hmac";
251 return "aes_xcbc_mac";
253 return "chacha20_poly1305";
257 return "snow3g_uia2";
265 return "snow_v_gmac";
448 printf(
" %s:\n", cipher_alg_name(cipher));
449 for (i = 0; i < rc; i++)
450 printf(
" key %d iv %d\n",
451 capa[i].key_len, capa[i].iv_len);
468 printf(
" %s:\n", auth_alg_name(auth));
469 for (i = 0; i < rc; i++) {
470 printf(
" digest %d", capa[i].digest_len);
471 if (capa[i].key_len != 0)
472 printf(
" key %d", capa[i].key_len);
473 if (capa[i].iv_len != 0)
474 printf(
" iv %d", capa[i].iv_len);
475 if (capa[i].aad_len.max != 0)
476 printf(
" aad %d, %d, %d",
477 capa[i].aad_len.min, capa[i].aad_len.max,
478 capa[i].aad_len.inc);
485 printf(
"%s ", cipher_alg_name(alg));
490 printf(
"%s ", auth_alg_name(alg));
493 static int pktio_capability(appl_args_t *appl_args)
506 ODPH_ERR(
"Creating packet pool failed\n");
510 for (
int i = 0; i < appl_args->num_pktio; i++) {
521 ODPH_ERR(
"Opening pktio %s failed\n", appl_args->pktio[i].name);
527 ODPH_ERR(
"Reading pktio %s capa failed\n", appl_args->pktio[i].name);
532 ODPH_ERR(
"Reading pktio %s proto stats capa failed\n",
533 appl_args->pktio[i].name);
538 ODPH_ERR(
"Closing pktio %s failed\n", appl_args->pktio[i].name);
547 ODPH_ERR(
"Destroying pktio pool failed\n");
553 static void print_pktio_capa(appl_args_t *appl_args)
555 for (
int i = 0; i < appl_args->num_pktio; i++) {
559 printf(
" PKTIO (%s)\n", appl_args->pktio[i].name);
560 printf(
" (in_mode: ODP_PKTIN_MODE_SCHED)\n");
561 printf(
" (out_mode: ODP_PKTOUT_MODE_DIRECT)\n");
568 printf(
" config.pktin: 0x%" PRIx64
"\n",
570 printf(
" config.pktout: 0x%" PRIx64
"\n",
573 printf(
" vector.supported: %s\n",
577 printf(
" vector.max_tmo_ns: %" PRIu64
" ns\n",
579 printf(
" vector.min_tmo_ns: %" PRIu64
" ns\n",
589 printf(
" lso.mod_op.add_payload_offset: %u\n",
605 printf(
" max_tx_aging_tmo_ns: %" PRIu64
" ns\n",
616 printf(
" reassembly.max_wait_time: %" PRIu64
" ns\n",
619 printf(
" stats.pktio: 0x%" PRIx64
"\n",
621 printf(
" stats.pktin_queue: 0x%" PRIx64
"\n",
623 printf(
" stats.pktout_queue: 0x%" PRIx64
"\n",
632 static void print_proto_stats_capa(appl_args_t *appl_args)
634 for (
int i = 0; i < appl_args->num_pktio; i++) {
638 printf(
" PROTO STATS (%s)\n", appl_args->pktio[i].name);
645 static int timer_capability(appl_args_t *appl_args)
656 ODPH_ERR(
"odp_timer_capability() failed for default clock source: %d\n",
663 ODPH_ERR(
"odp_timer_capability() for clock source %d failed: %d\n", i, ret);
676 ODPH_ERR(
"odp_timer_pool_create() failed for clock source: %d\n", i);
681 ODPH_ERR(
"odp_timer_pool_start_multi() failed for clock source: %d\n", i);
687 ODPH_ERR(
"odp_timer_pool_info() for clock source %d failed: %d\n", i, ret);
693 appl_args->timer.num++;
698 static void print_timer_capa(appl_args_t *appl_args)
700 for (
int i = 0; i < appl_args->timer.num; i++) {
705 printf(
" TIMER (SRC %d)\n", i);
708 printf(
" max_pools: %u\n", capa->
max_pools);
709 printf(
" max_timers: %u\n", capa->
max_timers);
712 printf(
" highest_res_ns: %" PRIu64
" nsec\n", capa->
highest_res_ns);
713 printf(
" maximum resolution\n");
718 printf(
" maximum timeout\n");
723 printf(
" periodic\n");
726 printf(
" min_base_freq_hz: %" PRIu64
" %" PRIu64
"/%" PRIu64
" Hz\n",
730 printf(
" max_base_freq_hz: %" PRIu64
" %" PRIu64
"/%" PRIu64
" Hz\n",
734 printf(
" timer pool tick info (max_res)\n");
735 printf(
" freq: %" PRIu64
" %" PRIu64
"/%" PRIu64
" Hz\n",
739 printf(
" nsec: %" PRIu64
" %" PRIu64
"/%" PRIu64
" ns\n",
743 printf(
" clk_cycle: %" PRIu64
" %" PRIu64
"/%" PRIu64
" cycles\n",
750 static void usage(
void)
753 "System Information\n"
755 "Usage: %s OPTIONS\n"
758 "Optional OPTIONS:\n"
759 " -i, --interfaces Ethernet interfaces for packet I/O, comma-separated, no\n"
761 " -h, --help Display help and exit.\n"
762 "\n", PROG_NAME, PROG_NAME);
765 static void parse_interfaces(appl_args_t *config,
const char *optarg)
767 char *tmp_str = strdup(optarg), *tmp;
772 tmp = strtok(tmp_str,
",");
774 while (tmp && config->num_pktio < MAX_IFACES) {
775 if (strlen(tmp) + 1 > MAX_NAME_LEN) {
776 ODPH_ERR(
"Unable to store interface name (MAX_NAME_LEN=%d)\n",
780 odph_strcpy(config->pktio[config->num_pktio].name, tmp, MAX_NAME_LEN);
784 tmp = strtok(NULL,
",");
790 static void parse_args(
int argc,
char *argv[], appl_args_t *appl_args)
793 static const struct option longopts[] = {
794 {
"interfaces", required_argument, NULL,
'i'},
795 {
"help", no_argument, NULL,
'h'},
798 static const char *shortopts =
"i:h";
801 opt = getopt_long(argc, argv, shortopts, longopts, NULL);
808 parse_interfaces(appl_args, optarg);
821 int main(
int argc,
char **argv)
824 int i, num_hp, num_hp_print;
825 int num_ava, num_work, num_ctrl;
840 appl_args_t appl_args;
841 uint64_t huge_page[MAX_HUGE_PAGES];
848 memset(&appl_args, 0,
sizeof(appl_args_t));
851 printf(
"ODP system info example\n");
852 printf(
"***********************************************************\n");
855 parse_args(argc, argv, &appl_args);
858 ODPH_ERR(
"Global init failed.\n");
863 ODPH_ERR(
"Local init failed.\n");
868 printf(
"odp_sys_info_print()\n");
869 printf(
"***********************************************************\n");
873 printf(
"odp_sys_config_print()\n");
874 printf(
"***********************************************************\n");
878 ODPH_ERR(
"system info call failed\n");
896 num_hp_print = num_hp;
897 if (num_hp_print > MAX_HUGE_PAGES)
898 num_hp_print = MAX_HUGE_PAGES;
901 ODPH_ERR(
"shm capability failed\n");
906 ODPH_ERR(
"pool capability failed\n");
911 ODPH_ERR(
"external packet pool capability failed\n");
915 if (pktio_capability(&appl_args)) {
916 ODPH_ERR(
"pktio capability failed\n");
921 ODPH_ERR(
"classifier capability failed\n");
926 ODPH_ERR(
"compression capability failed\n");
931 ODPH_ERR(
"dma capability failed\n");
936 ODPH_ERR(
"queue capability failed\n");
941 ODPH_ERR(
"schedule capability failed\n");
946 ODPH_ERR(
"stash capability failed\n");
950 if (timer_capability(&appl_args)) {
951 ODPH_ERR(
"timer capability failed\n");
956 ODPH_ERR(
"ml capability failed\n");
962 ODPH_ERR(
"crypto capability failed\n");
966 ODPH_ERR(
"IPsec capability failed\n");
969 printf(
"S Y S T E M I N F O R M A T I O N\n");
970 printf(
"***********************************************************\n");
976 printf(
" CPU arch: %s\n", cpu_arch_name(&sysinfo));
977 printf(
" CPU ISA version: %s\n", cpu_arch_isa(&sysinfo, 0));
978 printf(
" SW ISA version: %s\n", cpu_arch_isa(&sysinfo, 1));
981 printf(
" Current CPU freq: %" PRIu64
" hz\n",
odp_cpu_hz());
983 printf(
" CPU available num: %i\n", num_ava);
984 printf(
" CPU available mask: %s\n", ava_mask_str);
985 printf(
" CPU worker num: %i\n", num_work);
986 printf(
" CPU worker mask: %s\n", work_mask_str);
987 printf(
" CPU control num: %i\n", num_ctrl);
988 printf(
" CPU control mask: %s\n", ctrl_mask_str);
991 printf(
" Byte order: %s (%i / %i)\n",
994 printf(
" Bitfield order: %s (%i / %i)\n",
1001 printf(
" Num huge page sizes: %i\n", num_hp);
1003 for (i = 0; i < num_hp_print; i++)
1004 printf(
" Huge page size [%i]: %" PRIu64
" kB\n",
1005 i, huge_page[i] / KB);
1009 printf(
" max_blocks: %u\n", shm_capa.
max_blocks);
1010 printf(
" max_size: %" PRIu64
" MB\n", shm_capa.
max_size / MB);
1011 printf(
" max_align: %" PRIu64
" B\n", shm_capa.
max_align);
1012 printf(
" flags: 0x%x: %s%s%s%s%s%s\n", shm_capa.
flags,
1022 printf(
" max_pools: %u\n", pool_capa.
max_pools);
1023 printf(
" buf.max_pools: %u\n", pool_capa.
buf.
max_pools);
1024 printf(
" buf.max_align: %u B\n", pool_capa.
buf.
max_align);
1025 printf(
" buf.max_size: %u kB\n", pool_capa.
buf.
max_size / KB);
1026 printf(
" buf.max_num: %u\n", pool_capa.
buf.
max_num);
1031 printf(
" buf.stats: 0x%" PRIx64
"\n", pool_capa.
buf.
stats.
all);
1032 printf(
" pkt.max_pools: %u\n", pool_capa.
pkt.
max_pools);
1033 printf(
" pkt.max_len: %u kB\n", pool_capa.
pkt.
max_len / KB);
1034 printf(
" pkt.max_num: %u\n", pool_capa.
pkt.
max_num);
1035 printf(
" pkt.max_align: %u B\n", pool_capa.
pkt.
max_align);
1047 printf(
" pkt.stats: 0x%" PRIx64
"\n", pool_capa.
pkt.
stats.
all);
1048 printf(
" tmo.max_pools: %u\n", pool_capa.
tmo.
max_pools);
1049 printf(
" tmo.max_num: %u\n", pool_capa.
tmo.
max_num);
1054 printf(
" tmo.stats: 0x%" PRIx64
"\n", pool_capa.
tmo.
stats.
all);
1062 printf(
" vector.stats: 0x%" PRIx64
"\n", pool_capa.
vector.
stats.
all);
1065 printf(
" POOL EXT (pkt)\n");
1066 printf(
" max_pools: %u\n", pool_ext_capa.
max_pools);
1070 printf(
" stats: 0x%" PRIx64
"\n", pool_ext_capa.
stats.
all);
1086 print_pktio_capa(&appl_args);
1088 print_proto_stats_capa(&appl_args);
1091 printf(
" CLASSIFIER\n");
1093 printf(
" max_pmr: %u\n", cls_capa.
max_pmr);
1096 printf(
" max_cos: %u\n", cls_capa.
max_cos);
1102 printf(
" back_pressure: %s\n", support_level(cls_capa.
back_pressure));
1104 printf(
" max_mark: %" PRIu64
"\n", cls_capa.
max_mark);
1108 printf(
" COMPRESSION\n");
1112 printf(
" sync support: %i\n", comp_capa.
sync);
1113 printf(
" async support: %i\n", comp_capa.
async);
1121 printf(
" max_segs: %u\n", dma_capa.
max_segs);
1122 printf(
" max_seg_len: %u B\n", dma_capa.
max_seg_len);
1127 printf(
" pool.max_num: %u\n", dma_capa.
pool.
max_num);
1135 printf(
" max queues: %u\n", queue_capa.
max_queues);
1136 printf(
" plain.max_num: %u\n", queue_capa.
plain.
max_num);
1138 printf(
" plain.lf.max_num: %u\n", queue_capa.
plain.
lockfree.max_num);
1139 printf(
" plain.lf.max_size: %u\n", queue_capa.
plain.
lockfree.max_size);
1140 printf(
" plain.wf.max_num: %u\n", queue_capa.
plain.
waitfree.max_num);
1141 printf(
" plain.wf.max_size: %u\n", queue_capa.
plain.
waitfree.max_size);
1144 printf(
" SCHEDULER\n");
1146 printf(
" max_groups: %u\n", schedule_capa.
max_groups);
1147 printf(
" max_prios: %u\n", schedule_capa.
max_prios);
1148 printf(
" max_queues: %u\n", schedule_capa.
max_queues);
1150 printf(
" max_flow_id: %u\n", schedule_capa.
max_flow_id);
1151 printf(
" lockfree_queues: %s\n", support_level(schedule_capa.
lockfree_queues));
1152 printf(
" waitfree_queues: %s\n", support_level(schedule_capa.
waitfree_queues));
1153 printf(
" order_wait: %s\n", support_level(schedule_capa.
order_wait));
1158 printf(
" max_stashes: %u\n", stash_capa.
max_stashes);
1159 printf(
" max_num_obj: %" PRIu64
"\n", stash_capa.
max_num_obj);
1160 printf(
" max_num.u8: %" PRIu64
"\n", stash_capa.
max_num.
u8);
1161 printf(
" max_num.u16: %" PRIu64
"\n", stash_capa.
max_num.
u16);
1162 printf(
" max_num.u32: %" PRIu64
"\n", stash_capa.
max_num.
u32);
1163 printf(
" max_num.u64: %" PRIu64
"\n", stash_capa.
max_num.
u64);
1164 printf(
" max_num.u128: %" PRIu64
"\n", stash_capa.
max_num.
u128);
1166 printf(
" max_obj_size: %u B\n", stash_capa.
max_obj_size);
1170 printf(
" stats: 0x%" PRIx64
"\n", stash_capa.
stats.
all);
1174 printf(
" max_models: %u\n", ml_capa.
max_models);
1176 printf(
" max_model_size: %" PRIu64
"B\n", ml_capa.
max_model_size);
1178 printf(
" max_inputs: %u\n", ml_capa.
max_inputs);
1179 printf(
" max_outputs: %u\n", ml_capa.
max_outputs);
1193 printf(
" pool.max_num: %u\n", ml_capa.
pool.
max_num);
1199 print_timer_capa(&appl_args);
1201 if (crypto_ret == 0) {
1203 printf(
" CRYPTO\n");
1204 printf(
" max sessions: %u\n", crypto_capa.
max_sessions);
1205 printf(
" sync mode support: %s\n", support_level(crypto_capa.
sync_mode));
1206 printf(
" async mode support: %s\n", support_level(crypto_capa.
async_mode));
1209 printf(
" cipher algorithms: ");
1210 foreach_cipher(crypto_capa.
ciphers, print_cipher);
1212 foreach_cipher(crypto_capa.
ciphers, print_cipher_capa);
1213 printf(
" cipher algorithms (HW): ");
1214 foreach_cipher(crypto_capa.
hw_ciphers, print_cipher);
1216 foreach_cipher(crypto_capa.
hw_ciphers, print_cipher_capa);
1217 printf(
" auth algorithms: ");
1218 foreach_auth(crypto_capa.
auths, print_auth);
1220 foreach_auth(crypto_capa.
auths, print_auth_capa);
1221 printf(
" auth algorithms (HW): ");
1222 foreach_auth(crypto_capa.
hw_auths, print_auth);
1224 foreach_auth(crypto_capa.
hw_auths, print_auth_capa);
1227 if (ipsec_ret == 0) {
1230 printf(
" max SAs: %u\n", ipsec_capa.
max_num_sa);
1231 printf(
" sync mode support: %s\n",
1233 printf(
" async mode support: %s\n",
1235 printf(
" inline inbound mode support: %s\n",
1237 printf(
" inline outbound mode support: %s\n",
1239 printf(
" AH support: %s\n",
1240 support_level(ipsec_capa.
proto_ah));
1241 printf(
" post-IPsec fragmentation: %s\n",
1243 printf(
" pre-IPsec fragmentation: %s\n",
1245 printf(
" post-IPsec classification: %s\n",
1247 printf(
" retaining outer headers: %s\n",
1249 printf(
" inbound checksum offload support:\n");
1250 printf(
" IPv4 header checksum: %s\n",
1252 printf(
" UDP checksum: %s\n",
1254 printf(
" TCP checksum: %s\n",
1256 printf(
" SCTP checksum: %s\n",
1258 printf(
" max destination CoSes: %u\n", ipsec_capa.
max_cls_cos);
1259 printf(
" max destination queues: %u\n", ipsec_capa.
max_queues);
1262 printf(
" vector support: %s\n",
1266 printf(
" min_tmo_ns: %" PRIu64
" ns\n",
1268 printf(
" max_tmo_ns: %" PRIu64
" ns\n",
1270 printf(
" max anti-replay window size: %u\n",
1272 printf(
" inline TM pipelining: %s\n",
1274 printf(
" testing capabilities:\n");
1275 printf(
" sa_operations.seq_num: %i\n",
1277 printf(
" sa_operations.antireplay_window_top: %i\n",
1279 printf(
" post-IPsec reassembly support:\n");
1283 printf(
" max_wait_time: %" PRIu64
"\n",
1285 printf(
" max_num_frags: %" PRIu16
"\n",
1287 printf(
" reass_async: %i\n", ipsec_capa.
reass_async);
1288 printf(
" reass_inline: %i\n", ipsec_capa.
reass_inline);
1289 printf(
" cipher algorithms: ");
1290 foreach_cipher(ipsec_capa.
ciphers, print_cipher);
1292 printf(
" auth algorithms: ");
1293 foreach_auth(ipsec_capa.
auths, print_auth);
1298 printf(
" SHM MEMORY BLOCKS:\n");
1302 printf(
"***********************************************************\n");
1306 ODPH_ERR(
"Local term failed.\n");
1311 ODPH_ERR(
"Global term failed.\n");
1315 return EXIT_SUCCESS;
int odp_cls_capability(odp_cls_capability_t *capability)
Query classification capabilities.
#define ODP_BIG_ENDIAN_BITFIELD
Big endian bit field.
#define ODP_LITTLE_ENDIAN
Little endian byte order.
#define ODP_BITFIELD_ORDER
Selected bitfield order.
#define ODP_BIG_ENDIAN
Big endian byte order.
#define ODP_BYTE_ORDER
Selected byte order.
#define ODP_LITTLE_ENDIAN_BITFIELD
Little endian bit field.
int odp_comp_capability(odp_comp_capability_t *capa)
Query compression capabilities.
const char * odp_cpu_model_str(void)
CPU model name of this CPU.
int odp_cpu_id(void)
CPU identifier.
int odp_cpu_count(void)
CPU count.
uint64_t odp_cpu_hz_max(void)
Maximum CPU frequency in Hz.
uint64_t odp_cpu_hz(void)
Current CPU frequency in Hz.
int odp_cpumask_default_worker(odp_cpumask_t *mask, int num)
Default CPU mask for worker threads.
int odp_cpumask_all_available(odp_cpumask_t *mask)
Report all the available CPUs.
int odp_cpumask_default_control(odp_cpumask_t *mask, int num)
Default CPU mask for control threads.
int32_t odp_cpumask_to_str(const odp_cpumask_t *mask, char *str, int32_t size)
Format a string from CPU mask.
#define ODP_CPUMASK_STR_SIZE
The maximum number of characters needed to record any CPU mask as a string (output of odp_cpumask_to_...
int odp_crypto_cipher_capability(odp_cipher_alg_t cipher, odp_crypto_cipher_capability_t capa[], int num)
Query supported cipher algorithm capabilities.
odp_cipher_alg_t
Crypto API cipher algorithm.
int odp_crypto_capability(odp_crypto_capability_t *capa)
Query crypto capabilities.
odp_auth_alg_t
Crypto API authentication algorithm.
int odp_crypto_auth_capability(odp_auth_alg_t auth, odp_crypto_auth_capability_t capa[], int num)
Query supported authentication algorithm capabilities.
@ ODP_CIPHER_ALG_KASUMI_F8
Confidentiality F8 algorithm (UEA1)
@ ODP_CIPHER_ALG_AES_CFB128
AES with 128-bit cipher feedback.
@ ODP_CIPHER_ALG_SNOW3G_UEA2
Confidentiality UEA2 algorithm (128-EEA1)
@ ODP_CIPHER_ALG_SNOW_V_GCM
SNOW-V-GCM AEAD algorithm.
@ ODP_CIPHER_ALG_AES_CCM
AES-CCM.
@ ODP_CIPHER_ALG_SM4_CCM
SM4-CCM AEAD algorithm.
@ ODP_CIPHER_ALG_AES_ECB
AES with electronic codebook.
@ ODP_CIPHER_ALG_AES_CTR
AES with counter mode.
@ ODP_CIPHER_ALG_CHACHA20_POLY1305
ChaCha20-Poly1305.
@ ODP_CIPHER_ALG_AES_CBC
AES with cipher block chaining.
@ ODP_CIPHER_ALG_SM4_ECB
SM4 block cipher in ECB mode.
@ ODP_CIPHER_ALG_AES_GCM
AES-GCM.
@ ODP_CIPHER_ALG_3DES_CBC
Triple DES with cipher block chaining.
@ ODP_CIPHER_ALG_AES_EEA2
Confidentiality 128-EEA2 algorithm.
@ ODP_CIPHER_ALG_SM4_CBC
SM4 block cipher in CBC mode.
@ ODP_CIPHER_ALG_AES_XTS
AES with XEX-based tweaked-codebook mode with ciphertext stealing (XTS)
@ ODP_CIPHER_ALG_SM4_GCM
SM4-GCM AEAD algorithm.
@ ODP_CIPHER_ALG_NULL
No cipher algorithm specified.
@ ODP_CIPHER_ALG_ZUC_EEA3
ZUC based confidentiality algorithm.
@ ODP_CIPHER_ALG_SNOW_V
SNOW-V stream cipher.
@ ODP_CIPHER_ALG_3DES_ECB
Triple DES with Electronic Codebook.
@ ODP_CIPHER_ALG_SM4_CTR
SM4 block cipher in CTR mode.
@ ODP_AUTH_ALG_SM4_GCM
SM4-GCM AEAD algorithm.
@ ODP_AUTH_ALG_MD5
MD5 algorithm.
@ ODP_AUTH_ALG_SHA384_HMAC
HMAC-SHA-384.
@ ODP_AUTH_ALG_CHACHA20_POLY1305
ChaCha20-Poly1305 AEAD.
@ ODP_AUTH_ALG_AES_CMAC
AES-CMAC.
@ ODP_AUTH_ALG_SHA384
384 bit SHA2 algorithm
@ ODP_AUTH_ALG_SM3
SM3 hash function.
@ ODP_AUTH_ALG_NULL
No authentication algorithm specified.
@ ODP_AUTH_ALG_SM4_CCM
SM4-CCM AEAD algorithm.
@ ODP_AUTH_ALG_SHA512
512 bit SHA2 algorithm
@ ODP_AUTH_ALG_SHA3_256
SHA-3 hash function producing 256-bit digests.
@ ODP_AUTH_ALG_MD5_HMAC
HMAC-MD5.
@ ODP_AUTH_ALG_SHA512_HMAC
HMAC-SHA-512.
@ ODP_AUTH_ALG_SHA1_HMAC
HMAC-SHA-1.
@ ODP_AUTH_ALG_SHA256_HMAC
HMAC-SHA-256.
@ ODP_AUTH_ALG_SHA3_224_HMAC
HMAC using SHA3-224.
@ ODP_AUTH_ALG_SHA256
256 bit SHA2 algorithm
@ ODP_AUTH_ALG_SHA1
SHA1 algorithm.
@ ODP_AUTH_ALG_SNOW_V_GMAC
SNOW-V-GMAC.
@ ODP_AUTH_ALG_SNOW3G_UIA2
Integrity UIA2 algorithm (128-EIA1)
@ ODP_AUTH_ALG_SHA3_512
SHA-3 hash function producing 512-bit digests.
@ ODP_AUTH_ALG_SM3_HMAC
HMAC using SM3.
@ ODP_AUTH_ALG_SHA224_HMAC
HMAC-SHA-224.
@ ODP_AUTH_ALG_AES_GMAC
AES-GMAC.
@ ODP_AUTH_ALG_AES_XCBC_MAC
AES-XCBC-MAC.
@ ODP_AUTH_ALG_AES_GCM
AES-GCM.
@ ODP_AUTH_ALG_KASUMI_F9
Integrity F9 algorithm (UIA1)
@ ODP_AUTH_ALG_SHA3_256_HMAC
HMAC using SHA3-256.
@ ODP_AUTH_ALG_SHA3_384
SHA-3 hash function producing 384-bit digests.
@ ODP_AUTH_ALG_SM4_GMAC
SM4-GMAC.
@ ODP_AUTH_ALG_AES_CCM
AES-CCM.
@ ODP_AUTH_ALG_SHA3_224
SHA-3 hash function producing 224-bit digests.
@ ODP_AUTH_ALG_SNOW_V_GCM
SNOW-V-GCM AEAD algorithm.
@ ODP_AUTH_ALG_SHA3_384_HMAC
HMAC using SHA3-384.
@ ODP_AUTH_ALG_AES_EIA2
Integrity 128-EIA2 algorithm.
@ ODP_AUTH_ALG_SHA3_512_HMAC
HMAC using SHA3-512.
@ ODP_AUTH_ALG_ZUC_EIA3
ZUC-based integrity algorithm.
@ ODP_AUTH_ALG_SHA224
224 bit SHA2 algorithm
int odp_dma_capability(odp_dma_capability_t *capa)
Query DMA capabilities.
#define ODP_STATIC_ASSERT(cond, msg)
Compile time assertion macro.
int odp_init_local(odp_instance_t instance, odp_thread_type_t thr_type)
Thread local ODP initialization.
int odp_init_global(odp_instance_t *instance, const odp_init_t *params, const odp_platform_init_t *platform_params)
Global ODP initialization.
int odp_term_local(void)
Thread local ODP termination.
int odp_term_global(odp_instance_t instance)
Global ODP termination.
uint64_t odp_instance_t
ODP instance ID.
int odp_ipsec_capability(odp_ipsec_capability_t *capa)
Query IPSEC capabilities.
int odp_ml_capability(odp_ml_capability_t *capa)
Query ML capabilities.
void odp_pktio_param_init(odp_pktio_param_t *param)
Initialize pktio params.
int odp_pktio_close(odp_pktio_t pktio)
Close a packet IO interface.
odp_pktio_t odp_pktio_open(const char *name, odp_pool_t pool, const odp_pktio_param_t *param)
Open a packet IO interface.
#define ODP_PKTIO_INVALID
Invalid packet IO handle.
int odp_pktio_capability(odp_pktio_t pktio, odp_pktio_capability_t *capa)
Query packet IO interface capabilities.
@ ODP_PKTOUT_MODE_DIRECT
Direct packet output on the interface.
@ ODP_PKTIN_MODE_SCHED
Packet input through scheduler and scheduled event queues.
odp_pool_t odp_pool_create(const char *name, const odp_pool_param_t *param)
Create a pool.
int odp_pool_capability(odp_pool_capability_t *capa)
Query pool capabilities.
void odp_pool_param_init(odp_pool_param_t *param)
Initialize pool params.
int odp_pool_destroy(odp_pool_t pool)
Destroy a pool previously created by odp_pool_create()
int odp_pool_ext_capability(odp_pool_type_t type, odp_pool_ext_capability_t *capa)
Query capabilities of an external memory pool type.
#define ODP_POOL_INVALID
Invalid pool.
@ ODP_POOL_PACKET
Packet pool.
int odp_proto_stats_capability(odp_pktio_t pktio, odp_proto_stats_capability_t *capa)
Get proto stats capability.
int odp_queue_capability(odp_queue_capability_t *capa)
Query queue capabilities.
int odp_schedule_capability(odp_schedule_capability_t *capa)
Query scheduler capabilities.
void odp_shm_print_all(void)
Print all shared memory blocks.
#define ODP_SHM_EXPORT
Export memory.
#define ODP_SHM_SINGLE_VA
Single virtual address.
int odp_shm_capability(odp_shm_capability_t *capa)
Query shared memory capabilities.
#define ODP_SHM_PROC
Share with external processes.
#define ODP_SHM_HP
Use huge pages.
#define ODP_SHM_NO_HP
Don't use huge pages.
#define ODP_SHM_HW_ACCESS
Share memory with HW accelerators.
int odp_stash_capability(odp_stash_capability_t *capa, odp_stash_type_t type)
Query stash capabilities.
@ ODP_STASH_TYPE_DEFAULT
The default stash type.
odp_support_t
ODP support.
@ ODP_SUPPORT_PREFERRED
Feature is supported and preferred.
@ ODP_SUPPORT_YES
Feature is supported.
@ ODP_SUPPORT_NO
Feature is not supported.
odp_cpu_arch_x86_t
x86 ISA versions
int odp_sys_cache_line_size(void)
Cache line size in bytes.
uint64_t odp_sys_huge_page_size(void)
Default system huge page size in bytes.
uint64_t odp_sys_page_size(void)
Page size in bytes.
int odp_system_info(odp_system_info_t *info)
Retrieve system information.
int odp_sys_huge_page_size_all(uint64_t size[], int num)
System huge page sizes in bytes.
odp_cpu_arch_arm_t
ARM ISA versions.
void odp_sys_info_print(void)
Print system info.
void odp_sys_config_print(void)
Print configuration.
odp_cpu_arch_t
CPU instruction set architecture (ISA) families.
@ ODP_CPU_ARCH_X86_I686
x86 32bit ISA
@ ODP_CPU_ARCH_X86_64
x86 64bit ISA
@ ODP_CPU_ARCH_ARMV8_1
ARMv8.1-A ISA.
@ ODP_CPU_ARCH_ARMV8_0
ARMv8.0-A ISA.
@ ODP_CPU_ARCH_ARMV9_1
ARMv9.1-A ISA.
@ ODP_CPU_ARCH_ARMV8_4
ARMv8.4-A ISA.
@ ODP_CPU_ARCH_ARMV8_8
ARMv8.8-A ISA.
@ ODP_CPU_ARCH_ARMV8_9
ARMv8.9-A ISA.
@ ODP_CPU_ARCH_ARMV7
ARMv7-A ISA.
@ ODP_CPU_ARCH_ARMV6
ARMv6 ISA.
@ ODP_CPU_ARCH_ARMV9_3
ARMv9.3-A ISA.
@ ODP_CPU_ARCH_ARMV8_6
ARMv8.6-A ISA.
@ ODP_CPU_ARCH_ARMV9_2
ARMv9.2-A ISA.
@ ODP_CPU_ARCH_ARMV8_3
ARMv8.3-A ISA.
@ ODP_CPU_ARCH_ARMV8_2
ARMv8.2-A ISA.
@ ODP_CPU_ARCH_ARMV9_0
ARMv9.0-A ISA.
@ ODP_CPU_ARCH_ARMV8_5
ARMv8.5-A ISA.
@ ODP_CPU_ARCH_ARMV8_7
ARMv8.7-A ISA.
@ ODP_CPU_ARCH_PPC
PowerPC.
@ ODP_CPU_ARCH_RISCV
RISC-V.
#define ODP_THREAD_COUNT_MAX
Maximum number of threads supported in build time.
int odp_thread_count_max(void)
Maximum thread count.
@ ODP_THREAD_CONTROL
Control thread.
int odp_timer_pool_start_multi(odp_timer_pool_t timer_pool[], int num)
Start timer pools.
#define ODP_TIMER_POOL_INVALID
Invalid timer pool handle.
odp_timer_pool_t odp_timer_pool_create(const char *name, const odp_timer_pool_param_t *params)
Create a timer pool.
int odp_timer_capability(odp_timer_clk_src_t clk_src, odp_timer_capability_t *capa)
Query timer capabilities per clock source.
int odp_timer_pool_info(odp_timer_pool_t timer_pool, odp_timer_pool_info_t *info)
Query timer pool configuration and current state.
#define ODP_CLOCK_DEFAULT
The default clock source.
void odp_timer_pool_param_init(odp_timer_pool_param_t *param)
Initialize timer pool parameters.
void odp_timer_pool_destroy(odp_timer_pool_t timer_pool)
Destroy a timer pool.
@ ODP_CLOCK_NUM_SRC
Number of clock source enumerations.
const char * odp_version_api_str(void)
ODP API version string.
const char * odp_version_impl_str(void)
Implementation version string.
const char * odp_version_impl_name(void)
Implementation name string.
Classification capabilities This capability structure defines system level classification capability.
uint32_t max_pmr
Maximum number of single-term PMRs.
uint64_t max_mark
Maximum value of odp_pmr_create_opt_t::mark.
uint32_t max_hash_queues
Maximum number of queues supported per CoS.
odp_threshold_types_t threshold_red
Supported threshold type for RED.
odp_support_t back_pressure
Support for Back Pressure to the remote peer.
uint32_t max_terms_per_pmr
Maximum number of terms per composite PMR.
odp_threshold_types_t threshold_bp
Supported threshold type for BP.
odp_cls_pmr_terms_t supported_terms
PMR terms supported by the classifier.
uint32_t max_cos
Maximum number of CoS supported.
odp_support_t random_early_detection
Support for Random Early Detection.
odp_pktin_hash_proto_t hash_protocols
Protocol header combination supported for Hashing.
odp_bool_t pmr_range_supported
A Boolean to denote support of PMR range.
uint32_t max_pmr_per_cos
Maximum number of PMRs per CoS.
odp_cls_stats_capability_t stats
Statistics counters capabilities.
struct odp_cls_stats_capability_t::@13 queue
Queue level capabilities.
uint64_t all_counters
All bits of the bit field structure.
Compression Interface Capabilities.
odp_support_t sync
Synchronous compression mode support (ODP_COMP_OP_MODE_SYNC)
uint32_t max_sessions
Maximum number of sessions.
odp_support_t async
Asynchronous compression mode support (ODP_COMP_OP_MODE_ASYNC)
odp_comp_hash_algos_t hash_algos
Supported hash algorithms.
odp_comp_algos_t comp_algos
Supported compression algorithms.
Authentication algorithm capabilities.
odp_support_t async_mode
Supported packet operation in ASYNC mode.
odp_bool_t queue_type_sched
Scheduled crypto completion queue support.
odp_crypto_cipher_algos_t ciphers
Supported cipher algorithms.
odp_crypto_auth_algos_t hw_auths
Authentication algorithms implemented with HW offload.
odp_crypto_cipher_algos_t hw_ciphers
Cipher algorithms implemented with HW offload.
odp_support_t sync_mode
Supported packet operation in SYNC mode.
odp_bool_t queue_type_plain
Plain crypto completion queue support.
odp_crypto_auth_algos_t auths
Supported authentication algorithms.
uint32_t max_sessions
Maximum number of crypto sessions.
Cipher algorithm capabilities.
uint32_t max_sessions
Maximum number of DMA sessions.
uint32_t max_transfers
Maximum number of transfers per DMA session.
odp_dma_pool_capability_t pool
DMA completion event pool capabilities.
uint32_t max_segs
Maximum number of destination and source segments combined in a single transfer.
uint32_t max_dst_segs
Maximum number of destination segments in a single transfer.
uint32_t max_src_segs
Maximum number of source segments in a single transfer.
odp_bool_t queue_type_sched
Scheduled queue support.
odp_dma_compl_mode_t compl_mode_mask
Supported completion modes.
uint32_t max_seg_len
Maximum segment length in bytes.
odp_bool_t queue_type_plain
Plain queue support.
odp_bool_t uarea_persistence
Pool user area persistence.
uint32_t min_cache_size
Minimum size of thread local cache.
uint32_t max_cache_size
Maximum size of thread local cache.
uint32_t max_uarea_size
Maximum user area size in bytes.
uint32_t max_pools
Maximum number of DMA completion event pools.
uint32_t max_num
Maximum number of DMA completion events in a pool.
uint64_t integer
Integer part.
uint64_t denom
Denominator of the fraction part.
uint64_t numer
Numerator of the fraction part.
odp_reass_capability_t reassembly
Post-IPsec reassembly capability.
odp_bool_t reass_inline
Support of reassembly after inline inbound IPsec processing.
uint32_t max_cls_cos
Maximum number of different destination CoSes in classification pipelining.
odp_crypto_cipher_algos_t ciphers
Supported cipher algorithms.
odp_support_t frag_after
Fragment after IPsec support.
odp_support_t inline_ipsec_tm
Support of traffic manager (TM) after inline outbound IPSEC processing.
odp_pktin_vector_capability_t vector
Support for returning completion packets as vectors.
odp_bool_t queue_type_sched
Scheduled queue support.
odp_support_t op_mode_sync
Synchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_SYNC) support.
odp_support_t frag_before
Fragment before IPsec support.
odp_support_t op_mode_inline_in
Inline inbound IPSEC operation mode (ODP_IPSEC_OP_MODE_INLINE) support.
odp_support_t op_mode_inline_out
Inline outgoing IPSEC operation mode (ODP_IPSEC_OP_MODE_INLINE) support.
odp_support_t pipeline_cls
Support of pipelined classification (ODP_IPSEC_PIPELINE_CLS) of resulting inbound packets.
uint32_t max_antireplay_ws
Maximum anti-replay window size.
uint32_t max_num_sa
Maximum number of IPSEC SAs.
odp_proto_chksums_t chksums_in
Inner packet checksum check offload support in inbound direction.
odp_support_t op_mode_async
Asynchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_ASYNC) support.
odp_crypto_auth_algos_t auths
Supported authentication algorithms.
uint32_t max_queues
Maximum number of different destination queues.
odp_support_t retain_header
Support of retaining outer headers (retain_outer) in inbound inline processed packets.
odp_bool_t queue_type_plain
Plain queue support.
odp_bool_t reass_async
Support of reassembly after inbound processing in odp_ipsec_in_enq()
odp_ipsec_test_capability_t test
IPSEC TEST capabilities.
odp_support_t proto_ah
IP Authenticated Header (ODP_IPSEC_AH) support.
odp_bool_t antireplay_window_top
Highest authenticated sequence number.
struct odp_ipsec_test_capability_t::@42 sa_operations
Parameters supported for sa_update.
odp_bool_t seq_num
Next sequence number value.
uint32_t max_payload_len
Maximum payload length per an LSO generated packet (in bytes).
uint32_t max_packet_segments
Maximum number of segments in an input packet.
uint32_t max_segments
Maximum number of segments an LSO operation may create.
uint32_t max_profiles
Maximum number of LSO profiles.
uint32_t sctp_ipv4
ODP_LSO_PROTO_SCTP_IPV4 support.
uint32_t max_profiles_per_pktio
Maximum number of LSO profiles per packet IO interface.
uint16_t add_payload_len
ODP_LSO_ADD_PAYLOAD_LEN support.
uint8_t max_num_custom
Maximum number of custom fields supported per LSO profile.
struct odp_lso_capability_t::@105 mod_op
Supported LSO custom modification options.
uint16_t write_bits
ODP_LSO_WRITE_BITS support.
uint32_t tcp_ipv4
ODP_LSO_PROTO_TCP_IPV4 support.
uint16_t add_segment_num
ODP_LSO_ADD_SEGMENT_NUM support.
uint32_t ipv4
ODP_LSO_PROTO_IPV4 support.
uint32_t max_payload_offset
Maximum supported offset to the packet payload (in bytes).
struct odp_lso_capability_t::@106 proto
Supported LSO protocol options.
uint32_t tcp_ipv6
ODP_LSO_PROTO_TCP_IPV6 support.
uint32_t custom
ODP_LSO_PROTO_CUSTOM support.
uint32_t sctp_ipv6
ODP_LSO_PROTO_SCTP_IPV6 support.
uint32_t ipv6
ODP_LSO_PROTO_IPV6 support.
uint16_t add_payload_offset
ODP_LSO_ADD_PAYLOAD_OFFSET support.
Machine learning capabilities.
odp_ml_compl_mode_t compl_mode_mask
Supported completion modes for model load / unload operations.
odp_bool_t compl_queue_sched
Support of model load / unload completion into scheduled queues.
uint32_t min_output_align
Minimum output data alignment in bytes.
odp_bool_t packed_output_data
Output data packing.
uint64_t max_model_size
Maximum model size in bytes.
uint32_t min_input_align
Minimum input data alignment in bytes.
odp_bool_t compl_queue_plain
Support of model load / unload completion into plain queues.
uint32_t max_segs_per_input
Maximum number of data segments per model input.
odp_bool_t packed_input_data
Input data packing.
struct odp_ml_capability_t::@84 load
Model load / unload capabilities.
uint32_t max_compl_id
Maximum completion identifier value.
uint32_t max_segs_per_output
Maximum number of data segments per model output.
odp_ml_compl_pool_capability_t pool
ML completion event pool capabilities.
uint32_t max_models
Maximum number of models.
struct odp_ml_capability_t::@85 run
Model run capabilities.
uint32_t max_models_loaded
Maximum number of models that can be loaded simultaneously.
uint32_t max_inputs
Maximum number of model inputs.
uint32_t max_outputs
Maximum number of model outputs.
uint32_t max_pools
Maximum number of ML completion event pools.
uint32_t max_num
Maximum number of ML completion events in a pool.
uint32_t max_cache_size
Maximum size of local thread cache.
odp_bool_t uarea_persistence
User area persistence.
uint32_t max_uarea_size
Maximum user area size in bytes.
uint32_t min_cache_size
Minimum size of local thread cache.
uint64_t max_tmo_ns
Maximum timeout in nanoseconds for the producer to wait for the vector of packets.
uint64_t min_tmo_ns
Minimum value allowed to be configured to odp_pktin_vector_config_t::max_tmo_ns.
uint32_t min_size
Minimum value allowed to be configured to odp_pktin_vector_config_t::max_size.
uint32_t max_size
Maximum number of packets that can be accumulated into a packet vector by a producer.
odp_support_t supported
Packet input vector availability.
struct odp_pktio_capability_t::@109 free_ctrl
Supported packet free control options.
odp_bool_t queue_type_sched
Scheduled queue support.
odp_bool_t equal
Equal maximum frame length for both packet input and output.
uint32_t mode_poll
Packet transmit completion mode ODP_PACKET_TX_COMPL_POLL support.
odp_pktio_set_op_t set_op
Supported set operations.
uint32_t pfc_tx
Generation of PFC frames.
uint32_t max_output
Maximum valid value for 'maxlen_output'.
uint32_t pfc_rx
Reception of PFC frames.
odp_pktin_vector_capability_t vector
Packet input vector capability.
uint32_t max_input_queues
Maximum number of input queues.
uint32_t max_input
Maximum valid value for 'maxlen_input'.
struct odp_pktio_capability_t::@110 flow_control
Supported flow control modes.
odp_pktio_config_t config
Supported pktio configuration options.
uint32_t min_output
Minimum valid value for 'maxlen_output'.
uint32_t max_output_queue_size
Maximum output queue size.
uint32_t max_output_queues
Maximum number of output queues.
uint32_t max_compl_id
Maximum supported completion ID value.
struct odp_pktio_capability_t::@108 tx_compl
Supported packet Tx completion options.
uint32_t min_output_queue_size
Minimum output queue size.
uint64_t max_tx_aging_tmo_ns
Max Tx aging timeout in nano seconds supported when packet aging feature is supported.
uint32_t dont_free
Packet free control option ODP_PACKET_FREE_CTRL_DONT_FREE support with odp_packet_free_ctrl_set().
uint32_t min_input
Minimum valid value for 'maxlen_input'.
odp_pktio_stats_capability_t stats
Statistics counters capabilities.
odp_lso_capability_t lso
LSO capabilities.
uint32_t mode_event
Packet transmit completion mode ODP_PACKET_TX_COMPL_EVENT support.
uint32_t max_input_queue_size
Maximum input queue size.
struct odp_pktio_capability_t::@107 maxlen
Supported frame lengths for odp_pktio_maxlen_set()
odp_bool_t queue_type_plain
Plain queue support.
uint32_t pause_tx
Generation of traditional Ethernet pause frames.
uint32_t pause_rx
Reception of traditional Ethernet pause frames.
uint32_t min_input_queue_size
Minimum input queue size.
odp_reass_capability_t reassembly
Packet input reassembly capability.
odp_pktout_config_opt_t pktout
Packet output configuration options bit field.
odp_pktin_config_opt_t pktin
Packet input configuration options bit field.
odp_pktin_mode_t in_mode
Packet input mode.
odp_pktout_mode_t out_mode
Packet output mode.
uint64_t all_counters
All bits of the bit field structure.
struct odp_pktio_stats_capability_t::@89 pktout_queue
Output queue level capabilities.
struct odp_pktio_stats_capability_t::@87 pktio
Interface level capabilities.
struct odp_pktio_stats_capability_t::@88 pktin_queue
Input queue level capabilities.
struct odp_pool_capability_t::@121 buf
Buffer pool capabilities
uint32_t max_align
Maximum buffer data alignment in bytes.
uint32_t max_headroom
Maximum packet level headroom length in bytes.
uint32_t min_headroom
Minimum packet level headroom length in bytes.
struct odp_pool_capability_t::@122 pkt
Packet pool capabilities
uint32_t max_num
Maximum number of buffers of any size.
struct odp_pool_capability_t::@123 tmo
Timeout pool capabilities
uint32_t min_cache_size
Minimum size of thread local cache.
uint32_t max_segs_per_pkt
Maximum number of segments per packet.
odp_bool_t uarea_persistence
Pool user area persistence.
uint32_t max_uarea_size
Maximum user area size in bytes.
struct odp_pool_capability_t::@124 vector
Vector pool capabilities.
uint32_t max_size
Maximum buffer data size in bytes.
uint8_t max_num_subparam
Maximum number of subparameters.
odp_pool_stats_opt_t stats
Supported statistics counters.
uint32_t max_cache_size
Maximum size of thread local cache.
uint32_t min_seg_len
Minimum packet segment data length in bytes.
uint32_t max_pools
Maximum number of pools of any type (odp_pool_type_t)
uint32_t min_tailroom
Minimum packet level tailroom length in bytes.
uint32_t max_seg_len
Maximum packet segment data length in bytes.
uint32_t max_len
Maximum packet data length in bytes.
External memory pool capabilities.
uint16_t buf_size_aligned
Packet buffers are size aligned.
uint32_t max_pools
Maximum number of pools.
uint32_t max_num_buf
Maximum number of packet buffers.
odp_bool_t uarea_persistence
Pool user area persistence.
uint32_t max_segs_per_pkt
Maximum number of segments per packet.
uint32_t max_headroom
Maximum headroom parameter value.
uint32_t odp_trailer_size
ODP trailer size in bytes.
uint32_t min_mem_align
Minimum packet pool memory area alignment in bytes.
uint32_t max_uarea_size
Maximum user area size in bytes.
uint32_t min_head_align
Minimum packet headroom alignment in bytes.
uint32_t min_cache_size
Minimum size of thread local cache.
odp_pool_stats_opt_t stats
Supported statistics counters.
uint32_t max_headroom_size
Maximum headroom size in bytes.
struct odp_pool_ext_capability_t::@130 pkt
Packet pool capabilities
uint32_t max_cache_size
Maximum size of thread local cache.
uint32_t odp_header_size
ODP header size in bytes.
uint32_t max_buf_size
Maximum packet buffer size in bytes.
uint32_t min_buf_align
Minimum packet buffer pointer alignment in bytes.
uint32_t num
Number of buffers in the pool.
odp_pool_type_t type
Pool type.
struct odp_pool_param_t::@126 pkt
Parameters for packet pools.
Proto stats capabilities.
odp_proto_stats_counters_t counters
Stats counters supported.
odp_bool_t oct_count1_adj
Packet adjust support for Octet counter 1.
odp_bool_t oct_count0_adj
Packet adjust support for Octet counter 0.
struct odp_proto_stats_capability_t::@139 tx
Tx capabilities.
struct odp_queue_capability_t::@140::@142 waitfree
Wait-free (ODP_NONBLOCKING_WF) implementation capabilities.
uint32_t max_size
Maximum number of events a plain (ODP_BLOCKING) queue can store simultaneously.
uint32_t max_num
Maximum number of plain (ODP_BLOCKING) queues of the default size.
struct odp_queue_capability_t::@140::@141 lockfree
Lock-free (ODP_NONBLOCKING_LF) implementation capabilities.
uint32_t max_queues
Maximum number of event queues of any type (default size).
struct odp_queue_capability_t::@140 plain
Plain queue capabilities.
uint16_t max_num_frags
Maximum number of fragments that can be reassembled.
odp_bool_t ipv4
Reassembly offload for IPv4 packets.
odp_bool_t ipv6
Reassembly offload for IPv6 packets.
odp_bool_t ip
Reassembly offload for both IPv4 and IPv6 packets.
uint64_t max_wait_time
Maximum time in ns that a fragment can wait in the reassembly offload for the arrival of further frag...
uint32_t max_flow_id
Maximum flow ID per queue.
odp_support_t order_wait
Order wait support.
uint32_t max_groups
Maximum number of scheduling groups.
uint32_t max_queues
Maximum number of scheduled (ODP_BLOCKING) queues of the default size.
odp_support_t waitfree_queues
Wait-free (ODP_NONBLOCKING_WF) queues support.
odp_support_t lockfree_queues
Lock-free (ODP_NONBLOCKING_LF) queues support.
uint32_t max_queue_size
Maximum number of events a scheduled (ODP_BLOCKING) queue can store simultaneously.
uint32_t max_ordered_locks
Maximum number of ordered locks per queue.
uint32_t max_prios
Number of scheduling priorities.
Shared memory capabilities.
uint32_t max_blocks
Maximum number of shared memory blocks.
uint32_t flags
Supported shared memory flags.
uint64_t max_size
Maximum memory block size in bytes.
uint64_t max_align
Maximum memory block alignment in bytes.
Stash capabilities (per stash type)
struct odp_stash_capability_t::@145 max_num
Maximum number of object handles per stash for each object size.
uint64_t u16
Maximum number of 2 byte object handles.
uint32_t max_stashes_any_type
Maximum number of stashes of any type.
uint32_t max_get_batch
Maximum number of object handles in batch get operations.
uint64_t u128
Maximum number of 16 byte object handles.
uint32_t max_put_batch
Maximum number of object handles in batch put operations.
uint64_t max_obj_size
Maximum number of 'max_obj_size' object handles.
uint32_t max_stashes
Maximum number of stashes of this type.
uint64_t u64
Maximum number of 8 byte object handles.
odp_stash_stats_opt_t stats
Supported statistics counters.
uint32_t max_cache_size
Maximum size of thread local cache.
uint64_t u32
Maximum number of 4 byte object handles.
uint64_t max_num_obj
Maximum common number of object handles per stash for any object size.
uint64_t u8
Maximum number of 1 byte object handles.
odp_cpu_arch_isa_t cpu_isa_hw
ISA version of CPU hardware.
odp_cpu_arch_t cpu_arch
CPU architecture.
odp_cpu_arch_isa_t cpu_isa_sw
ISA version of ODP software.
odp_fract_u64_t min_base_freq_hz
Minimum supported base frequency value.
uint32_t max_timers
Maximum number of single shot timers in a pool.
uint32_t max_pools_combined
Maximum number of timer pools.
uint32_t max_pools
Maximum number of timer pools for single shot timers (per clock source)
odp_timer_res_capability_t max_tmo
Maximum timeout length.
odp_fract_u64_t max_base_freq_hz
Maximum supported base frequency value.
odp_timer_res_capability_t max_res
Maximum resolution.
odp_bool_t queue_type_plain
Plain queue destination support.
struct odp_timer_capability_t::@156 periodic
Periodic timer capabilities.
uint64_t highest_res_ns
Highest timer resolution in nanoseconds.
odp_bool_t queue_type_sched
Scheduled queue destination support.
ODP timer pool information and configuration.
odp_timer_tick_info_t tick_info
Timer pool tick information.
uint64_t res_ns
Timeout resolution in nanoseconds.
uint64_t min_tmo
Minimum relative timeout in nanoseconds.
uint32_t num_timers
Number of timers in the pool.
odp_timer_clk_src_t clk_src
Clock source for timers.
uint64_t max_tmo
Maximum relative timeout in nanoseconds.
uint64_t res_hz
Timeout resolution in hertz.
uint64_t max_tmo
Maximum relative timeout in nanoseconds.
uint64_t min_tmo
Minimum relative timeout in nanoseconds.
uint64_t res_ns
Timeout resolution in nanoseconds.
odp_fract_u64_t clk_cycle
One timer tick in source clock cycles.
odp_fract_u64_t freq
Timer tick frequency in hertz.
odp_fract_u64_t nsec
One timer tick in nanoseconds.
uint64_t all_bits
All bits of the bit field structure.
uint32_t all_bits
All bits of the bit field structure This field can be used to set/clear all flags,...
uint32_t all_bits
All bits of the bit field structure.
odp_cpu_arch_arm_t arm
ARM ISA versions.
odp_cpu_arch_x86_t x86
x86 ISA versions
Authentication algorithms in a bit field structure.
uint32_t md5
ODP_AUTH_ALG_MD5.
uint32_t sha3_512_hmac
ODP_AUTH_ALG_SHA3_512_HMAC.
uint32_t sha384
ODP_AUTH_ALG_SHA384.
uint32_t sha224
ODP_AUTH_ALG_SHA224.
uint32_t sha3_224
ODP_AUTH_ALG_SHA3_224.
uint32_t sm3
ODP_AUTH_ALG_SM3.
uint32_t null
ODP_AUTH_ALG_NULL.
uint32_t sha1_hmac
ODP_AUTH_ALG_SHA1_HMAC.
uint32_t sha512_hmac
ODP_AUTH_ALG_SHA512_HMAC.
uint32_t sha256
ODP_AUTH_ALG_SHA256.
uint32_t sha224_hmac
ODP_AUTH_ALG_SHA224_HMAC.
uint32_t sm4_gmac
ODP_AUTH_ALG_SM4_GMAC.
uint32_t sha3_512
ODP_AUTH_ALG_SHA3_512.
uint32_t aes_cmac
ODP_AUTH_ALG_AES_CMAC.
uint32_t zuc_eia3
ODP_AUTH_ALG_ZUC_EIA3.
uint32_t kasumi_f9
ODP_AUTH_ALG_KASUMI_F9.
uint32_t sm4_ccm
ODP_AUTH_ALG_SM4_CCM.
uint32_t snow3g_uia2
ODP_AUTH_ALG_SNOW3G_UIA2.
uint32_t snow_v_gmac
ODP_AUTH_ALG_SNOW_V_GMAC.
uint32_t aes_gmac
ODP_AUTH_ALG_AES_GMAC.
uint32_t sm4_gcm
ODP_AUTH_ALG_SM4_GCM.
uint32_t sha3_224_hmac
ODP_AUTH_ALG_SHA3_224_HMAC.
uint32_t aes_gcm
ODP_AUTH_ALG_AES_GCM.
uint32_t sm3_hmac
ODP_AUTH_ALG_SM3_HMAC.
uint32_t snow_v_gcm
ODP_AUTH_ALG_SNOW_V_GCM.
uint32_t md5_hmac
ODP_AUTH_ALG_MD5_HMAC.
struct odp_crypto_auth_algos_t::@28 bit
Authentication algorithms.
uint32_t sha1
ODP_AUTH_ALG_SHA1.
uint32_t sha3_384_hmac
ODP_AUTH_ALG_SHA3_384_HMAC.
uint32_t aes_xcbc_mac
ODP_AUTH_ALG_AES_XCBC_MAC.
uint32_t sha3_256
ODP_AUTH_ALG_SHA3_256.
uint32_t sha384_hmac
ODP_AUTH_ALG_SHA384_HMAC.
uint32_t sha256_hmac
ODP_AUTH_ALG_SHA256_HMAC.
uint32_t aes_eia2
ODP_AUTH_ALG_AES_EIA2.
uint32_t sha3_256_hmac
ODP_AUTH_ALG_SHA3_256_HMAC.
uint32_t chacha20_poly1305
ODP_AUTH_ALG_CHACHA20_POLY1305.
uint32_t sha512
ODP_AUTH_ALG_SHA512.
uint32_t aes_ccm
ODP_AUTH_ALG_AES_CCM.
uint32_t sha3_384
ODP_AUTH_ALG_SHA3_384.
Cipher algorithms in a bit field structure.
uint32_t snow_v
ODP_CIPHER_ALG_SNOW_V.
uint32_t sm4_cbc
ODP_CIPHER_ALG_SM4_CBC.
uint32_t aes_cfb128
ODP_CIPHER_ALG_AES_CFB128.
uint32_t aes_gcm
ODP_CIPHER_ALG_AES_GCM.
uint32_t trides_cbc
ODP_CIPHER_ALG_3DES_CBC.
uint32_t snow_v_gcm
ODP_CIPHER_ALG_SNOW_V_GCM.
uint32_t sm4_ecb
ODP_CIPHER_ALG_SM4_ECB.
uint32_t aes_eea2
ODP_CIPHER_ALG_AES_EEA2.
uint32_t aes_ctr
ODP_CIPHER_ALG_AES_CTR.
struct odp_crypto_cipher_algos_t::@27 bit
Cipher algorithms.
uint32_t aes_cbc
ODP_CIPHER_ALG_AES_CBC.
uint32_t sm4_ctr
ODP_CIPHER_ALG_SM4_CTR.
uint32_t des
ODP_CIPHER_ALG_DES.
uint32_t aes_xts
ODP_CIPHER_ALG_AES_XTS.
uint32_t zuc_eea3
ODP_CIPHER_ALG_ZUC_EEA3.
uint32_t null
ODP_CIPHER_ALG_NULL.
uint32_t sm4_gcm
ODP_CIPHER_ALG_SM4_GCM.
uint32_t kasumi_f8
ODP_CIPHER_ALG_KASUMI_F8.
uint32_t sm4_ccm
ODP_CIPHER_ALG_SM4_CCM.
uint32_t aes_ecb
ODP_CIPHER_ALG_AES_ECB.
uint32_t chacha20_poly1305
ODP_CIPHER_ALG_CHACHA20_POLY1305.
uint32_t trides_ecb
ODP_CIPHER_ALG_3DES_ECB.
uint32_t snow3g_uea2
ODP_CIPHER_ALG_SNOW3G_UEA2.
uint32_t aes_ccm
ODP_CIPHER_ALG_AES_CCM.
uint64_t all_bits
All bits of the bit field structure.
uint32_t all_bits
All bits of the bit field structure.
uint32_t all_bits
All bits of the bit field structure.
uint64_t all_bits
All bits of the bit field structure.
uint64_t all
All bits of the bit field structure.
uint32_t sctp
SCTP checksum.
struct odp_proto_chksums_t::@116 chksum
Individual checksum bits.
uint32_t ipv4
IPv4 header checksum.
uint32_t tcp
TCP checksum.
uint32_t udp
UDP checksum.
uint64_t all_bits
All bits of the bit field structure.
uint64_t all
All bits of the bit field structure.
uint8_t all_bits
All bits of the bit field structure.