Lines Matching refs:xs
48 i, be32_to_cpu(sap->xs->id.spi),
49 sap->xs->id.proto, sap->salt, sap->crypt);
84 static int nsim_ipsec_parse_proto_keys(struct xfrm_state *xs,
88 struct net_device *dev = xs->xso.real_dev;
93 if (!xs->aead) {
98 if (xs->aead->alg_icv_len != NSIM_IPSEC_AUTH_BITS) {
104 key_data = &xs->aead->alg_key[0];
105 key_len = xs->aead->alg_key_len;
106 alg_name = xs->aead->alg_name;
128 static int nsim_ipsec_add_sa(struct xfrm_state *xs)
137 dev = xs->xso.real_dev;
141 if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) {
143 xs->id.proto);
147 if (xs->calg) {
162 sa.xs = xs;
164 if (sa.xs->id.proto & IPPROTO_ESP)
165 sa.crypt = xs->ealg || xs->aead;
168 ret = nsim_ipsec_parse_proto_keys(xs, sa.key, &sa.salt);
174 if (xs->xso.flags & XFRM_OFFLOAD_INBOUND) {
177 if (xs->props.family == AF_INET6)
178 memcpy(sa.ipaddr, &xs->id.daddr.a6, 16);
180 memcpy(&sa.ipaddr[3], &xs->id.daddr.a4, 4);
189 xs->xso.offload_handle = sa_idx | NSIM_IPSEC_VALID;
195 static void nsim_ipsec_del_sa(struct xfrm_state *xs)
197 struct netdevsim *ns = netdev_priv(xs->xso.real_dev);
201 sa_idx = xs->xso.offload_handle & ~NSIM_IPSEC_VALID;
212 static bool nsim_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs)
214 struct netdevsim *ns = netdev_priv(xs->xso.real_dev);
232 struct xfrm_state *xs;
246 xs = xfrm_input_state(skb);
247 if (unlikely(!xs)) {
248 netdev_err(ns->netdev, "no xfrm_input_state() xs = %p\n", xs);
252 sa_idx = xs->xso.offload_handle & ~NSIM_IPSEC_VALID;
265 if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) {
266 netdev_err(ns->netdev, "unexpected proto=%d\n", xs->id.proto);