Scroll to navigation

rte_port.h(3) DPDK rte_port.h(3)

NAME

rte_port.h

SYNOPSIS

#include <stdint.h>
#include <rte_mbuf.h>

Data Structures


struct rte_port_in_stats
struct rte_port_in_ops
struct rte_port_out_stats
struct rte_port_out_ops

Macros


#define RTE_PORT_IN_BURST_SIZE_MAX 64



#define RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset) (&((uint8_t *)(mbuf))[offset])
#define RTE_MBUF_METADATA_UINT16_PTR(mbuf, offset) ((uint16_t *) RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))
#define RTE_MBUF_METADATA_UINT32_PTR(mbuf, offset) ((uint32_t *) RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))
#define RTE_MBUF_METADATA_UINT64_PTR(mbuf, offset) ((uint64_t *) RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))
#define RTE_MBUF_METADATA_UINT8(mbuf, offset) (*RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))
#define RTE_MBUF_METADATA_UINT16(mbuf, offset) (*RTE_MBUF_METADATA_UINT16_PTR(mbuf, offset))
#define RTE_MBUF_METADATA_UINT32(mbuf, offset) (*RTE_MBUF_METADATA_UINT32_PTR(mbuf, offset))
#define RTE_MBUF_METADATA_UINT64(mbuf, offset) (*RTE_MBUF_METADATA_UINT64_PTR(mbuf, offset))


Typedefs


typedef void *(* rte_port_in_op_create) (void *params, int socket_id)
typedef int(* rte_port_in_op_free) (void *port)
typedef int(* rte_port_in_op_rx) (void *port, struct rte_mbuf **pkts, uint32_t n_pkts)
typedef int(* rte_port_in_op_stats_read) (void *port, struct rte_port_in_stats *stats, int clear)
typedef void *(* rte_port_out_op_create) (void *params, int socket_id)
typedef int(* rte_port_out_op_free) (void *port)
typedef int(* rte_port_out_op_tx) (void *port, struct rte_mbuf *pkt)
typedef int(* rte_port_out_op_tx_bulk) (void *port, struct rte_mbuf **pkts, uint64_t pkts_mask)
typedef int(* rte_port_out_op_flush) (void *port)
typedef int(* rte_port_out_op_stats_read) (void *port, struct rte_port_out_stats *stats, int clear)

Detailed Description

RTE Port

This tool is part of the DPDK Packet Framework tool suite and provides a standard interface to implement different types of packet ports.

Definition in file rte_port.h.

Macro Definition Documentation

#define RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset) (&((uint8_t *)(mbuf))[offset])

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 27 of file rte_port.h.

#define RTE_MBUF_METADATA_UINT16_PTR(mbuf, offset) ((uint16_t *) RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 29 of file rte_port.h.

#define RTE_MBUF_METADATA_UINT32_PTR(mbuf, offset) ((uint32_t *) RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 31 of file rte_port.h.

#define RTE_MBUF_METADATA_UINT64_PTR(mbuf, offset) ((uint64_t *) RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 33 of file rte_port.h.

#define RTE_MBUF_METADATA_UINT8(mbuf, offset) (*RTE_MBUF_METADATA_UINT8_PTR(mbuf, offset))

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 36 of file rte_port.h.

#define RTE_MBUF_METADATA_UINT16(mbuf, offset) (*RTE_MBUF_METADATA_UINT16_PTR(mbuf, offset))

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 38 of file rte_port.h.

#define RTE_MBUF_METADATA_UINT32(mbuf, offset) (*RTE_MBUF_METADATA_UINT32_PTR(mbuf, offset))

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 40 of file rte_port.h.

#define RTE_MBUF_METADATA_UINT64(mbuf, offset) (*RTE_MBUF_METADATA_UINT64_PTR(mbuf, offset))

Macros to allow accessing metadata stored in the mbuf headroom just beyond the end of the mbuf data structure returned by a port

Definition at line 42 of file rte_port.h.

#define RTE_PORT_IN_BURST_SIZE_MAX 64

Maximum number of packets read from any input port in a single burst. Cannot be changed.

Definition at line 51 of file rte_port.h.

Typedef Documentation

typedef void*(* rte_port_in_op_create) (void *params, int socket_id)

Input port create

Parameters:

params Parameters for input port creation
socket_id CPU socket ID (e.g. for memory allocation purpose)

Returns:

Handle to input port instance

Definition at line 69 of file rte_port.h.

typedef int(* rte_port_in_op_free) (void *port)

Input port free

Parameters:

port Handle to input port instance

Returns:

0 on success, error code otherwise

Definition at line 79 of file rte_port.h.

typedef int(* rte_port_in_op_rx) (void *port, struct rte_mbuf **pkts, uint32_t n_pkts)

Input port packet burst RX

Parameters:

port Handle to input port instance
pkts Burst of input packets
n_pkts Number of packets in the input burst

Returns:

0 on success, error code otherwise

Definition at line 93 of file rte_port.h.

typedef int(* rte_port_in_op_stats_read) (void *port, struct rte_port_in_stats *stats, int clear)

Input port stats get

Parameters:

port Handle to output port instance
stats Handle to port_in stats struct to copy data
clear Flag indicating that stats should be cleared after read

Returns:

Error code or 0 on success.

Definition at line 111 of file rte_port.h.

typedef void*(* rte_port_out_op_create) (void *params, int socket_id)

Output port create

Parameters:

params Parameters for output port creation
socket_id CPU socket ID (e.g. for memory allocation purpose)

Returns:

Handle to output port instance

Definition at line 143 of file rte_port.h.

typedef int(* rte_port_out_op_free) (void *port)

Output port free

Parameters:

port Handle to output port instance

Returns:

0 on success, error code otherwise

Definition at line 153 of file rte_port.h.

typedef int(* rte_port_out_op_tx) (void *port, struct rte_mbuf *pkt)

Output port single packet TX

Parameters:

port Handle to output port instance
pkt Input packet

Returns:

0 on success, error code otherwise

Definition at line 165 of file rte_port.h.

typedef int(* rte_port_out_op_tx_bulk) (void *port, struct rte_mbuf **pkts, uint64_t pkts_mask)

Output port packet burst TX

Parameters:

port Handle to output port instance
pkts Burst of input packets specified as array of up to 64 pointers to struct rte_mbuf
pkts_mask 64-bit bitmask specifying which packets in the input burst are valid. When pkts_mask bit n is set, then element n of pkts array is pointing to a valid packet. Otherwise, element n of pkts array will not be accessed.

Returns:

0 on success, error code otherwise

Definition at line 184 of file rte_port.h.

typedef int(* rte_port_out_op_flush) (void *port)

Output port flush

Parameters:

port Handle to output port instance

Returns:

0 on success, error code otherwise

Definition at line 197 of file rte_port.h.

typedef int(* rte_port_out_op_stats_read) (void *port, struct rte_port_out_stats *stats, int clear)

Output port stats read

Parameters:

port Handle to output port instance
stats Handle to port_out stats struct to copy data
clear Flag indicating that stats should be cleared after read

Returns:

Error code or 0 on success.

Definition at line 212 of file rte_port.h.

Author

Generated automatically by Doxygen for DPDK from the source code.

Thu May 23 2024 Version 23.11.0