API Reference Manual 1.51.0
Loading...
Searching...
No Matches
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-2026 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
20#include <odp/api/queue_types.h>
21#include <odp/api/reassembly.h>
22#include <odp/api/time_types.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
108odp_pktio_t odp_pktio_open(const char *name, odp_pool_t pool,
109 const odp_pktio_param_t *param);
110
123
133unsigned 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
232int odp_pktin_event_queue(odp_pktio_t pktio, odp_queue_t queues[], int num);
233
252int odp_pktin_queue(odp_pktio_t pktio, odp_pktin_queue_t queues[], int num);
253
278int odp_pktout_event_queue(odp_pktio_t pktio, odp_queue_t queues[], int num);
279
298int odp_pktout_queue(odp_pktio_t pktio, odp_pktout_queue_t queues[], int num);
299
314
333
350
360
380int odp_pktin_recv(odp_pktin_queue_t queue, odp_packet_t packets[], int num);
381
403 int num, uint64_t wait);
404
440int odp_pktin_recv_mq_tmo(const odp_pktin_queue_t queues[], uint32_t num_q, uint32_t *from,
441 odp_packet_t packets[], int num, uint64_t wait);
442
452uint64_t odp_pktin_wait_time(uint64_t nsec);
453
487 int num);
488
497
514
527
567int odp_pktout_send_lso(odp_pktout_queue_t queue, const odp_packet_t packet[], int num,
568 const odp_packet_lso_opt_t *lso_opt);
569
584
595
610
625
649int odp_pktio_maxlen_set(odp_pktio_t pktio, uint32_t maxlen_input,
650 uint32_t maxlen_output);
651
662int odp_pktio_mac_addr(odp_pktio_t pktio, void *mac_addr, int size);
663
677int odp_pktio_mac_addr_set(odp_pktio_t pktio, const void *mac_addr,
678 int size);
679
696
715
732int odp_pktio_skip_set(odp_pktio_t pktio, uint32_t offset);
733
747int odp_pktio_headroom_set(odp_pktio_t pktio, uint32_t headroom);
748
758
771
780
789
798
807
816
826
844
859
872
887
905
920
925#ifdef __cplusplus
926}
927#endif
928
929#include <odp/visibility_end.h>
930#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)
Set interface 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)
Set interface 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)
Set interface 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)
Set interface header offset.
bool odp_bool_t
Boolean type.
ODP packet IO stats.
ODP REASSEMBLY API - platform specific header.
Packet input queue parameters.
Packet IO configuration options.
Packet IO information.
Packet IO parameters.
Packet output queue parameters.