API Reference Manual  1.45.0
api/spec/packet_io.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2013-2018 Linaro Limited
3  * Copyright (c) 2020-2023 Nokia
4  */
5 
12 #ifndef ODP_API_SPEC_PACKET_IO_H_
13 #define ODP_API_SPEC_PACKET_IO_H_
14 #include <odp/visibility_begin.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #include <odp/api/classification.h>
21 #include <odp/api/packet_types.h>
24 #include <odp/api/queue_types.h>
25 #include <odp/api/reassembly.h>
26 #include <odp/api/time_types.h>
27 
108 odp_pktio_t odp_pktio_open(const char *name, odp_pool_t pool,
109  const odp_pktio_param_t *param);
110 
123 
133 unsigned int odp_pktio_max_index(void);
134 
153 
178  const odp_pktin_queue_param_t *param);
179 
204  const odp_pktout_queue_param_t *param);
205 
228 int odp_pktin_event_queue(odp_pktio_t pktio, odp_queue_t queues[], int num);
229 
248 int odp_pktin_queue(odp_pktio_t pktio, odp_pktin_queue_t queues[], int num);
249 
270 int odp_pktout_event_queue(odp_pktio_t pktio, odp_queue_t queues[], int num);
271 
290 int odp_pktout_queue(odp_pktio_t pktio, odp_pktout_queue_t queues[], int num);
291 
306 
325 
342 
351 odp_pktio_t odp_pktio_lookup(const char *name);
352 
372 int odp_pktin_recv(odp_pktin_queue_t queue, odp_packet_t packets[], int num);
373 
395  int num, uint64_t wait);
396 
432 int odp_pktin_recv_mq_tmo(const odp_pktin_queue_t queues[], uint32_t num_q, uint32_t *from,
433  odp_packet_t packets[], int num, uint64_t wait);
434 
444 uint64_t odp_pktin_wait_time(uint64_t nsec);
445 
475  int num);
476 
485 
502 
515 
551 int odp_pktout_send_lso(odp_pktout_queue_t queue, const odp_packet_t packet[], int num,
552  const odp_packet_lso_opt_t *lso_opt);
553 
568 
579 
594 
609 
633 int odp_pktio_maxlen_set(odp_pktio_t pktio, uint32_t maxlen_input,
634  uint32_t maxlen_output);
635 
646 int odp_pktio_mac_addr(odp_pktio_t pktio, void *mac_addr, int size);
647 
661 int odp_pktio_mac_addr_set(odp_pktio_t pktio, const void *mac_addr,
662  int size);
663 
678 
692 
709 int odp_pktio_skip_set(odp_pktio_t pktio, uint32_t offset);
710 
724 int odp_pktio_headroom_set(odp_pktio_t pktio, uint32_t headroom);
725 
735 
748 
757 
766 
775 
784 
793 
803 
821 
836 
849 
864 
882 
897 
902 #ifdef __cplusplus
903 }
904 #endif
905 
906 #include <odp/visibility_end.h>
907 #endif
ODP classification descriptor.
ODP Packet IO.
ODP packet.
ODP queue.
ODP time.
int odp_pktio_mac_addr(odp_pktio_t pktio, void *mac_addr, int size)
Get the default MAC address of a packet IO interface.
void odp_pktin_queue_param_init(odp_pktin_queue_param_t *param)
Initialize packet input queue parameters.
unsigned int odp_pktio_max_index(void)
Maximum packet IO interface index.
int odp_pktio_headroom_set(odp_pktio_t pktio, uint32_t headroom)
Specify per-port buffer headroom.
odp_lso_profile_t odp_lso_profile_create(odp_pktio_t pktio, const odp_lso_profile_param_t *param)
Create LSO profile.
uint64_t odp_pktio_ts_res(odp_pktio_t pktio)
Packet IO timestamp resolution in hertz.
void odp_pktio_param_init(odp_pktio_param_t *param)
Initialize pktio params.
int odp_pktio_promisc_mode(odp_pktio_t pktio)
Determine if promiscuous mode is enabled for a packet IO interface.
int odp_pktio_close(odp_pktio_t pktio)
Close a packet IO interface.
uint32_t odp_pktin_maxlen(odp_pktio_t pktio)
Maximum frame length at packet input.
int odp_pktio_link_info(odp_pktio_t pktio, odp_pktio_link_info_t *info)
Retrieve information about packet IO link status.
odp_pktio_t odp_pktio_lookup(const char *name)
Return a packet IO handle for an already open device.
uint32_t odp_pktout_maxlen(odp_pktio_t pktio)
Maximum frame length at packet output.
int odp_pktio_error_cos_set(odp_pktio_t pktio, odp_cos_t error_cos)
Setup per-port error class-of-service.
void odp_lso_profile_param_init(odp_lso_profile_param_t *param)
Initialize LSO profile parameters.
int odp_pktio_info(odp_pktio_t pktio, odp_pktio_info_t *info)
Retrieve information about a pktio.
odp_time_t odp_pktio_ts_from_ns(odp_pktio_t pktio, uint64_t ns)
Convert nanoseconds to packet IO time.
int odp_pktout_queue(odp_pktio_t pktio, odp_pktout_queue_t queues[], int num)
Direct packet output queues.
int odp_pktout_ts_read(odp_pktio_t pktio, odp_time_t *ts)
Read last captured Tx timestamp of a packet if available and clear it for next timestamp.
int odp_pktio_maxlen_set(odp_pktio_t pktio, uint32_t maxlen_input, uint32_t maxlen_output)
Set maximum frame lengths.
int odp_pktio_promisc_mode_set(odp_pktio_t pktio, odp_bool_t enable)
Set promiscuous mode.
int odp_lso_profile_destroy(odp_lso_profile_t lso_profile)
Destroy LSO profile.
void odp_pktio_config_init(odp_pktio_config_t *config)
Initialize packet IO configuration options.
int odp_pktin_event_queue(odp_pktio_t pktio, odp_queue_t queues[], int num)
Event queues for packet input.
odp_pktio_t odp_pktio_open(const char *name, odp_pool_t pool, const odp_pktio_param_t *param)
Open a packet IO interface.
int odp_pktout_send_lso(odp_pktout_queue_t queue, const odp_packet_t packet[], int num, const odp_packet_lso_opt_t *lso_opt)
Send packets with segmentation offload.
int odp_pktio_config(odp_pktio_t pktio, const odp_pktio_config_t *config)
Configure packet IO interface options.
void odp_pktio_print(odp_pktio_t pktio)
Print pktio info to the console.
int odp_pktio_mac_addr_set(odp_pktio_t pktio, const void *mac_addr, int size)
Set the default MAC address of a packet IO interface.
int odp_pktio_start(odp_pktio_t pktio)
Start packet receive and transmit.
int odp_pktin_queue(odp_pktio_t pktio, odp_pktin_queue_t queues[], int num)
Direct packet input queues.
odp_time_t odp_pktio_time(odp_pktio_t pktio, odp_time_t *ts_global)
Current packet IO time and global time.
void odp_pktout_queue_param_init(odp_pktout_queue_param_t *param)
Initialize packet output queue parameters.
uint64_t odp_pktin_wait_time(uint64_t nsec)
Packet input wait time.
int odp_pktout_event_queue(odp_pktio_t pktio, odp_queue_t queues[], int num)
Event queues for packet output.
int odp_pktio_stop(odp_pktio_t pktio)
Stop packet receive and transmit.
int odp_pktin_recv(odp_pktin_queue_t queue, odp_packet_t packets[], int num)
Receive packets directly from an interface input queue.
int odp_pktio_index(odp_pktio_t pktio)
Get pktio interface index.
int odp_pktio_capability(odp_pktio_t pktio, odp_pktio_capability_t *capa)
Query packet IO interface capabilities.
int odp_pktout_send(odp_pktout_queue_t queue, const odp_packet_t packets[], int num)
Send packets directly to an interface output queue.
odp_pktio_link_status_t odp_pktio_link_status(odp_pktio_t pktio)
Determine pktio link is up or down for a packet IO interface.
int odp_pktin_recv_tmo(odp_pktin_queue_t queue, odp_packet_t packets[], int num, uint64_t wait)
Receive packets directly from an interface input queue with timeout.
uint64_t odp_pktio_to_u64(odp_pktio_t pktio)
Get printable value for an odp_pktio_t.
int odp_pktio_default_cos_set(odp_pktio_t pktio, odp_cos_t default_cos)
Setup per-port default class-of-service.
int odp_pktin_recv_mq_tmo(const odp_pktin_queue_t queues[], uint32_t num_q, uint32_t *from, odp_packet_t packets[], int num, uint64_t wait)
Receive packets directly from multiple interface input queues with timeout.
odp_pktio_link_status_t
Link status.
int odp_pktin_queue_config(odp_pktio_t pktio, const odp_pktin_queue_param_t *param)
Configure packet input queues.
int odp_pktout_queue_config(odp_pktio_t pktio, const odp_pktout_queue_param_t *param)
Configure packet output queues.
int odp_pktio_skip_set(odp_pktio_t pktio, uint32_t offset)
Setup per-port header offset.
int odp_bool_t
Use odp boolean type to have it well-defined and known size, regardless which compiler is used as thi...
ODP packet IO stats.
ODP REASSEMBLY API - platform specific header.
Packet input queue parameters.
Packet IO capabilities.
Packet IO configuration options.
Packet IO information.
Packet IO parameters.
Packet output queue parameters.