Thread (70 messages) 70 messages, 8 authors, 2019-03-28

Re: [PATCH 08/11] examples/ipsec-secgw: iv should be be64

From: Sergio Gonzalez Monroy <hidden>
Date: 2017-10-16 09:42:28

On 14/10/2017 14:28, aviadye@dev.mellanox.co.il wrote:
From: Aviad Yehezkel <redacted>

To be compatibile with Linux kernel
I am not sure what you are trying to achieve with this change.
The requirement is that the IV is unique, IMO changing the endianess is 
irrelevant here.
Can you provide case/example where current code does not work?

Thanks,
Sergio
quoted hunk ↗ jump to hunk
Signed-off-by: Aviad Yehezkel <redacted>
---
  examples/ipsec-secgw/esp.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/ipsec-secgw/esp.c b/examples/ipsec-secgw/esp.c
index aa2233d..81ebf55 100644
--- a/examples/ipsec-secgw/esp.c
+++ b/examples/ipsec-secgw/esp.c
@@ -336,7 +336,7 @@ esp_outbound(struct rte_mbuf *m, struct ipsec_sa *sa,
  	if (sa->aead_algo == RTE_CRYPTO_AEAD_AES_GCM) {
  		uint8_t *aad;
  
-		*iv = sa->seq;
+		*iv = rte_cpu_to_be_64(sa->seq);
  		sym_cop->aead.data.offset = ip_hdr_len +
  			sizeof(struct esp_hdr) + sa->iv_len;
  		sym_cop->aead.data.length = pad_payload_len;
@@ -349,7 +349,7 @@ esp_outbound(struct rte_mbuf *m, struct ipsec_sa *sa,
  
  		struct cnt_blk *icb = get_cnt_blk(m);
  		icb->salt = sa->salt;
-		icb->iv = sa->seq;
+		icb->iv = rte_cpu_to_be_64(sa->seq);
  		icb->cnt = rte_cpu_to_be_32(1);
  
  		aad = get_aad(m);
@@ -371,7 +371,7 @@ esp_outbound(struct rte_mbuf *m, struct ipsec_sa *sa,
  			sym_cop->cipher.data.length = pad_payload_len + sa->iv_len;
  			break;
  		case RTE_CRYPTO_CIPHER_AES_CTR:
-			*iv = sa->seq;
+			*iv = rte_cpu_to_be_64(sa->seq);
  			sym_cop->cipher.data.offset = ip_hdr_len +
  				sizeof(struct esp_hdr) + sa->iv_len;
  			sym_cop->cipher.data.length = pad_payload_len;
@@ -390,7 +390,7 @@ esp_outbound(struct rte_mbuf *m, struct ipsec_sa *sa,
  
  		struct cnt_blk *icb = get_cnt_blk(m);
  		icb->salt = sa->salt;
-		icb->iv = sa->seq;
+		icb->iv = rte_cpu_to_be_64(sa->seq);
  		icb->cnt = rte_cpu_to_be_32(1);
  
  		switch (sa->auth_algo) {
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help