.. | .. |
---|
29 | 29 | return -ENOMEM; |
---|
30 | 30 | |
---|
31 | 31 | p = buf; |
---|
32 | | - p += snprintf(p, bufsize - (p - buf), |
---|
33 | | - "SA count=%u tx=%u\n", |
---|
34 | | - ipsec->count, ipsec->tx); |
---|
| 32 | + p += scnprintf(p, bufsize - (p - buf), |
---|
| 33 | + "SA count=%u tx=%u\n", |
---|
| 34 | + ipsec->count, ipsec->tx); |
---|
35 | 35 | |
---|
36 | 36 | for (i = 0; i < NSIM_IPSEC_MAX_SA_COUNT; i++) { |
---|
37 | 37 | struct nsim_sa *sap = &ipsec->sa[i]; |
---|
.. | .. |
---|
39 | 39 | if (!sap->used) |
---|
40 | 40 | continue; |
---|
41 | 41 | |
---|
42 | | - p += snprintf(p, bufsize - (p - buf), |
---|
43 | | - "sa[%i] %cx ipaddr=0x%08x %08x %08x %08x\n", |
---|
44 | | - i, (sap->rx ? 'r' : 't'), sap->ipaddr[0], |
---|
45 | | - sap->ipaddr[1], sap->ipaddr[2], sap->ipaddr[3]); |
---|
46 | | - p += snprintf(p, bufsize - (p - buf), |
---|
47 | | - "sa[%i] spi=0x%08x proto=0x%x salt=0x%08x crypt=%d\n", |
---|
48 | | - i, be32_to_cpu(sap->xs->id.spi), |
---|
49 | | - sap->xs->id.proto, sap->salt, sap->crypt); |
---|
50 | | - p += snprintf(p, bufsize - (p - buf), |
---|
51 | | - "sa[%i] key=0x%08x %08x %08x %08x\n", |
---|
52 | | - i, sap->key[0], sap->key[1], |
---|
53 | | - sap->key[2], sap->key[3]); |
---|
| 42 | + p += scnprintf(p, bufsize - (p - buf), |
---|
| 43 | + "sa[%i] %cx ipaddr=0x%08x %08x %08x %08x\n", |
---|
| 44 | + i, (sap->rx ? 'r' : 't'), sap->ipaddr[0], |
---|
| 45 | + sap->ipaddr[1], sap->ipaddr[2], sap->ipaddr[3]); |
---|
| 46 | + p += scnprintf(p, bufsize - (p - buf), |
---|
| 47 | + "sa[%i] spi=0x%08x proto=0x%x salt=0x%08x crypt=%d\n", |
---|
| 48 | + i, be32_to_cpu(sap->xs->id.spi), |
---|
| 49 | + sap->xs->id.proto, sap->salt, sap->crypt); |
---|
| 50 | + p += scnprintf(p, bufsize - (p - buf), |
---|
| 51 | + "sa[%i] key=0x%08x %08x %08x %08x\n", |
---|
| 52 | + i, sap->key[0], sap->key[1], |
---|
| 53 | + sap->key[2], sap->key[3]); |
---|
54 | 54 | } |
---|
55 | 55 | |
---|
56 | 56 | len = simple_read_from_buffer(buffer, count, ppos, buf, p - buf); |
---|
.. | .. |
---|
85 | 85 | u32 *mykey, u32 *mysalt) |
---|
86 | 86 | { |
---|
87 | 87 | const char aes_gcm_name[] = "rfc4106(gcm(aes))"; |
---|
88 | | - struct net_device *dev = xs->xso.dev; |
---|
| 88 | + struct net_device *dev = xs->xso.real_dev; |
---|
89 | 89 | unsigned char *key_data; |
---|
90 | 90 | char *alg_name = NULL; |
---|
91 | 91 | int key_len; |
---|
.. | .. |
---|
134 | 134 | u16 sa_idx; |
---|
135 | 135 | int ret; |
---|
136 | 136 | |
---|
137 | | - dev = xs->xso.dev; |
---|
| 137 | + dev = xs->xso.real_dev; |
---|
138 | 138 | ns = netdev_priv(dev); |
---|
139 | 139 | ipsec = &ns->ipsec; |
---|
140 | 140 | |
---|
.. | .. |
---|
194 | 194 | |
---|
195 | 195 | static void nsim_ipsec_del_sa(struct xfrm_state *xs) |
---|
196 | 196 | { |
---|
197 | | - struct netdevsim *ns = netdev_priv(xs->xso.dev); |
---|
| 197 | + struct netdevsim *ns = netdev_priv(xs->xso.real_dev); |
---|
198 | 198 | struct nsim_ipsec *ipsec = &ns->ipsec; |
---|
199 | 199 | u16 sa_idx; |
---|
200 | 200 | |
---|
.. | .. |
---|
211 | 211 | |
---|
212 | 212 | static bool nsim_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs) |
---|
213 | 213 | { |
---|
214 | | - struct netdevsim *ns = netdev_priv(xs->xso.dev); |
---|
| 214 | + struct netdevsim *ns = netdev_priv(xs->xso.real_dev); |
---|
215 | 215 | struct nsim_ipsec *ipsec = &ns->ipsec; |
---|
216 | 216 | |
---|
217 | 217 | ipsec->ok++; |
---|
.. | .. |
---|
227 | 227 | |
---|
228 | 228 | bool nsim_ipsec_tx(struct netdevsim *ns, struct sk_buff *skb) |
---|
229 | 229 | { |
---|
| 230 | + struct sec_path *sp = skb_sec_path(skb); |
---|
230 | 231 | struct nsim_ipsec *ipsec = &ns->ipsec; |
---|
231 | 232 | struct xfrm_state *xs; |
---|
232 | 233 | struct nsim_sa *tsa; |
---|
233 | 234 | u32 sa_idx; |
---|
234 | 235 | |
---|
235 | 236 | /* do we even need to check this packet? */ |
---|
236 | | - if (!skb->sp) |
---|
| 237 | + if (!sp) |
---|
237 | 238 | return true; |
---|
238 | 239 | |
---|
239 | | - if (unlikely(!skb->sp->len)) { |
---|
| 240 | + if (unlikely(!sp->len)) { |
---|
240 | 241 | netdev_err(ns->netdev, "no xfrm state len = %d\n", |
---|
241 | | - skb->sp->len); |
---|
| 242 | + sp->len); |
---|
242 | 243 | return false; |
---|
243 | 244 | } |
---|
244 | 245 | |
---|
.. | .. |
---|
282 | 283 | ns->netdev->features |= NSIM_ESP_FEATURES; |
---|
283 | 284 | ns->netdev->hw_enc_features |= NSIM_ESP_FEATURES; |
---|
284 | 285 | |
---|
285 | | - ns->ipsec.pfile = debugfs_create_file("ipsec", 0400, ns->ddir, ns, |
---|
| 286 | + ns->ipsec.pfile = debugfs_create_file("ipsec", 0400, |
---|
| 287 | + ns->nsim_dev_port->ddir, ns, |
---|
286 | 288 | &ipsec_dbg_fops); |
---|
287 | 289 | } |
---|
288 | 290 | |
---|