Lines Matching refs:rsn

93 esn_inb_check_sqn(const struct replay_sqn *rsn, const struct rte_ipsec_sa *sa,  in esn_inb_check_sqn()  argument
103 if (sqn > rsn->sqn) in esn_inb_check_sqn()
107 if (sqn == 0 || sqn + sa->replay.win_sz < rsn->sqn) in esn_inb_check_sqn()
115 if (rsn->window[bucket] & ((uint64_t)1 << bit)) in esn_inb_check_sqn()
150 esn_inb_update_sqn(struct replay_sqn *rsn, const struct rte_ipsec_sa *sa, in esn_inb_update_sqn() argument
157 sqn = reconstruct_esn(rsn->sqn, sqn, sa->replay.win_sz); in esn_inb_update_sqn()
160 if (sqn == 0 || sqn + sa->replay.win_sz < rsn->sqn) in esn_inb_update_sqn()
167 if (sqn > rsn->sqn) { in esn_inb_update_sqn()
168 last_bucket = rsn->sqn >> WINDOW_BUCKET_BITS; in esn_inb_update_sqn()
177 rsn->window[new_bucket] = 0; in esn_inb_update_sqn()
179 rsn->sqn = sqn; in esn_inb_update_sqn()
186 if (rsn->window[bucket] & bit) in esn_inb_update_sqn()
189 rsn->window[bucket] |= bit; in esn_inb_update_sqn()
216 d = sa->sqn.inb.rsn[dst]; in rsn_copy()
217 s = sa->sqn.inb.rsn[src]; in rsn_copy()
233 struct replay_sqn *rsn; in rsn_acquire() local
236 rsn = sa->sqn.inb.rsn[n]; in rsn_acquire()
239 return rsn; in rsn_acquire()
242 while (rte_rwlock_read_trylock(&rsn->rwl) < 0) { in rsn_acquire()
245 rsn = sa->sqn.inb.rsn[n]; in rsn_acquire()
249 return rsn; in rsn_acquire()
256 rsn_release(struct rte_ipsec_sa *sa, struct replay_sqn *rsn) in rsn_release() argument
259 rte_rwlock_read_unlock(&rsn->rwl); in rsn_release()
269 struct replay_sqn *rsn; in rsn_update_start() local
277 return sa->sqn.inb.rsn[n]; in rsn_update_start()
282 rsn = sa->sqn.inb.rsn[k]; in rsn_update_start()
283 rte_rwlock_write_lock(&rsn->rwl); in rsn_update_start()
286 return rsn; in rsn_update_start()
293 rsn_update_finish(struct rte_ipsec_sa *sa, struct replay_sqn *rsn) in rsn_update_finish() argument
302 RTE_ASSERT(rsn == sa->sqn.inb.rsn[n]); in rsn_update_finish()
304 rte_rwlock_write_unlock(&rsn->rwl); in rsn_update_finish()