12 #ifndef ODP_API_SPEC_PACKET_IO_TYPES_H_
13 #define ODP_API_SPEC_PACKET_IO_TYPES_H_
14 #include <odp/visibility_begin.h>
770 #define ODP_LSO_MAX_CUSTOM 8
1284 #define ODP_PKTIO_LINK_SPEED_UNKNOWN 0
1286 #define ODP_PKTIO_LINK_SPEED_10M 10
1288 #define ODP_PKTIO_LINK_SPEED_100M 100
1290 #define ODP_PKTIO_LINK_SPEED_1G 1000
1292 #define ODP_PKTIO_LINK_SPEED_2_5G 2500
1294 #define ODP_PKTIO_LINK_SPEED_5G 5000
1296 #define ODP_PKTIO_LINK_SPEED_10G 10000
1298 #define ODP_PKTIO_LINK_SPEED_20G 20000
1300 #define ODP_PKTIO_LINK_SPEED_25G 25000
1302 #define ODP_PKTIO_LINK_SPEED_40G 40000
1304 #define ODP_PKTIO_LINK_SPEED_50G 50000
1306 #define ODP_PKTIO_LINK_SPEED_56G 56000
1308 #define ODP_PKTIO_LINK_SPEED_100G 100000
1310 #define ODP_PKTIO_LINK_SPEED_200G 200000
1312 #define ODP_PKTIO_LINK_SPEED_400G 400000
1374 #include <odp/visibility_end.h>
Standard C language types and definitions for ODP.
Control deprecated API definitions.
struct odp_pktio_capability_t odp_pktio_capability_t
Packet IO capabilities.
odp_lso_protocol_t
LSO protocol options.
struct odp_lso_write_bits_t odp_lso_write_bits_t
Parameters for ODP_LSO_WRITE_BITS custom operation.
#define ODP_PKTOUT_MAX_QUEUES
Maximum number of packet output queues supported by the API.
struct odp_pktio_param_t odp_pktio_param_t
Packet IO parameters.
struct odp_pktout_queue_param_t odp_pktout_queue_param_t
Packet output queue parameters.
struct odp_lso_profile_param_t odp_lso_profile_param_t
LSO profile parameters.
struct odp_pktin_vector_capability_t odp_pktin_vector_capability_t
Packet input vector capabilities.
struct odp_pktio_link_info_t odp_pktio_link_info_t
Packet IO link information.
#define ODP_LSO_MAX_CUSTOM
Maximum number of custom LSO fields supported by ODP API.
odp_pktout_mode_t
Packet output mode.
union odp_pktout_config_opt_t odp_pktout_config_opt_t
Packet output configuration options bit field.
struct odp_pktio_info_t odp_pktio_info_t
Packet IO information.
odp_pktio_link_duplex_t
Duplex mode.
struct odp_pktin_queue_param_t odp_pktin_queue_param_t
Packet input queue parameters.
odp_pktio_link_autoneg_t
Autonegotiation mode.
odp_lso_modify_t
LSO custom modification options.
struct odp_pktio_config_t odp_pktio_config_t
Packet IO configuration options.
struct odp_lso_capability_t odp_lso_capability_t
Large Send Offload (LSO) capabilities.
#define ODP_PKTIN_MAX_QUEUES
Maximum number of packet input queues supported by the API.
union odp_pktin_config_opt_t odp_pktin_config_opt_t
Packet input configuration options bit field.
union odp_pktin_hash_proto_t odp_pktin_hash_proto_t
Packet input hash protocols.
struct odp_pktio_parser_config_t odp_pktio_parser_config_t
Parser configuration.
odp_pktio_op_mode_t
Packet IO operation mode.
union odp_pktio_set_op_t odp_pktio_set_op_t
Packet IO set operations.
odp_pktio_link_pause_t
Ethernet flow control modes.
struct odp_pktin_queue_param_ovr_t odp_pktin_queue_param_ovr_t
Packet input queue parameters override.
odp_pktin_mode_t
Packet input mode.
struct odp_pktin_vector_config_t odp_pktin_vector_config_t
Packet input vector configuration.
odp_pktio_link_status_t
Link status.
@ ODP_LSO_PROTO_IPV4
LSO performs IPv4 fragmentation.
@ ODP_LSO_PROTO_NONE
Protocol not selected.
@ ODP_LSO_PROTO_IPV6
LSO performs IPv6 fragmentation.
@ ODP_LSO_PROTO_TCP_IPV4
LSO performs TCP segmentation on top of IPv4.
@ ODP_LSO_PROTO_CUSTOM
Custom protocol.
@ ODP_LSO_PROTO_SCTP_IPV4
LSO performs SCTP segmentation on top of IPv4.
@ ODP_LSO_PROTO_TCP_IPV6
LSO performs TCP segmentation on top of IPv6.
@ ODP_LSO_PROTO_SCTP_IPV6
LSO performs SCTP segmentation on top of IPv6.
@ ODP_PKTOUT_MODE_DIRECT
Direct packet output on the interface.
@ ODP_PKTOUT_MODE_TM
Packet output through traffic manager API.
@ ODP_PKTOUT_MODE_QUEUE
Packet output through event queues.
@ ODP_PKTOUT_MODE_DISABLED
Application will never send to this interface.
@ ODP_PKTIO_LINK_DUPLEX_HALF
Half duplex mode.
@ ODP_PKTIO_LINK_DUPLEX_FULL
Full duplex mode.
@ ODP_PKTIO_LINK_DUPLEX_UNKNOWN
Link duplex mode is unknown.
@ ODP_PKTIO_LINK_AUTONEG_UNKNOWN
Autonegotiation state unknown.
@ ODP_PKTIO_LINK_AUTONEG_OFF
Autonegotiation disabled.
@ ODP_PKTIO_LINK_AUTONEG_ON
Autonegotiation enabled.
@ ODP_LSO_ADD_SEGMENT_NUM
Add current segment number.
@ ODP_LSO_WRITE_BITS
Write bits in the first, middle and last segment.
@ ODP_LSO_ADD_PAYLOAD_OFFSET
Add number of payload bytes in all previous segments.
@ ODP_LSO_ADD_PAYLOAD_LEN
Add number of payload bytes in the segment.
@ ODP_PKTIO_OP_MT_UNSAFE
Not multithread safe operation.
@ ODP_PKTIO_OP_MT
Multithread safe operation.
@ ODP_PKTIO_LINK_PFC_ON
Priority-based Flow Control (PFC) enabled.
@ ODP_PKTIO_LINK_PAUSE_UNKNOWN
Flow control mode is unknown.
@ ODP_PKTIO_LINK_PAUSE_OFF
No flow control.
@ ODP_PKTIO_LINK_PAUSE_ON
Pause frame flow control enabled.
@ ODP_PKTIN_MODE_DIRECT
Direct packet input from the interface.
@ ODP_PKTIN_MODE_QUEUE
Packet input through plain event queues.
@ ODP_PKTIN_MODE_DISABLED
Application will never receive from this interface.
@ ODP_PKTIN_MODE_SCHED
Packet input through scheduler and scheduled event queues.
@ ODP_PKTIO_LINK_STATUS_DOWN
Link status is down.
@ ODP_PKTIO_LINK_STATUS_UP
Link status is up.
@ ODP_PKTIO_LINK_STATUS_UNKNOWN
Link status is unknown.
odp_proto_layer_t
Protocol layer.
int odp_schedule_group_t
Scheduler thread group.
bool odp_bool_t
Boolean type.
odp_support_t
ODP support.
ODP REASSEMBLY API - platform specific header.
#define ODP_DEPRECATE(x)
Macro to deprecate API definitions.
Large Send Offload (LSO) capabilities.
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.
uint8_t num_custom
Number of custom fields specified.
odp_lso_protocol_t lso_proto
Segmentation protocol.
uint32_t offset
Field offset in bytes from packet start.
struct odp_lso_profile_param_t::@111::@112 field[ODP_LSO_MAX_CUSTOM]
Custom field to be modified by LSO.
odp_lso_write_bits_t middle_seg
bits to write in middle segments
odp_lso_write_bits_t first_seg
bits to write in the first segment
struct odp_lso_profile_param_t::@111 custom
Custom fields.
struct odp_lso_profile_param_t::@111::@112::@113::@115 write_bits
Parameters for ODP_LSO_WRITE_BITS operation.
odp_lso_write_bits_t last_seg
bits to write in the last segment
odp_lso_modify_t mod_op
Field modify operation.
uint8_t size
Field size in bytes.
Parameters for ODP_LSO_WRITE_BITS custom operation.
uint8_t value[1]
Value to be written using the mask: new_value[n] = (old_value[n] & ~mask[n]) | (value[n] & mask[n])
uint8_t mask[1]
Bitmask to select which bits to write.
Packet input queue parameters override.
odp_schedule_group_t group
Override for schedule group in odp_schedule_param_t.
Packet input queue parameters.
uint32_t num_queues
Number of input queues to be created.
odp_pktio_op_mode_t op_mode
Operation mode.
odp_queue_param_t queue_param
Queue parameters.
odp_pktin_queue_param_ovr_t * queue_param_ovr
Queue parameters override.
odp_pktin_hash_proto_t hash_proto
Protocol field selection for hashing.
uint32_t queue_size[ODP_PKTIN_MAX_QUEUES]
Input queue size array.
odp_bool_t hash_enable
Enable flow hashing.
odp_bool_t classifier_enable
Enable classifier.
odp_pktin_vector_config_t vector
Packet input vector configuration.
Packet input vector capabilities.
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.
Packet input vector configuration.
odp_bool_t enable
Enable packet input vector.
uint32_t max_size
Maximum number of packets in a vector.
uint64_t max_tmo_ns
Maximum time to wait for packets.
odp_pool_t pool
Vector pool.
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 mode_all
For backwards compatibility, mode_all is synonym of mode_event.
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.
Packet IO configuration options.
uint32_t max_compl_id
Maximum completion index.
uint32_t mode_event
Enable packet transmit completion events.
odp_pktio_link_pause_t pause_tx
Transmission of flow control frames.
odp_reass_config_t reassembly
Packet input reassembly configuration.
odp_pktout_config_opt_t pktout
Packet output configuration options bit field.
struct odp_pktio_config_t::@102 flow_control
Link flow control configuration.
odp_bool_t enable_loop
Interface loopback mode.
uint32_t mode_poll
Enable packet transmit completion check through polling.
odp_pktio_link_pause_t pause_rx
Reception of flow control frames.
odp_bool_t enable_lso
Enable Large Send Offload (LSO)
odp_pktio_parser_config_t parser
Packet input parser configuration.
odp_bool_t outbound_ipsec
Outbound IPSEC inlined with packet output.
struct odp_pktio_config_t::@103 tx_compl
Packet transmit completion configuration.
odp_pktin_config_opt_t pktin
Packet input configuration options bit field.
odp_bool_t inbound_ipsec
Inbound IPSEC inlined with packet input.
const char * drv_name
Packet IO driver name (implementation specific)
odp_pktio_param_t param
Packet IO parameters.
odp_pool_t pool
Packet pool.
const char * name
Packet IO device name.
Packet IO link information.
odp_pktio_link_pause_t pause_rx
Reception of pause frames.
odp_pktio_link_duplex_t duplex
Duplex mode.
uint32_t speed
Link speed in Mbps.
odp_pktio_link_autoneg_t autoneg
Link autonegotiation.
odp_pktio_link_pause_t pause_tx
Transmission of pause frames.
const char * media
Link media type.
odp_pktio_link_status_t status
Link status.
odp_pktin_mode_t in_mode
Packet input mode.
odp_pktout_mode_t out_mode
Packet output mode.
odp_proto_layer_t layer
Protocol parsing level in packet input.
Packet IO statistics capabilities.
Packet output queue parameters.
odp_pktio_op_mode_t op_mode
Operation mode.
uint32_t queue_size[ODP_PKTOUT_MAX_QUEUES]
Output queue size array.
uint32_t num_queues
Number of output queues to be created.
Fragment reassembly configuration.
Packet input configuration options bit field.
uint64_t ts_all
Timestamp all packets on packet input.
uint64_t ts_ptp
Timestamp (at least) IEEE1588 / PTP packets on packet input.
uint64_t ipv4_chksum
Check IPv4 header checksum on packet input.
uint64_t all_bits
All bits of the bit field structure.
uint64_t drop_sctp_err
Drop packets with a SCTP error on packet input.
uint64_t drop_udp_err
Drop packets with a UDP error on packet input.
uint64_t udp_chksum
Check UDP checksum on packet input.
uint64_t drop_ipv4_err
Drop packets with an IPv4 error on packet input.
uint64_t tcp_chksum
Check TCP checksum on packet input.
struct odp_pktin_config_opt_t::@100 bit
Option flags.
uint64_t sctp_chksum
Check SCTP checksum on packet input.
uint64_t drop_ipv6_err
Drop packets with an IPv6 error on packet input.
uint64_t drop_tcp_err
Drop packets with a TCP error on packet input.
Packet input hash protocols.
uint32_t all_bits
All bits of the bit field structure.
uint32_t ipv4_tcp
IPv4 addresses and TCP port numbers.
uint32_t ipv6_tcp
IPv6 addresses and TCP port numbers.
uint32_t ipv4_udp
IPv4 addresses and UDP port numbers.
struct odp_pktin_hash_proto_t::@99 proto
Protocol header fields for hashing.
uint32_t ipv6
IPv6 addresses.
uint32_t ipv6_udp
IPv6 addresses and UDP port numbers.
uint32_t ipv4
IPv4 addresses.
Packet IO set operations.
struct odp_pktio_set_op_t::@104 op
Operation flags.
uint32_t maxlen
Maximum frame length.
uint32_t all_bits
All bits of the bit field structure.
uint32_t skip_offset
Per port header offset(skip)set.
uint32_t promisc_mode
Promiscuous mode.
uint32_t mac_addr
MAC address
Packet output configuration options bit field.
struct odp_pktout_config_opt_t::@101 bit
Option flags for packet output.
uint64_t aging_ena
Enable packet aging and drop.
uint64_t sctp_chksum_ena
Enable SCTP checksum insertion.
uint64_t tcp_chksum
Insert TCP checksum on packet by default.
uint64_t proto_stats_ena
Enable packet protocol stats update.
uint64_t no_packet_refs
Packet references not used on packet output.
uint64_t sctp_chksum
Insert SCTP checksum on packet by default.
uint64_t tx_compl_ena
For backwards compatibility, setting this flag is the same as setting tx_compl.mode_event in odp_pkti...
uint64_t all_bits
All bits of the bit field structure.
uint64_t ts_ena
Enable Tx timestamp capture.
uint64_t ipv4_chksum
Insert IPv4 header checksum by default.
uint64_t ipv4_chksum_ena
Enable IPv4 header checksum insertion.
uint64_t tcp_chksum_ena
Enable TCP checksum insertion.
uint64_t udp_chksum
Insert UDP checksum on packet by default.
uint64_t udp_chksum_ena
Enable UDP checksum insertion.