-static void ipcomp_tunnel_encap(struct xfrm_state *x, struct sk_buff *skb)
-{
- struct dst_entry *dst = skb->dst;
- struct iphdr *iph, *top_iph;
-
- iph = skb->nh.iph;
- top_iph = (struct iphdr *)skb_push(skb, sizeof(struct iphdr));
- top_iph->ihl = 5;
- top_iph->version = 4;
- top_iph->tos = iph->tos;
- top_iph->tot_len = htons(skb->len);
- if (!(iph->frag_off&htons(IP_DF)))
- __ip_select_ident(top_iph, dst, 0);
- top_iph->ttl = iph->ttl;
- top_iph->check = 0;
- top_iph->saddr = x->props.saddr.a4;
- top_iph->daddr = x->id.daddr.a4;
- top_iph->frag_off = iph->frag_off&~htons(IP_MF|IP_OFFSET);
- memset(&(IPCB(skb)->opt), 0, sizeof(struct ip_options));
- skb->nh.raw = skb->data;
-}
-