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
137 dev = xs->xso.real_dev; in nsim_ipsec_add_sa()
141 if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) { in nsim_ipsec_add_sa()
143 xs->id.proto); in nsim_ipsec_add_sa()
147 if (xs->calg) { in nsim_ipsec_add_sa()
162 sa.xs = xs; in nsim_ipsec_add_sa()
164 if (sa.xs->id.proto & IPPROTO_ESP) in nsim_ipsec_add_sa()
165 sa.crypt = xs->ealg || xs->aead; in nsim_ipsec_add_sa()
168 ret = nsim_ipsec_parse_proto_keys(xs, sa.key, &sa.salt); in nsim_ipsec_add_sa()
174 if (xs->xso.flags & XFRM_OFFLOAD_INBOUND) { in nsim_ipsec_add_sa()
177 if (xs->props.family == AF_INET6) in nsim_ipsec_add_sa()
178 memcpy(sa.ipaddr, &xs->id.daddr.a6, 16); in nsim_ipsec_add_sa()
180 memcpy(&sa.ipaddr[3], &xs->id.daddr.a4, 4); in nsim_ipsec_add_sa()
189 xs->xso.offload_handle = sa_idx | NSIM_IPSEC_VALID; in nsim_ipsec_add_sa()
195 static void nsim_ipsec_del_sa(struct xfrm_state *xs) in nsim_ipsec_del_sa() argument
197 struct netdevsim *ns = netdev_priv(xs->xso.real_dev); in nsim_ipsec_del_sa()
201 sa_idx = xs->xso.offload_handle & ~NSIM_IPSEC_VALID; in nsim_ipsec_del_sa()
212 static bool nsim_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs) in nsim_ipsec_offload_ok() argument
214 struct netdevsim *ns = netdev_priv(xs->xso.real_dev); in nsim_ipsec_offload_ok()
232 struct xfrm_state *xs; in nsim_ipsec_tx() local
246 xs = xfrm_input_state(skb); in nsim_ipsec_tx()
247 if (unlikely(!xs)) { in nsim_ipsec_tx()
248 netdev_err(ns->netdev, "no xfrm_input_state() xs = %p\n", xs); in nsim_ipsec_tx()
252 sa_idx = xs->xso.offload_handle & ~NSIM_IPSEC_VALID; in nsim_ipsec_tx()
265 if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) { in nsim_ipsec_tx()
266 netdev_err(ns->netdev, "unexpected proto=%d\n", xs->id.proto); in nsim_ipsec_tx()