API Reference Manual  1.45.0
odp_reass_config_t Struct Reference

Fragment reassembly configuration. More...

#include <reassembly.h>

Data Fields

odp_bool_t en_ipv4
 Attempt inline reassembly of IPv4 packets. More...
 
odp_bool_t en_ipv6
 Attempt inline reassembly of IPv6 packets. More...
 
uint64_t max_wait_time
 Maximum time in ns that a fragment may wait in the reassembly offload for the arrival of further fragments. More...
 
uint16_t max_num_frags
 Maximum number of fragments that can be reassembled. More...
 

Detailed Description

Fragment reassembly configuration.

Configure inline fragment reassembly offload support. Fragment reassembly offload can be enabled in IPSEC and PKTIN operations.

When the offload is enabled, fragments will be delayed for a specified time period to allow reassembly.

Reassembly result will be delivered to the application through an ODP packet with reassembly metadata. odp_packet_reass_status() can be used to query if reassembly has been attempted and if reassembly was successfully completed.

In case of successful reassembly, the reassembled packet is delivered to the receiver as a regular ODP packet as if the reassembled packet was received as such. When reassembly is enabled in pktio, it will be attempted before other offloads such as packet parsing, inline IPsec and classification.

In case of failed reassembly, the result is delivered to the application as a special packet that does not contain valid packet data. Such a packet can be used to get information of the incomplete reassembly so that the application can try to retry or continue the reassembly. See odp_packet_reass_partial_state().

Reassembly may not complete if not all fragments were received in time but also for packet parsing difficulty, fragment overlap, resource shortage or other reasons. In such cases, application may receive packets with reassembly status as either ODP_PACKET_REASS_NONE or ODP_PACKET_REASS_INCOMPLETE.

This structure is used only for configuration, not for capability query even though it is indirectly contained in odp_pktio_capability_t. The content of odp_pktio_capability_t.config.reassembly written by odp_pktio_capability() is undefined. Reassembly capabilities of a pktio can be checked through odp_pktio_capability_t.reassembly.

See also
odp_packet_reass_status(), odp_packet_reass_partial_state()

Definition at line 90 of file spec/reassembly.h.

Field Documentation

◆ en_ipv4

odp_bool_t odp_reass_config_t::en_ipv4

Attempt inline reassembly of IPv4 packets.

Disabled by default. This may be set if the relevant odp_reass_capability_t::ipv4 capability is present or if odp_reass_capability_t::ip capability is present and en_ipv6 is also set.

Definition at line 96 of file spec/reassembly.h.

◆ en_ipv6

odp_bool_t odp_reass_config_t::en_ipv6

Attempt inline reassembly of IPv6 packets.

Disabled by default. This may be set if the relevant odp_reass_capability_t::ipv6 capability is present or if odp_reass_capability_t::ip capability is present and en_ipv4 is also set.

Definition at line 103 of file spec/reassembly.h.

◆ max_wait_time

uint64_t odp_reass_config_t::max_wait_time

Maximum time in ns that a fragment may wait in the reassembly offload for the arrival of further fragments.

The value may not exceed the max_wait_time capability. Zero value means implementation defined maximum wait time.

Default value is 0.

Definition at line 112 of file spec/reassembly.h.

◆ max_num_frags

uint16_t odp_reass_config_t::max_num_frags

Maximum number of fragments that can be reassembled.

Minimum allowed value is 2. Default value is 2.

Definition at line 118 of file spec/reassembly.h.


The documentation for this struct was generated from the following file: