While working on the IPsec user documentation, I've run across an
ambiguity that may indicate a gap in the currently-defined API.

For outbound lookaside processing, one of the fields in the
odp_ipsec_out_param_t struct is the odp_ipsec_out_opt_t that contains
the odp_ipsec_frag_mode_t. This is defined in the spec as:

/**
 * Fragmentation mode
 *
 * These options control outbound IP packet fragmentation offload. When offload
 * is enabled, IPSEC operation will determine if fragmentation is needed and
 * does it according to the mode.
 */
typedef enum odp_ipsec_frag_mode_t {
/** Do not fragment IP packets */
ODP_IPSEC_FRAG_DISABLED = 0,

/** Fragment IP packet before IPSEC operation */
ODP_IPSEC_FRAG_BEFORE,

/** Fragment IP packet after IPSEC operation */
ODP_IPSEC_FRAG_AFTER,

/** Only check if IP fragmentation is needed,
 * do not fragment packets. */
ODP_IPSEC_FRAG_CHECK
} odp_ipsec_frag_mode_t;

All this seems straightforward except for the last options. If the
mode is specified as ODP_IPSEC_FRAG_CHECK, it's not clear how the
check results are returned to the application. I'd expect this to be a
warning flag in the odp_ipsec_packet_result_t, but no such flag is
defined.

Is this an oversight? Or have I missed how this information is returned?

Reply via email to