• Home
  • Raw
  • Download

Lines Matching refs:skb

13 int ip_route_me_harder(struct sk_buff *skb, unsigned addr_type)  in ip_route_me_harder()  argument
15 struct net *net = dev_net(skb->dst->dev); in ip_route_me_harder()
16 const struct iphdr *iph = ip_hdr(skb); in ip_route_me_harder()
24 if (skb->sk && inet_sk(skb->sk)->transparent) in ip_route_me_harder()
37 fl.oif = skb->sk ? skb->sk->sk_bound_dev_if : 0; in ip_route_me_harder()
38 fl.mark = skb->mark; in ip_route_me_harder()
39 fl.flags = skb->sk ? inet_sk_flowi_flags(skb->sk) : 0; in ip_route_me_harder()
44 dst_release(skb->dst); in ip_route_me_harder()
45 skb->dst = &rt->u.dst; in ip_route_me_harder()
53 odst = skb->dst; in ip_route_me_harder()
54 if (ip_route_input(skb, iph->daddr, iph->saddr, in ip_route_me_harder()
63 if (skb->dst->error) in ip_route_me_harder()
67 if (!(IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED) && in ip_route_me_harder()
68 xfrm_decode_session(skb, &fl, AF_INET) == 0) in ip_route_me_harder()
69 if (xfrm_lookup(net, &skb->dst, &fl, skb->sk, 0)) in ip_route_me_harder()
74 hh_len = skb->dst->dev->hard_header_len; in ip_route_me_harder()
75 if (skb_headroom(skb) < hh_len && in ip_route_me_harder()
76 pskb_expand_head(skb, hh_len - skb_headroom(skb), 0, GFP_ATOMIC)) in ip_route_me_harder()
84 int ip_xfrm_me_harder(struct sk_buff *skb) in ip_xfrm_me_harder() argument
90 if (IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED) in ip_xfrm_me_harder()
92 if (xfrm_decode_session(skb, &fl, AF_INET) < 0) in ip_xfrm_me_harder()
95 dst = skb->dst; in ip_xfrm_me_harder()
100 if (xfrm_lookup(dev_net(dst->dev), &dst, &fl, skb->sk, 0) < 0) in ip_xfrm_me_harder()
103 dst_release(skb->dst); in ip_xfrm_me_harder()
104 skb->dst = dst; in ip_xfrm_me_harder()
107 hh_len = skb->dst->dev->hard_header_len; in ip_xfrm_me_harder()
108 if (skb_headroom(skb) < hh_len && in ip_xfrm_me_harder()
109 pskb_expand_head(skb, hh_len - skb_headroom(skb), 0, GFP_ATOMIC)) in ip_xfrm_me_harder()
131 static void nf_ip_saveroute(const struct sk_buff *skb, in nf_ip_saveroute() argument
137 const struct iphdr *iph = ip_hdr(skb); in nf_ip_saveroute()
142 rt_info->mark = skb->mark; in nf_ip_saveroute()
146 static int nf_ip_reroute(struct sk_buff *skb, in nf_ip_reroute() argument
152 const struct iphdr *iph = ip_hdr(skb); in nf_ip_reroute()
155 && skb->mark == rt_info->mark in nf_ip_reroute()
158 return ip_route_me_harder(skb, RTN_UNSPEC); in nf_ip_reroute()
163 __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook, in nf_ip_checksum() argument
166 const struct iphdr *iph = ip_hdr(skb); in nf_ip_checksum()
169 switch (skb->ip_summed) { in nf_ip_checksum()
173 if ((protocol == 0 && !csum_fold(skb->csum)) || in nf_ip_checksum()
175 skb->len - dataoff, protocol, in nf_ip_checksum()
176 skb->csum)) { in nf_ip_checksum()
177 skb->ip_summed = CHECKSUM_UNNECESSARY; in nf_ip_checksum()
183 skb->csum = 0; in nf_ip_checksum()
185 skb->csum = csum_tcpudp_nofold(iph->saddr, iph->daddr, in nf_ip_checksum()
186 skb->len - dataoff, in nf_ip_checksum()
188 csum = __skb_checksum_complete(skb); in nf_ip_checksum()
194 static __sum16 nf_ip_checksum_partial(struct sk_buff *skb, unsigned int hook, in nf_ip_checksum_partial() argument
198 const struct iphdr *iph = ip_hdr(skb); in nf_ip_checksum_partial()
201 switch (skb->ip_summed) { in nf_ip_checksum_partial()
203 if (len == skb->len - dataoff) in nf_ip_checksum_partial()
204 return nf_ip_checksum(skb, hook, dataoff, protocol); in nf_ip_checksum_partial()
207 skb->csum = csum_tcpudp_nofold(iph->saddr, iph->daddr, protocol, in nf_ip_checksum_partial()
208 skb->len - dataoff, 0); in nf_ip_checksum_partial()
209 skb->ip_summed = CHECKSUM_NONE; in nf_ip_checksum_partial()
210 csum = __skb_checksum_complete_head(skb, dataoff + len); in nf_ip_checksum_partial()
212 skb->ip_summed = CHECKSUM_UNNECESSARY; in nf_ip_checksum_partial()