From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 91FAA1B42E for ; Wed, 12 Dec 2018 18:47:26 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2018 09:47:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,345,1539673200"; d="scan'208";a="258945686" Received: from dwdohert-mobl.ger.corp.intel.com (HELO [163.33.176.66]) ([163.33.176.66]) by orsmga004.jf.intel.com with ESMTP; 12 Dec 2018 09:47:22 -0800 To: Konstantin Ananyev , dev@dpdk.org Cc: Mohammad Abdul Awal References: <1543596366-22617-2-git-send-email-konstantin.ananyev@intel.com> <1544110714-4514-7-git-send-email-konstantin.ananyev@intel.com> From: "Doherty, Declan" Message-ID: <024a941e-04b2-795e-0884-095d40ae7f6d@intel.com> Date: Wed, 12 Dec 2018 17:47:20 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <1544110714-4514-7-git-send-email-konstantin.ananyev@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v3 6/9] ipsec: implement SA data-path API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 17:47:27 -0000 Only some minor some cosmetic questions On 06/12/2018 3:38 PM, Konstantin Ananyev wrote: > Provide implementation for rte_ipsec_pkt_crypto_prepare() and ... > +/* > + * Move preceding (L3) headers up to free space for ESP header and IV. > + */ > +static inline void > +insert_esph(char *np, char *op, uint32_t hlen) > +{ > + uint32_t i; > + > + for (i = 0; i != hlen; i++) > + np[i] = op[i]; > +} > + > +/* update original ip header fields for trasnport case */ ^^typo > +static inline int > +update_trs_l3hdr(const struct rte_ipsec_sa *sa, void *p, uint32_t plen, > + uint32_t l2len, uint32_t l3len, uint8_t proto) > +{ > + struct ipv4_hdr *v4h; > + struct ipv6_hdr *v6h; > + int32_t rc; > + > + if ((sa->type & RTE_IPSEC_SATP_IPV_MASK) == RTE_IPSEC_SATP_IPV4) { > + v4h = p; > + rc = v4h->next_proto_id; > + v4h->next_proto_id = proto; > + v4h->total_length = rte_cpu_to_be_16(plen - l2len); > + } else if (l3len == sizeof(*v6h)) { why are you using a different method of identifying ipv6 vs ipv4, would checking (sa->type & RTE_IPSEC_SATP_IPV_MASK)== RTE_IPSEC_SATP_IPV6 be not be valid here also? > ... > diff --git a/lib/librte_ipsec/ipsec_sqn.h b/lib/librte_ipsec/ipsec_sqn.h > index 4471814f9..a33ff9cca 100644 > --- a/lib/librte_ipsec/ipsec_sqn.h > +++ b/lib/librte_ipsec/ipsec_sqn.h > @@ -15,6 +15,45 @@ > > #define IS_ESN(sa) ((sa)->sqn_mask == UINT64_MAX) Would it make more sense to have ESN as RTE_IPSEC_SATP_ property so it can be retrieve through the sa type API? > ...> Acked-by: Declan Doherty