aboutsummaryrefslogtreecommitdiff
path: root/example/ipsec_crypto/odp_ipsec_stream.c
diff options
context:
space:
mode:
Diffstat (limited to 'example/ipsec_crypto/odp_ipsec_stream.c')
-rw-r--r--example/ipsec_crypto/odp_ipsec_stream.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/example/ipsec_crypto/odp_ipsec_stream.c b/example/ipsec_crypto/odp_ipsec_stream.c
index e53dbce0d..0ca5138bc 100644
--- a/example/ipsec_crypto/odp_ipsec_stream.c
+++ b/example/ipsec_crypto/odp_ipsec_stream.c
@@ -272,6 +272,10 @@ odp_packet_t create_ipv4_packet(stream_db_entry_t *stream,
inner_ip = (odph_ipv4hdr_t *)data;
memset((char *)inner_ip, 0, sizeof(*inner_ip));
inner_ip->ver_ihl = 0x45;
+ inner_ip->tot_len = odp_cpu_to_be_16(sizeof(odph_ipv4hdr_t) +
+ sizeof(odph_icmphdr_t) +
+ sizeof(stream_pkt_hdr_t) +
+ stream->length);
inner_ip->proto = ODPH_IPPROTO_ICMPV4;
inner_ip->id = odp_cpu_to_be_16(stream->id);
inner_ip->ttl = 64;
@@ -322,8 +326,8 @@ odp_packet_t create_ipv4_packet(stream_db_entry_t *stream,
encrypt_len = ESP_ENCODE_LEN(payload_len + sizeof(*esp_t),
entry->esp.block_len);
- memset(data, 0, encrypt_len - payload_len);
- data += encrypt_len - payload_len;
+ for (int n = 0; n < encrypt_len - payload_len; n++)
+ *data++ = n + 1;
esp_t = (odph_esptrl_t *)(data) - 1;
esp_t->pad_len = encrypt_len - payload_len - sizeof(*esp_t);