IPCB
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | IPSKB_REROUTED);
IPCB(skb)->flags |= IPSKB_L3SLAVE;
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
if (!(IPCB(skb)->flags & IPSKB_REROUTED))
!(IPCB(skb)->flags & IPSKB_REROUTED));
if (!(IPCB(skb)->flags & IPSKB_REROUTED))
IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED)
__icmp_send(skb_in, type, code, info, IPCB(skb_in));
if (skb && ipv4_l3mdev_skb(IPCB(skb)->flags))
return IPCB(skb)->iif;
bool forwarding = IPCB(skb)->flags & IPSKB_FORWARDED;
return __ip_options_echo(net, dopt, skb, &IPCB(skb)->opt);
return IPCB(skb)->flags & IPSKB_NOPOLICY;
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
nf_bridge->frag_max_size = IPCB(skb)->frag_max_size;
nf_bridge->frag_max_size = IPCB(skb)->frag_max_size;
IPCB(skb)->frag_max_size = nf_bridge->frag_max_size;
(IPCB(skb)->frag_max_size &&
IPCB(skb)->frag_max_size > mtu))) {
IPCB(skb)->frag_max_size = nf_bridge->frag_max_size;
br_skb_cb_restore(skb, &cb, IPCB(skb)->frag_max_size);
struct ip_options *opt = &IPCB(skb)->opt;
struct ip_options *opt = &IPCB(skb)->opt;
dev = dev_get_by_index_rcu(dev_net(dev), IPCB(skb)->iif);
if (IPCB(skb)->opt.router_alert && ip_call_ra_chain(skb))
IPCB(skb)->flags |= IPSKB_FORWARDED;
if (IPCB(skb)->flags & IPSKB_DOREDIRECT && !opt->srr &&
if (unlikely(IPCB(skb)->frag_max_size > mtu))
struct ip_options *opt = &(IPCB(skb)->opt);
struct ip_options *opt = &(IPCB(skb)->opt);
if (!(IPCB(skb)->flags & IPSKB_FRAG_COMPLETE) &&
IPCB(skb)->frag_max_size = max(qp->max_df_size, qp->q.max_size);
IPCB(skb)->flags |= IPSKB_FRAG_PMTU;
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
opt = &(IPCB(skb)->opt);
IPCB(skb)->flags |= IPSKB_NOPOLICY;
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
IPCB(skb)->iif = skb->skb_iif;
IPCB(skb)->flags & IPSKB_MULTIPATH)
struct ip_options *opt = &(IPCB(skb)->opt);
memcpy(&(IPCB(skb)->opt), opt, sizeof(struct ip_options));
opt = &(IPCB(skb)->opt);
struct ip_options *opt = &(IPCB(skb)->opt);
struct ip_options *opt = &(IPCB(skb)->opt);
BUILD_BUG_ON(sizeof(*IPCB(skb)) > SKB_GSO_CB_OFFSET);
IPCB(skb)->flags |= IPSKB_REROUTED;
if (skb->len > mtu || IPCB(skb)->frag_max_size)
!(IPCB(skb)->flags & IPSKB_FORWARDED))
!(IPCB(skb)->flags & IPSKB_REROUTED));
!(IPCB(skb)->flags & IPSKB_REROUTED));
(IPCB(skb)->frag_max_size &&
IPCB(skb)->frag_max_size > mtu))) {
IPCB(to)->flags = IPCB(from)->flags;
if (IPCB(skb)->frag_max_size && IPCB(skb)->frag_max_size < mtu)
mtu = IPCB(skb)->frag_max_size;
IPCB(skb)->flags |= IPSKB_FRAG_COMPLETE;
IPCB(iter.frag)->flags = IPCB(skb)->flags;
if (first_frag && IPCB(skb)->opt.optlen) {
IPCB(iter.frag)->opt.optlen =
IPCB(skb)->opt.optlen;
ip_frag_init(skb, hlen, ll_rs, mtu, IPCB(skb)->flags & IPSKB_FRAG_PMTU,
if (IPCB(skb)->frag_max_size == 0)
val = IPCB(skb)->frag_max_size;
bool l3slave = ipv4_l3mdev_skb(IPCB(skb)->flags);
if (IPCB(skb)->opt.optlen == 0)
put_cmsg(msg, SOL_IP, IP_RECVOPTS, IPCB(skb)->opt.optlen,
if (IPCB(skb)->opt.optlen == 0)
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
IPCB(skb)->flags = ipcb_flags;
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
struct ip_options *opt = &(IPCB(skb)->opt);
IPCB(skb)->flags |= IPSKB_FORWARDED;
dev = dev_get_by_index_rcu(net, IPCB(skb)->iif);
if (IPCB(skb)->flags & IPSKB_FORWARDED)
if (IPCB(skb)->opt.router_alert) {
if (IPCB(skb)->flags & IPSKB_FORWARDED)
if (!(IPCB(skb)->flags & IPSKB_MCROUTE))
if (!(IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED) &&
IPCB(skb)->flags |= IPSKB_NOPOLICY;
IPCB(skb)->flags |= IPSKB_DOREDIRECT;
IPCB(skb)->flags |= IPSKB_NOPOLICY;
IPCB(skb)->flags |= IPSKB_MULTIPATH;
IPCB(skb)->flags |= IPSKB_NOPOLICY;
if (IPCB(skb)->flags & IPSKB_DOREDIRECT)
dev = __dev_get_by_index(dev_net(skb->dev), IPCB(skb)->iif);
memmove(IPCB(skb), &TCP_SKB_CB(skb)->header.h4,
memmove(&TCP_SKB_CB(skb)->header.h4, IPCB(skb),
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
IPCB(skb)->flags |= IPSKB_REROUTED;
!(IPCB(skb)->flags & IPSKB_REROUTED));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
IPCB(skb)->flags = 0;
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
IPCB(skb)->flags = 0;
memset(IPCB(skb2), 0, sizeof(*IPCB(skb2)));
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
dev = dev_get_by_index_rcu(net, IPCB(skb)->iif);
dev = dev_get_by_index_rcu(net, IPCB(skb)->iif);
sifindex = netif_is_l3_master(skb->dev) ? IPCB(skb)->iif : 0;
sifindex = netif_is_l3_master(skb->dev) ? IPCB(skb)->iif : 0;
IPCB(skb)->flags = 0;
sifindex = netif_is_l3_master(skb->dev) ? IPCB(skb)->iif : 0;
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
*mru = IPCB(skb)->frag_max_size;
IPCB(skb)->iif = skb->dev->ifindex;
IPCB(skb)->flags = IPSKB_FORWARDED;
if (IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED)
else if (!(IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED) &&
opt = &(IPCB(skb)->opt);
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
IPCB(skb)->frag_max_size = mru;
IPCB(skb)->frag_max_size = mru;
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
IPCB(skb)->flags |= IPSKB_XFRM_TUNNEL_SIZE;
IPCB(skb)->flags |= IPSKB_XFRM_TUNNEL_SIZE;
BUILD_BUG_ON(sizeof(*IPCB(skb)) > SKB_GSO_CB_OFFSET);
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
IPCB(skb)->flags |= IPSKB_XFRM_TRANSFORMED;
if (IPCB(skb)->flags & IPSKB_XFRM_TUNNEL_SIZE)
if (IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED)