From: Anoob Joseph <anoobj@marvell.com>
The function 'create_segmented_mbuf' is updated to support zero packet
length mbufs. This allows testing of zero packet length payload with TLS
record processing.
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
---
app/test/test_cryptodev.h | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
@@ -192,15 +192,8 @@ create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
int nb_segs, uint8_t pattern) {
struct rte_mbuf *m = NULL, *mbuf = NULL;
+ int size, t_len, data_len = 0;
uint8_t *dst;
- int data_len = 0;
- int i, size;
- int t_len;
-
- if (pkt_len < 1) {
- printf("Packet size must be 1 or more (is %d)\n", pkt_len);
- return NULL;
- }
if (nb_segs < 1) {
printf("Number of segments must be 1 or more (is %d)\n",
@@ -212,17 +205,17 @@ create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
size = pkt_len;
/* Create chained mbuf_src and fill it generated data */
- for (i = 0; size > 0; i++) {
+ do {
m = rte_pktmbuf_alloc(mbuf_pool);
- if (i == 0)
- mbuf = m;
-
if (m == NULL) {
printf("Cannot create segment for source mbuf");
goto fail;
}
+ if (mbuf == NULL)
+ mbuf = m;
+
/* Make sure if tailroom is zeroed */
memset(m->buf_addr, pattern, m->buf_len);
@@ -239,7 +232,8 @@ create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
size -= data_len;
- }
+ } while (size > 0);
+
return mbuf;
fail: