sa_entry 109 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry) sa_entry 114 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->authsize = authsize; sa_entry 133 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry) sa_entry 144 drivers/crypto/chelsio/chcr_ipsec.c memcpy(sa_entry->salt, key + keylen, 4); sa_entry 159 drivers/crypto/chelsio/chcr_ipsec.c memcpy(sa_entry->key, key, keylen); sa_entry 160 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->enckey_len = keylen; sa_entry 165 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->key_ctx_hdr = FILL_KEY_CTX_HDR(ck_size, sa_entry 175 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->enckey_len = 0; sa_entry 182 drivers/crypto/chelsio/chcr_ipsec.c memcpy(sa_entry->key + (DIV_ROUND_UP(sa_entry->enckey_len, 16) * sa_entry 184 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->kctx_len = ((DIV_ROUND_UP(sa_entry->enckey_len, 16)) << 4) + sa_entry 197 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry; sa_entry 253 drivers/crypto/chelsio/chcr_ipsec.c sa_entry = kzalloc(sizeof(*sa_entry), GFP_KERNEL); sa_entry 254 drivers/crypto/chelsio/chcr_ipsec.c if (!sa_entry) { sa_entry 259 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->hmac_ctrl = chcr_ipsec_setauthsize(x, sa_entry); sa_entry 261 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->esn = 1; sa_entry 262 drivers/crypto/chelsio/chcr_ipsec.c chcr_ipsec_setkey(x, sa_entry); sa_entry 263 drivers/crypto/chelsio/chcr_ipsec.c x->xso.offload_handle = (unsigned long)sa_entry; sa_entry 278 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry; sa_entry 283 drivers/crypto/chelsio/chcr_ipsec.c sa_entry = (struct ipsec_sa_entry *)x->xso.offload_handle; sa_entry 284 drivers/crypto/chelsio/chcr_ipsec.c kfree(sa_entry); sa_entry 313 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry) sa_entry 318 drivers/crypto/chelsio/chcr_ipsec.c kctx_len = sa_entry->kctx_len; sa_entry 323 drivers/crypto/chelsio/chcr_ipsec.c if (sa_entry->esn) sa_entry 332 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry, sa_entry 340 drivers/crypto/chelsio/chcr_ipsec.c kctx_len = sa_entry->kctx_len; sa_entry 341 drivers/crypto/chelsio/chcr_ipsec.c hdrlen = is_eth_imm(skb, sa_entry); sa_entry 342 drivers/crypto/chelsio/chcr_ipsec.c aadivlen = sa_entry->esn ? DIV_ROUND_UP(sizeof(struct chcr_ipsec_aadiv), sa_entry 377 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry) sa_entry 417 drivers/crypto/chelsio/chcr_ipsec.c if (is_eth_imm(skb, sa_entry) && !skb_is_nonlinear(skb)) { sa_entry 431 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry) sa_entry 467 drivers/crypto/chelsio/chcr_ipsec.c if (sa_entry->esn) sa_entry 468 drivers/crypto/chelsio/chcr_ipsec.c pos = copy_esn_pktxt(skb, dev, pos, sa_entry); sa_entry 475 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry) sa_entry 488 drivers/crypto/chelsio/chcr_ipsec.c key_len = sa_entry->kctx_len; sa_entry 500 drivers/crypto/chelsio/chcr_ipsec.c key_ctx->ctx_hdr = sa_entry->key_ctx_hdr; sa_entry 501 drivers/crypto/chelsio/chcr_ipsec.c memcpy(key_ctx->salt, sa_entry->salt, MAX_SALT); sa_entry 506 drivers/crypto/chelsio/chcr_ipsec.c memcpy(key_ctx->key, sa_entry->key, key_len); sa_entry 509 drivers/crypto/chelsio/chcr_ipsec.c memcpy(pos, sa_entry->key, left); sa_entry 510 drivers/crypto/chelsio/chcr_ipsec.c memcpy(q->q.desc, sa_entry->key + left, sa_entry 515 drivers/crypto/chelsio/chcr_ipsec.c pos = copy_cpltx_pktxt(skb, dev, pos, sa_entry); sa_entry 524 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry) sa_entry 544 drivers/crypto/chelsio/chcr_ipsec.c unsigned int kctx_len = sa_entry->kctx_len; sa_entry 549 drivers/crypto/chelsio/chcr_ipsec.c flits = calc_tx_sec_flits(skb, sa_entry, &immediate); sa_entry 551 drivers/crypto/chelsio/chcr_ipsec.c if (sa_entry->esn) sa_entry 557 drivers/crypto/chelsio/chcr_ipsec.c if (sa_entry->esn) { sa_entry 591 drivers/crypto/chelsio/chcr_ipsec.c ivinoffset = sa_entry->esn ? (ESN_IV_INSERT_OFFSET + 1) : sa_entry 602 drivers/crypto/chelsio/chcr_ipsec.c aadstart = sa_entry->esn ? 1 : (skb_transport_offset(skb) + 1); sa_entry 603 drivers/crypto/chelsio/chcr_ipsec.c aadstop = sa_entry->esn ? ESN_IV_INSERT_OFFSET : sa_entry 608 drivers/crypto/chelsio/chcr_ipsec.c ciphstart += sa_entry->esn ? esnlen : 0; sa_entry 617 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->authsize, sa_entry 618 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->authsize); sa_entry 623 drivers/crypto/chelsio/chcr_ipsec.c sa_entry->hmac_ctrl, sa_entry 633 drivers/crypto/chelsio/chcr_ipsec.c pos = copy_key_cpltx_pktxt(skb, dev, pos, sa_entry); sa_entry 676 drivers/crypto/chelsio/chcr_ipsec.c struct ipsec_sa_entry *sa_entry; sa_entry 690 drivers/crypto/chelsio/chcr_ipsec.c sa_entry = (struct ipsec_sa_entry *)x->xso.offload_handle; sa_entry 705 drivers/crypto/chelsio/chcr_ipsec.c flits = calc_tx_sec_flits(skb, sa_entry, &immediate); sa_entry 729 drivers/crypto/chelsio/chcr_ipsec.c credits, sa_entry); sa_entry 63 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec_sa_entry *sa_entry; sa_entry 67 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c hash_for_each_possible_rcu(ipsec->sadb_rx, sa_entry, hlist, handle) sa_entry 68 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (sa_entry->handle == handle) { sa_entry 69 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c ret = sa_entry->x; sa_entry 78 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c static int mlx5e_ipsec_sadb_rx_add(struct mlx5e_ipsec_sa_entry *sa_entry) sa_entry 80 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec *ipsec = sa_entry->ipsec; sa_entry 89 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->handle = ret; sa_entry 90 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c hash_add_rcu(ipsec->sadb_rx, &sa_entry->hlist, sa_entry->handle); sa_entry 96 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c static void mlx5e_ipsec_sadb_rx_del(struct mlx5e_ipsec_sa_entry *sa_entry) sa_entry 98 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec *ipsec = sa_entry->ipsec; sa_entry 102 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c hash_del_rcu(&sa_entry->hlist); sa_entry 106 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c static void mlx5e_ipsec_sadb_rx_free(struct mlx5e_ipsec_sa_entry *sa_entry) sa_entry 108 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec *ipsec = sa_entry->ipsec; sa_entry 112 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c ida_simple_remove(&ipsec->halloc, sa_entry->handle); sa_entry 115 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c static bool mlx5e_ipsec_update_esn_state(struct mlx5e_ipsec_sa_entry *sa_entry) sa_entry 122 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (!(sa_entry->x->props.flags & XFRM_STATE_ESN)) { sa_entry 123 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->esn_state.trigger = 0; sa_entry 127 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c replay_esn = sa_entry->x->replay_esn; sa_entry 129 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c overlap = sa_entry->esn_state.overlap; sa_entry 131 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->esn_state.esn = xfrm_replay_seqhi(sa_entry->x, sa_entry 133 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c esn = &sa_entry->esn_state.esn; sa_entry 135 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->esn_state.trigger = 1; sa_entry 138 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->esn_state.overlap = 0; sa_entry 142 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->esn_state.overlap = 1; sa_entry 150 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_build_accel_xfrm_attrs(struct mlx5e_ipsec_sa_entry *sa_entry, sa_entry 153 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct xfrm_state *x = sa_entry->x; sa_entry 181 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (sa_entry->esn_state.trigger) { sa_entry 183 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c attrs->esn = sa_entry->esn_state.esn; sa_entry 184 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (sa_entry->esn_state.overlap) sa_entry 189 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c attrs->sa_handle = sa_entry->handle; sa_entry 283 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec_sa_entry *sa_entry = NULL; sa_entry 297 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry = kzalloc(sizeof(*sa_entry), GFP_KERNEL); sa_entry 298 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (!sa_entry) { sa_entry 303 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->x = x; sa_entry 304 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->ipsec = priv->ipsec; sa_entry 310 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c err = mlx5e_ipsec_sadb_rx_add(sa_entry); sa_entry 316 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->set_iv_op = (x->props.flags & XFRM_STATE_ESN) ? sa_entry 321 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_update_esn_state(sa_entry); sa_entry 324 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_build_accel_xfrm_attrs(sa_entry, &attrs); sa_entry 325 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->xfrm = sa_entry 328 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (IS_ERR(sa_entry->xfrm)) { sa_entry 329 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c err = PTR_ERR(sa_entry->xfrm); sa_entry 343 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->hw_context = sa_entry 345 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c sa_entry->xfrm, sa_entry 348 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (IS_ERR(sa_entry->hw_context)) { sa_entry 349 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c err = PTR_ERR(sa_entry->hw_context); sa_entry 353 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c x->xso.offload_handle = (unsigned long)sa_entry; sa_entry 357 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5_accel_esp_destroy_xfrm(sa_entry->xfrm); sa_entry 360 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_sadb_rx_del(sa_entry); sa_entry 361 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_sadb_rx_free(sa_entry); sa_entry 364 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c kfree(sa_entry); sa_entry 371 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec_sa_entry *sa_entry = to_ipsec_sa_entry(x); sa_entry 373 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (!sa_entry) sa_entry 377 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_sadb_rx_del(sa_entry); sa_entry 382 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec_sa_entry *sa_entry = to_ipsec_sa_entry(x); sa_entry 384 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (!sa_entry) sa_entry 387 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (sa_entry->hw_context) { sa_entry 388 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c flush_workqueue(sa_entry->ipsec->wq); sa_entry 389 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5_accel_esp_free_hw_context(sa_entry->hw_context); sa_entry 390 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5_accel_esp_destroy_xfrm(sa_entry->xfrm); sa_entry 394 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_sadb_rx_free(sa_entry); sa_entry 396 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c kfree(sa_entry); sa_entry 462 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec_sa_entry *sa_entry; sa_entry 470 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec_sa_entry *sa_entry = modify_work->sa_entry; sa_entry 472 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c ret = mlx5_accel_esp_modify_xfrm(sa_entry->xfrm, sa_entry 475 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c netdev_warn(sa_entry->ipsec->en_priv->netdev, sa_entry 483 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c struct mlx5e_ipsec_sa_entry *sa_entry = to_ipsec_sa_entry(x); sa_entry 487 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c if (!sa_entry) sa_entry 490 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c need_update = mlx5e_ipsec_update_esn_state(sa_entry); sa_entry 498 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c mlx5e_ipsec_build_accel_xfrm_attrs(sa_entry, &modify_work->attrs); sa_entry 499 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c modify_work->sa_entry = sa_entry; sa_entry 502 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c WARN_ON(!queue_work(sa_entry->ipsec->wq, &modify_work->work)); sa_entry 243 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c struct mlx5e_ipsec_sa_entry *sa_entry; sa_entry 280 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c sa_entry = (struct mlx5e_ipsec_sa_entry *)x->xso.offload_handle; sa_entry 281 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c sa_entry->set_iv_op(skb, x, xo);