X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Flibrte_ipsec%2Fipsec_sqn.h;h=2636cb153939b9e8815fa43be6b16fc56be8d616;hb=1d51f154cd93bc8f623985032835d2218e05c893;hp=a3ae7e2de471ca5cb639d9f40bb1a2ac1e561aaa;hpb=b73cec26cd928bea52a2b746739ff251a7d0a732;p=dpdk.git diff --git a/lib/librte_ipsec/ipsec_sqn.h b/lib/librte_ipsec/ipsec_sqn.h index a3ae7e2de4..2636cb1539 100644 --- a/lib/librte_ipsec/ipsec_sqn.h +++ b/lib/librte_ipsec/ipsec_sqn.h @@ -56,21 +56,6 @@ sqn_low16(rte_be64_t sqn) #endif } -/* - * for given size, calculate required number of buckets. - */ -static uint32_t -replay_num_bucket(uint32_t wsz) -{ - uint32_t nb; - - nb = rte_align32pow2(RTE_ALIGN_MUL_CEIL(wsz, WINDOW_BUCKET_SIZE) / - WINDOW_BUCKET_SIZE); - nb = RTE_MAX(nb, (uint32_t)WINDOW_BUCKET_MIN); - - return nb; -} - /* * According to RFC4303 A2.1, determine the high-order bit of sequence number. * use 32bit arithmetic inside, return uint64_t. @@ -143,10 +128,10 @@ esn_outb_update_sqn(struct rte_ipsec_sa *sa, uint32_t *num) n = *num; if (SQN_ATOMIC(sa)) - sqn = (uint64_t)rte_atomic64_add_return(&sa->sqn.outb.atom, n); + sqn = __atomic_add_fetch(&sa->sqn.outb, n, __ATOMIC_RELAXED); else { - sqn = sa->sqn.outb.raw + n; - sa->sqn.outb.raw = sqn; + sqn = sa->sqn.outb + n; + sa->sqn.outb = sqn; } /* overflow */ @@ -167,10 +152,6 @@ esn_inb_update_sqn(struct replay_sqn *rsn, const struct rte_ipsec_sa *sa, { uint32_t bit, bucket, last_bucket, new_bucket, diff, i; - /* replay not enabled */ - if (sa->replay.win_sz == 0) - return 0; - /* handle ESN */ if (IS_ESN(sa)) sqn = reconstruct_esn(rsn->sqn, sqn, sa->replay.win_sz); @@ -222,21 +203,6 @@ esn_inb_update_sqn(struct replay_sqn *rsn, const struct rte_ipsec_sa *sa, * between writer and readers. */ -/** - * Based on number of buckets calculated required size for the - * structure that holds replay window and sequence number (RSN) information. - */ -static size_t -rsn_size(uint32_t nb_bucket) -{ - size_t sz; - struct replay_sqn *rsn; - - sz = sizeof(*rsn) + nb_bucket * sizeof(rsn->window[0]); - sz = RTE_ALIGN_CEIL(sz, RTE_CACHE_LINE_SIZE); - return sz; -} - /** * Copy replay window and SQN. */