Lines Matching refs:xs
48 i, be32_to_cpu(sap->xs->id.spi), in nsim_dbg_netdev_ops_read()
49 sap->xs->id.proto, sap->salt, sap->crypt); in nsim_dbg_netdev_ops_read()
84 static int nsim_ipsec_parse_proto_keys(struct xfrm_state *xs, in nsim_ipsec_parse_proto_keys() argument
88 struct net_device *dev = xs->xso.real_dev; in nsim_ipsec_parse_proto_keys()
93 if (!xs->aead) { in nsim_ipsec_parse_proto_keys()
98 if (xs->aead->alg_icv_len != NSIM_IPSEC_AUTH_BITS) { in nsim_ipsec_parse_proto_keys()
104 key_data = &xs->aead->alg_key[0]; in nsim_ipsec_parse_proto_keys()
105 key_len = xs->aead->alg_key_len; in nsim_ipsec_parse_proto_keys()
106 alg_name = xs->aead->alg_name; in nsim_ipsec_parse_proto_keys()
128 static int nsim_ipsec_add_sa(struct xfrm_state *xs, in nsim_ipsec_add_sa() argument
138 dev = xs->xso.real_dev; in nsim_ipsec_add_sa()
142 if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) { in nsim_ipsec_add_sa()
147 if (xs->calg) { in nsim_ipsec_add_sa()
152 if (xs->xso.type != XFRM_DEV_OFFLOAD_CRYPTO) { in nsim_ipsec_add_sa()
167 sa.xs = xs; in nsim_ipsec_add_sa()
169 if (sa.xs->id.proto & IPPROTO_ESP) in nsim_ipsec_add_sa()
170 sa.crypt = xs->ealg || xs->aead; in nsim_ipsec_add_sa()
173 ret = nsim_ipsec_parse_proto_keys(xs, sa.key, &sa.salt); in nsim_ipsec_add_sa()
179 if (xs->xso.dir == XFRM_DEV_OFFLOAD_IN) { in nsim_ipsec_add_sa()
182 if (xs->props.family == AF_INET6) in nsim_ipsec_add_sa()
183 memcpy(sa.ipaddr, &xs->id.daddr.a6, 16); in nsim_ipsec_add_sa()
185 memcpy(&sa.ipaddr[3], &xs->id.daddr.a4, 4); in nsim_ipsec_add_sa()
194 xs->xso.offload_handle = sa_idx | NSIM_IPSEC_VALID; in nsim_ipsec_add_sa()
200 static void nsim_ipsec_del_sa(struct xfrm_state *xs) in nsim_ipsec_del_sa() argument
202 struct netdevsim *ns = netdev_priv(xs->xso.real_dev); in nsim_ipsec_del_sa()
206 sa_idx = xs->xso.offload_handle & ~NSIM_IPSEC_VALID; in nsim_ipsec_del_sa()
217 static bool nsim_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs) in nsim_ipsec_offload_ok() argument
219 struct netdevsim *ns = netdev_priv(xs->xso.real_dev); in nsim_ipsec_offload_ok()
237 struct xfrm_state *xs; in nsim_ipsec_tx() local
251 xs = xfrm_input_state(skb); in nsim_ipsec_tx()
252 if (unlikely(!xs)) { in nsim_ipsec_tx()
253 netdev_err(ns->netdev, "no xfrm_input_state() xs = %p\n", xs); in nsim_ipsec_tx()
257 sa_idx = xs->xso.offload_handle & ~NSIM_IPSEC_VALID; in nsim_ipsec_tx()
270 if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) { in nsim_ipsec_tx()
271 netdev_err(ns->netdev, "unexpected proto=%d\n", xs->id.proto); in nsim_ipsec_tx()