API Reference Manual
1.46.0
|
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... | |
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.
Definition at line 90 of file spec/reassembly.h.
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.
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.
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.
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.