#define CHKSUM_SZ_CRC 8
#define CHKSUM_SZ_ADLER 4
-int isal_logtype_driver;
+#define STRINGIFY(s) #s
+#define ISAL_TOSTRING(maj, min, patch) \
+ STRINGIFY(maj)"."STRINGIFY(min)"."STRINGIFY(patch)
+#define ISAL_VERSION_STRING \
+ ISAL_TOSTRING(ISAL_MAJOR_VERSION, ISAL_MINOR_VERSION, ISAL_PATCH_VERSION)
/* Verify and set private xform parameters */
int
ret = isal_inflate(qp->state);
- if (ret != ISAL_DECOMP_OK) {
- ISAL_PMD_LOG(ERR, "Decompression operation failed\n");
- op->status = RTE_COMP_OP_STATUS_ERROR;
- return ret;
- }
-
/* Check for first segment, offset needs to be accounted for */
if (remaining_data == op->src.length) {
consumed_data = src->data_len - src_remaining_offset;
}
}
+ if (ret == ISAL_OUT_OVERFLOW) {
+ ISAL_PMD_LOG(ERR, "Decompression operation ran "
+ "out of space, but can be recovered.\n%d bytes "
+ "consumed\t%d bytes produced\n",
+ consumed_data, qp->state->total_out);
+ op->status =
+ RTE_COMP_OP_STATUS_OUT_OF_SPACE_RECOVERABLE;
+ return ret;
+ } else if (ret < 0) {
+ ISAL_PMD_LOG(ERR, "Decompression operation failed\n");
+ op->status = RTE_COMP_OP_STATUS_ERROR;
+ return ret;
+ }
+
if (qp->state->avail_out == 0 &&
qp->state->block_state != ISAL_BLOCK_FINISH) {
if (dst->next != NULL) {
uint8_t *temp_level_buf = qp->stream->level_buf;
/* Initialize compression stream */
- isal_deflate_stateless_init(qp->stream);
+ isal_deflate_init(qp->stream);
qp->stream->level_buf = temp_level_buf;
op->output_chksum = qp->stream->internal_state.crc;
}
- isal_deflate_reset(qp->stream);
-
return ret;
}
op->produced = qp->state->total_out;
op->output_chksum = qp->state->crc;
- isal_inflate_reset(qp->state);
-
return ret;
}
dev->dequeue_burst = isal_comp_pmd_dequeue_burst;
dev->enqueue_burst = isal_comp_pmd_enqueue_burst;
+ ISAL_PMD_LOG(INFO, "\nISA-L library version used: "ISAL_VERSION_STRING);
+
return 0;
}
RTE_PMD_REGISTER_VDEV(COMPDEV_NAME_ISAL_PMD, compdev_isal_pmd_drv);
RTE_PMD_REGISTER_PARAM_STRING(COMPDEV_NAME_ISAL_PMD,
"socket_id=<int>");
-
-RTE_INIT(isal_init_log)
-{
- isal_logtype_driver = rte_log_register("pmd.compress.isal");
- if (isal_logtype_driver >= 0)
- rte_log_set_level(isal_logtype_driver, RTE_LOG_INFO);
-}
+RTE_LOG_REGISTER(isal_logtype_driver, pmd.compress.isal, INFO);