IP6CB
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
IP6CB(skb)->iif = skb->dev->ifindex;
IP6CB(skb)->flags |= IP6SKB_L3SLAVE;
IP6CB(skb)->flags |= IP6SKB_L3SLAVE;
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
!(IP6CB(skb)->flags & IP6SKB_REROUTED));
IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED)
__icmpv6_send(skb, type, code, info, IP6CB(skb));
bool l3_slave = ipv6_l3mdev_skb(IP6CB(skb)->flags);
return l3_slave ? skb->skb_iif : IP6CB(skb)->iif;
return !!(IP6CB(skb)->flags & IP6SKB_JUMBOGRAM);
if (skb && ipv6_l3mdev_skb(IP6CB(skb)->flags))
return IP6CB(skb)->iif;
IP6CB(skb)->flags = ip6cb_flags;
nf_bridge->frag_max_size = IP6CB(skb)->frag_max_size;
IP6CB(skb)->frag_max_size = nf_bridge->frag_max_size;
IP6CB(skb)->frag_max_size = nf_bridge->frag_max_size;
nf_bridge->frag_max_size = IP6CB(skb)->frag_max_size;
memset(IP6CB(skb), 0, sizeof(struct inet6_skb_parm));
br_skb_cb_restore(skb, &cb, IP6CB(skb)->frag_max_size);
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
if (!IP6CB(skb)->iif)
IP6CB(skb)->iif);
IP6CB(skb)->iif);
src_info.ipi6_ifindex = IP6CB(skb)->iif;
struct inet6_skb_parm *opt = IP6CB(skb);
IP6CB(skb)->nhoff = nhoff;
IP6CB(skb)->flags |= IP6SKB_JUMBOGRAM;
struct inet6_skb_parm *opt = IP6CB(skb);
opt = IP6CB(skb);
struct inet6_skb_parm *opt = IP6CB(skb);
struct inet6_skb_parm *opt = IP6CB(skb);
opt = IP6CB(skb);
struct inet6_skb_parm *opt = IP6CB(skb);
struct inet6_skb_parm *opt = IP6CB(skb);
struct inet6_skb_parm *opt = IP6CB(skb);
IP6CB(skb)->flags |= IP6SKB_ROUTERALERT;
memcpy(&IP6CB(skb)->ra, nh + optoff + 2, sizeof(IP6CB(skb)->ra));
struct inet6_skb_parm *opt = IP6CB(skb);
icmp6_send(skb, ICMPV6_PARAMPROB, code, pos, NULL, IP6CB(skb));
memset(IP6CB(skb2), 0, sizeof(*IP6CB(skb2)));
info, &temp_saddr, IP6CB(skb2));
info, &temp_saddr, IP6CB(skb2));
IP6CB(skb)->flags & IP6SKB_MULTIPATH)
memset(IP6CB(skb), 0, sizeof(struct inet6_skb_parm));
IP6CB(skb)->iif = skb_valid_dst(skb) ?
IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr);
nhoff = IP6CB(skb)->nhoff;
likely(!(IP6CB(skb)->flags & IP6SKB_FORWARDED))) {
struct inet6_skb_parm *opt = IP6CB(skb);
IP6CB(skb)->flags |= IP6SKB_REROUTED;
(IP6CB(skb)->frag_max_size && skb->len > IP6CB(skb)->frag_max_size)))
!(IP6CB(skb)->flags & IP6SKB_REROUTED));
if (IP6CB(skb)->frag_max_size && IP6CB(skb)->frag_max_size > mtu)
struct inet6_skb_parm *opt = IP6CB(skb);
idev = __in6_dev_get_safely(dev_get_by_index_rcu(net, IP6CB(skb)->iif));
if (IP6CB(skb)->iif == dev->ifindex &&
!(IP6CB(skb)->flags & IP6SKB_FORWARDED)) ||
if (IP6CB(skb)->frag_max_size) {
if (IP6CB(skb)->frag_max_size > mtu)
mtu = IP6CB(skb)->frag_max_size;
int nexthdr = skb_network_header(skb)[IP6CB(skb)->nhoff];
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
IP6CB(skb)->flags |= IP6SKB_FORWARDED;
if (IP6CB(skb)->flags & IP6SKB_FORWARDED)
if (!(IP6CB(skb)->flags & IP6SKB_MCROUTE))
!(IP6CB(skb)->flags & IP6SKB_ROUTERALERT) ||
IP6CB(skb)->ra != htons(IPV6_OPT_ROUTERALERT_MLD))
if (IP6CB(skb)->flags & IP6SKB_FRAGMENTED &&
if (!(IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED) &&
IP6CB(skb)->frag_max_size = sizeof(struct ipv6hdr) + fq->q.max_size;
IP6CB(skb)->flags |= IP6SKB_FRAGMENTED;
IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr);
IP6CB(skb)->nhoff = nhoff;
IP6CB(skb)->flags |= IP6SKB_FRAGMENTED;
IP6CB(skb)->frag_max_size = fq->q.max_size;
if (IP6CB(skb)->flags & IP6SKB_FRAGMENTED)
IP6CB(skb)->nhoff = (u8 *)fhdr - skb_network_header(skb);
IP6CB(skb)->flags |= IP6SKB_FRAGMENTED;
IP6CB(skb)->frag_max_size = ntohs(hdr->payload_len) +
ret = ip6_frag_queue(net, fq, skb, fhdr, IP6CB(skb)->nhoff,
IP6CB(skb)->flags |= IP6SKB_MULTIPATH;
idev = __in6_dev_get_safely(dev_get_by_index_rcu(net, IP6CB(skb)->iif));
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
IP6CB(skb)->iif = skb->skb_iif;
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
IP6CB(skb)->iif = skb->skb_iif;
memmove(IP6CB(skb), &TCP_SKB_CB(skb)->header.h6,
memmove(&TCP_SKB_CB(skb)->header.h6, IP6CB(skb),
return xfrm6_rcv_spi(skb, skb_network_header(skb)[IP6CB(skb)->nhoff],
skb_network_header(skb)[IP6CB(skb)->nhoff] =
!(IP6CB(skb)->flags & IP6SKB_REROUTED));
IP6CB(skb)->flags |= IP6SKB_REROUTED;
return skb_network_header(skb)[IP6CB(skb)->nhoff];
if (IP6CB(skb)->frag_max_size) {
if (IP6CB(skb)->frag_max_size > mtu)
memset(IP6CB(skb), 0, sizeof(struct inet6_skb_parm));
*mru = IP6CB(skb)->frag_max_size;
IP6CB(skb)->iif = skb->dev->ifindex;
IP6CB(skb)->flags = IP6SKB_FORWARDED;
IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr);
else if (!(IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED) &&
if (IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED)
IP6CB(skb)->frag_max_size = mru;
IP6CB(skb)->frag_max_size = mru;
return xfrmi_input(skb, skb_network_header(skb)[IP6CB(skb)->nhoff],
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
BUILD_BUG_ON(sizeof(*IP6CB(skb)) > SKB_GSO_CB_OFFSET);
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
IP6CB(skb)->flags |= IP6SKB_XFRM_TRANSFORMED;
if (IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED)