Lines Matching refs:skb
65 bool (*func)(struct sk_buff *skb, int offset);
74 static bool ip6_tlvopt_unknown(struct sk_buff *skb, int optoff, in ip6_tlvopt_unknown() argument
88 switch ((skb_network_header(skb)[optoff] & 0xC0) >> 6) { in ip6_tlvopt_unknown()
99 if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) in ip6_tlvopt_unknown()
103 icmpv6_param_prob(skb, ICMPV6_UNK_OPTION, optoff); in ip6_tlvopt_unknown()
108 kfree_skb(skb); in ip6_tlvopt_unknown()
115 struct sk_buff *skb, in ip6_parse_tlv() argument
118 int len = (skb_transport_header(skb)[1] + 1) << 3; in ip6_parse_tlv()
119 const unsigned char *nh = skb_network_header(skb); in ip6_parse_tlv()
120 int off = skb_network_header_len(skb); in ip6_parse_tlv()
131 if (skb_transport_offset(skb) + len > skb_headlen(skb)) in ip6_parse_tlv()
181 if (curr->func(skb, off) == false) in ip6_parse_tlv()
187 !ip6_tlvopt_unknown(skb, off, disallow_unknowns)) in ip6_parse_tlv()
199 kfree_skb(skb); in ip6_parse_tlv()
208 static bool ipv6_dest_hao(struct sk_buff *skb, int optoff) in ipv6_dest_hao() argument
211 struct inet6_skb_parm *opt = IP6CB(skb); in ipv6_dest_hao()
212 struct ipv6hdr *ipv6h = ipv6_hdr(skb); in ipv6_dest_hao()
222 hao = (struct ipv6_destopt_hao *)(skb_network_header(skb) + optoff); in ipv6_dest_hao()
236 ret = xfrm6_input_addr(skb, (xfrm_address_t *)&ipv6h->daddr, in ipv6_dest_hao()
241 if (skb_cloned(skb)) { in ipv6_dest_hao()
242 if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) in ipv6_dest_hao()
246 hao = (struct ipv6_destopt_hao *)(skb_network_header(skb) + in ipv6_dest_hao()
248 ipv6h = ipv6_hdr(skb); in ipv6_dest_hao()
251 if (skb->ip_summed == CHECKSUM_COMPLETE) in ipv6_dest_hao()
252 skb->ip_summed = CHECKSUM_NONE; in ipv6_dest_hao()
256 if (skb->tstamp == 0) in ipv6_dest_hao()
257 __net_timestamp(skb); in ipv6_dest_hao()
262 kfree_skb(skb); in ipv6_dest_hao()
277 static int ipv6_destopt_rcv(struct sk_buff *skb) in ipv6_destopt_rcv() argument
279 struct inet6_dev *idev = __in6_dev_get(skb->dev); in ipv6_destopt_rcv()
280 struct inet6_skb_parm *opt = IP6CB(skb); in ipv6_destopt_rcv()
284 struct dst_entry *dst = skb_dst(skb); in ipv6_destopt_rcv()
285 struct net *net = dev_net(skb->dev); in ipv6_destopt_rcv()
288 if (!pskb_may_pull(skb, skb_transport_offset(skb) + 8) || in ipv6_destopt_rcv()
289 !pskb_may_pull(skb, (skb_transport_offset(skb) + in ipv6_destopt_rcv()
290 ((skb_transport_header(skb)[1] + 1) << 3)))) { in ipv6_destopt_rcv()
294 kfree_skb(skb); in ipv6_destopt_rcv()
298 extlen = (skb_transport_header(skb)[1] + 1) << 3; in ipv6_destopt_rcv()
302 opt->lastopt = opt->dst1 = skb_network_header_len(skb); in ipv6_destopt_rcv()
307 if (ip6_parse_tlv(tlvprocdestopt_lst, skb, in ipv6_destopt_rcv()
309 skb->transport_header += extlen; in ipv6_destopt_rcv()
310 opt = IP6CB(skb); in ipv6_destopt_rcv()
323 static void seg6_update_csum(struct sk_buff *skb) in seg6_update_csum() argument
333 hdr = (struct ipv6_sr_hdr *)skb_transport_header(skb); in seg6_update_csum()
344 update_csum_diff4(skb, from, to); in seg6_update_csum()
348 update_csum_diff16(skb, (__be32 *)(&ipv6_hdr(skb)->daddr), in seg6_update_csum()
352 static int ipv6_srh_rcv(struct sk_buff *skb) in ipv6_srh_rcv() argument
354 struct inet6_skb_parm *opt = IP6CB(skb); in ipv6_srh_rcv()
355 struct net *net = dev_net(skb->dev); in ipv6_srh_rcv()
361 hdr = (struct ipv6_sr_hdr *)skb_transport_header(skb); in ipv6_srh_rcv()
363 idev = __in6_dev_get(skb->dev); in ipv6_srh_rcv()
370 kfree_skb(skb); in ipv6_srh_rcv()
375 if (!seg6_hmac_validate_skb(skb)) { in ipv6_srh_rcv()
376 kfree_skb(skb); in ipv6_srh_rcv()
386 skb_postpull_rcsum(skb, skb_network_header(skb), in ipv6_srh_rcv()
387 skb_network_header_len(skb)); in ipv6_srh_rcv()
389 if (!pskb_pull(skb, offset)) { in ipv6_srh_rcv()
390 kfree_skb(skb); in ipv6_srh_rcv()
393 skb_postpull_rcsum(skb, skb_transport_header(skb), in ipv6_srh_rcv()
396 skb_reset_network_header(skb); in ipv6_srh_rcv()
397 skb_reset_transport_header(skb); in ipv6_srh_rcv()
398 skb->encapsulation = 0; in ipv6_srh_rcv()
400 __skb_tunnel_rx(skb, skb->dev, net); in ipv6_srh_rcv()
402 netif_rx(skb); in ipv6_srh_rcv()
406 opt->srcrt = skb_network_header_len(skb); in ipv6_srh_rcv()
408 skb->transport_header += (hdr->hdrlen + 1) << 3; in ipv6_srh_rcv()
409 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_srh_rcv()
416 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, in ipv6_srh_rcv()
418 skb_network_header(skb))); in ipv6_srh_rcv()
422 if (skb_cloned(skb)) { in ipv6_srh_rcv()
423 if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) { in ipv6_srh_rcv()
424 __IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), in ipv6_srh_rcv()
426 kfree_skb(skb); in ipv6_srh_rcv()
431 hdr = (struct ipv6_sr_hdr *)skb_transport_header(skb); in ipv6_srh_rcv()
436 skb_push(skb, sizeof(struct ipv6hdr)); in ipv6_srh_rcv()
438 if (skb->ip_summed == CHECKSUM_COMPLETE) in ipv6_srh_rcv()
439 seg6_update_csum(skb); in ipv6_srh_rcv()
441 ipv6_hdr(skb)->daddr = *addr; in ipv6_srh_rcv()
443 skb_dst_drop(skb); in ipv6_srh_rcv()
445 ip6_route_input(skb); in ipv6_srh_rcv()
447 if (skb_dst(skb)->error) { in ipv6_srh_rcv()
448 dst_input(skb); in ipv6_srh_rcv()
452 if (skb_dst(skb)->dev->flags & IFF_LOOPBACK) { in ipv6_srh_rcv()
453 if (ipv6_hdr(skb)->hop_limit <= 1) { in ipv6_srh_rcv()
455 icmpv6_send(skb, ICMPV6_TIME_EXCEED, in ipv6_srh_rcv()
457 kfree_skb(skb); in ipv6_srh_rcv()
460 ipv6_hdr(skb)->hop_limit--; in ipv6_srh_rcv()
462 skb_pull(skb, sizeof(struct ipv6hdr)); in ipv6_srh_rcv()
466 dst_input(skb); in ipv6_srh_rcv()
471 static int ipv6_rpl_srh_rcv(struct sk_buff *skb) in ipv6_rpl_srh_rcv() argument
474 struct inet6_skb_parm *opt = IP6CB(skb); in ipv6_rpl_srh_rcv()
475 struct net *net = dev_net(skb->dev); in ipv6_rpl_srh_rcv()
485 idev = __in6_dev_get(skb->dev); in ipv6_rpl_srh_rcv()
492 kfree_skb(skb); in ipv6_rpl_srh_rcv()
497 hdr = (struct ipv6_rpl_sr_hdr *)skb_transport_header(skb); in ipv6_rpl_srh_rcv()
503 skb_postpull_rcsum(skb, skb_network_header(skb), in ipv6_rpl_srh_rcv()
504 skb_network_header_len(skb)); in ipv6_rpl_srh_rcv()
506 if (!pskb_pull(skb, offset)) { in ipv6_rpl_srh_rcv()
507 kfree_skb(skb); in ipv6_rpl_srh_rcv()
510 skb_postpull_rcsum(skb, skb_transport_header(skb), in ipv6_rpl_srh_rcv()
513 skb_reset_network_header(skb); in ipv6_rpl_srh_rcv()
514 skb_reset_transport_header(skb); in ipv6_rpl_srh_rcv()
515 skb->encapsulation = 0; in ipv6_rpl_srh_rcv()
517 __skb_tunnel_rx(skb, skb->dev, net); in ipv6_rpl_srh_rcv()
519 netif_rx(skb); in ipv6_rpl_srh_rcv()
523 opt->srcrt = skb_network_header_len(skb); in ipv6_rpl_srh_rcv()
525 skb->transport_header += (hdr->hdrlen + 1) << 3; in ipv6_rpl_srh_rcv()
526 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_rpl_srh_rcv()
531 if (!pskb_may_pull(skb, sizeof(*hdr))) { in ipv6_rpl_srh_rcv()
532 kfree_skb(skb); in ipv6_rpl_srh_rcv()
543 kfree_skb(skb); in ipv6_rpl_srh_rcv()
549 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, in ipv6_rpl_srh_rcv()
551 skb_network_header(skb))); in ipv6_rpl_srh_rcv()
555 if (skb_cloned(skb)) { in ipv6_rpl_srh_rcv()
556 if (pskb_expand_head(skb, IPV6_RPL_SRH_WORST_SWAP_SIZE, 0, in ipv6_rpl_srh_rcv()
558 __IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), in ipv6_rpl_srh_rcv()
560 kfree_skb(skb); in ipv6_rpl_srh_rcv()
564 err = skb_cow_head(skb, IPV6_RPL_SRH_WORST_SWAP_SIZE); in ipv6_rpl_srh_rcv()
566 kfree_skb(skb); in ipv6_rpl_srh_rcv()
571 hdr = (struct ipv6_rpl_sr_hdr *)skb_transport_header(skb); in ipv6_rpl_srh_rcv()
573 if (!pskb_may_pull(skb, ipv6_rpl_srh_size(n, hdr->cmpri, in ipv6_rpl_srh_rcv()
575 kfree_skb(skb); in ipv6_rpl_srh_rcv()
584 kfree_skb(skb); in ipv6_rpl_srh_rcv()
589 ipv6_rpl_srh_decompress(ohdr, hdr, &ipv6_hdr(skb)->daddr, n); in ipv6_rpl_srh_rcv()
592 if ((ipv6_addr_type(&ipv6_hdr(skb)->daddr) & IPV6_ADDR_MULTICAST) || in ipv6_rpl_srh_rcv()
594 kfree_skb(skb); in ipv6_rpl_srh_rcv()
601 icmpv6_send(skb, ICMPV6_PARAMPROB, 0, 0); in ipv6_rpl_srh_rcv()
602 kfree_skb(skb); in ipv6_rpl_srh_rcv()
607 addr = ipv6_hdr(skb)->daddr; in ipv6_rpl_srh_rcv()
608 ipv6_hdr(skb)->daddr = ohdr->rpl_segaddr[i]; in ipv6_rpl_srh_rcv()
611 ipv6_rpl_srh_compress(chdr, ohdr, &ipv6_hdr(skb)->daddr, n); in ipv6_rpl_srh_rcv()
613 oldhdr = ipv6_hdr(skb); in ipv6_rpl_srh_rcv()
615 skb_pull(skb, ((hdr->hdrlen + 1) << 3)); in ipv6_rpl_srh_rcv()
616 skb_postpull_rcsum(skb, oldhdr, in ipv6_rpl_srh_rcv()
618 skb_push(skb, ((chdr->hdrlen + 1) << 3) + sizeof(struct ipv6hdr)); in ipv6_rpl_srh_rcv()
619 skb_reset_network_header(skb); in ipv6_rpl_srh_rcv()
620 skb_mac_header_rebuild(skb); in ipv6_rpl_srh_rcv()
621 skb_set_transport_header(skb, sizeof(struct ipv6hdr)); in ipv6_rpl_srh_rcv()
623 memmove(ipv6_hdr(skb), oldhdr, sizeof(struct ipv6hdr)); in ipv6_rpl_srh_rcv()
624 memcpy(skb_transport_header(skb), chdr, (chdr->hdrlen + 1) << 3); in ipv6_rpl_srh_rcv()
626 ipv6_hdr(skb)->payload_len = htons(skb->len - sizeof(struct ipv6hdr)); in ipv6_rpl_srh_rcv()
627 skb_postpush_rcsum(skb, ipv6_hdr(skb), in ipv6_rpl_srh_rcv()
632 skb_dst_drop(skb); in ipv6_rpl_srh_rcv()
634 ip6_route_input(skb); in ipv6_rpl_srh_rcv()
636 if (skb_dst(skb)->error) { in ipv6_rpl_srh_rcv()
637 dst_input(skb); in ipv6_rpl_srh_rcv()
641 if (skb_dst(skb)->dev->flags & IFF_LOOPBACK) { in ipv6_rpl_srh_rcv()
642 if (ipv6_hdr(skb)->hop_limit <= 1) { in ipv6_rpl_srh_rcv()
644 icmpv6_send(skb, ICMPV6_TIME_EXCEED, in ipv6_rpl_srh_rcv()
646 kfree_skb(skb); in ipv6_rpl_srh_rcv()
649 ipv6_hdr(skb)->hop_limit--; in ipv6_rpl_srh_rcv()
651 skb_pull(skb, sizeof(struct ipv6hdr)); in ipv6_rpl_srh_rcv()
655 dst_input(skb); in ipv6_rpl_srh_rcv()
665 static int ipv6_rthdr_rcv(struct sk_buff *skb) in ipv6_rthdr_rcv() argument
667 struct inet6_dev *idev = __in6_dev_get(skb->dev); in ipv6_rthdr_rcv()
668 struct inet6_skb_parm *opt = IP6CB(skb); in ipv6_rthdr_rcv()
674 struct net *net = dev_net(skb->dev); in ipv6_rthdr_rcv()
677 idev = __in6_dev_get(skb->dev); in ipv6_rthdr_rcv()
681 if (!pskb_may_pull(skb, skb_transport_offset(skb) + 8) || in ipv6_rthdr_rcv()
682 !pskb_may_pull(skb, (skb_transport_offset(skb) + in ipv6_rthdr_rcv()
683 ((skb_transport_header(skb)[1] + 1) << 3)))) { in ipv6_rthdr_rcv()
685 kfree_skb(skb); in ipv6_rthdr_rcv()
689 hdr = (struct ipv6_rt_hdr *)skb_transport_header(skb); in ipv6_rthdr_rcv()
691 if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr) || in ipv6_rthdr_rcv()
692 skb->pkt_type != PACKET_HOST) { in ipv6_rthdr_rcv()
694 kfree_skb(skb); in ipv6_rthdr_rcv()
701 return ipv6_srh_rcv(skb); in ipv6_rthdr_rcv()
704 return ipv6_rpl_srh_rcv(skb); in ipv6_rthdr_rcv()
720 kfree_skb(skb); in ipv6_rthdr_rcv()
729 opt->lastopt = opt->srcrt = skb_network_header_len(skb); in ipv6_rthdr_rcv()
730 skb->transport_header += (hdr->hdrlen + 1) << 3; in ipv6_rthdr_rcv()
733 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_rthdr_rcv()
745 kfree_skb(skb); in ipv6_rthdr_rcv()
763 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, in ipv6_rthdr_rcv()
765 skb_network_header(skb))); in ipv6_rthdr_rcv()
772 if (skb_cloned(skb)) { in ipv6_rthdr_rcv()
774 if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) { in ipv6_rthdr_rcv()
775 __IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), in ipv6_rthdr_rcv()
777 kfree_skb(skb); in ipv6_rthdr_rcv()
780 hdr = (struct ipv6_rt_hdr *)skb_transport_header(skb); in ipv6_rthdr_rcv()
783 if (skb->ip_summed == CHECKSUM_COMPLETE) in ipv6_rthdr_rcv()
784 skb->ip_summed = CHECKSUM_NONE; in ipv6_rthdr_rcv()
795 if (xfrm6_input_addr(skb, (xfrm_address_t *)addr, in ipv6_rthdr_rcv()
796 (xfrm_address_t *)&ipv6_hdr(skb)->saddr, in ipv6_rthdr_rcv()
799 kfree_skb(skb); in ipv6_rthdr_rcv()
802 if (!ipv6_chk_home_addr(dev_net(skb_dst(skb)->dev), addr)) { in ipv6_rthdr_rcv()
804 kfree_skb(skb); in ipv6_rthdr_rcv()
815 kfree_skb(skb); in ipv6_rthdr_rcv()
820 *addr = ipv6_hdr(skb)->daddr; in ipv6_rthdr_rcv()
821 ipv6_hdr(skb)->daddr = daddr; in ipv6_rthdr_rcv()
823 skb_dst_drop(skb); in ipv6_rthdr_rcv()
824 ip6_route_input(skb); in ipv6_rthdr_rcv()
825 if (skb_dst(skb)->error) { in ipv6_rthdr_rcv()
826 skb_push(skb, skb->data - skb_network_header(skb)); in ipv6_rthdr_rcv()
827 dst_input(skb); in ipv6_rthdr_rcv()
831 if (skb_dst(skb)->dev->flags&IFF_LOOPBACK) { in ipv6_rthdr_rcv()
832 if (ipv6_hdr(skb)->hop_limit <= 1) { in ipv6_rthdr_rcv()
834 icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, in ipv6_rthdr_rcv()
836 kfree_skb(skb); in ipv6_rthdr_rcv()
839 ipv6_hdr(skb)->hop_limit--; in ipv6_rthdr_rcv()
843 skb_push(skb, skb->data - skb_network_header(skb)); in ipv6_rthdr_rcv()
844 dst_input(skb); in ipv6_rthdr_rcv()
849 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, in ipv6_rthdr_rcv()
850 (&hdr->type) - skb_network_header(skb)); in ipv6_rthdr_rcv()
908 static inline struct inet6_dev *ipv6_skb_idev(struct sk_buff *skb) in ipv6_skb_idev() argument
910 return skb_dst(skb) ? ip6_dst_idev(skb_dst(skb)) : __in6_dev_get(skb->dev); in ipv6_skb_idev()
913 static inline struct net *ipv6_skb_net(struct sk_buff *skb) in ipv6_skb_net() argument
915 return skb_dst(skb) ? dev_net(skb_dst(skb)->dev) : dev_net(skb->dev); in ipv6_skb_net()
920 static bool ipv6_hop_ra(struct sk_buff *skb, int optoff) in ipv6_hop_ra() argument
922 const unsigned char *nh = skb_network_header(skb); in ipv6_hop_ra()
925 IP6CB(skb)->flags |= IP6SKB_ROUTERALERT; in ipv6_hop_ra()
926 memcpy(&IP6CB(skb)->ra, nh + optoff + 2, sizeof(IP6CB(skb)->ra)); in ipv6_hop_ra()
931 kfree_skb(skb); in ipv6_hop_ra()
937 static bool ipv6_hop_jumbo(struct sk_buff *skb, int optoff) in ipv6_hop_jumbo() argument
939 const unsigned char *nh = skb_network_header(skb); in ipv6_hop_jumbo()
940 struct inet6_dev *idev = __in6_dev_get_safely(skb->dev); in ipv6_hop_jumbo()
941 struct net *net = ipv6_skb_net(skb); in ipv6_hop_jumbo()
954 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, optoff+2); in ipv6_hop_jumbo()
957 if (ipv6_hdr(skb)->payload_len) { in ipv6_hop_jumbo()
959 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, optoff); in ipv6_hop_jumbo()
963 if (pkt_len > skb->len - sizeof(struct ipv6hdr)) { in ipv6_hop_jumbo()
968 if (pskb_trim_rcsum(skb, pkt_len + sizeof(struct ipv6hdr))) in ipv6_hop_jumbo()
971 IP6CB(skb)->flags |= IP6SKB_JUMBOGRAM; in ipv6_hop_jumbo()
975 kfree_skb(skb); in ipv6_hop_jumbo()
981 static bool ipv6_hop_calipso(struct sk_buff *skb, int optoff) in ipv6_hop_calipso() argument
983 const unsigned char *nh = skb_network_header(skb); in ipv6_hop_calipso()
991 if (!calipso_validate(skb, nh + optoff)) in ipv6_hop_calipso()
997 kfree_skb(skb); in ipv6_hop_calipso()
1017 int ipv6_parse_hopopts(struct sk_buff *skb) in ipv6_parse_hopopts() argument
1019 struct inet6_skb_parm *opt = IP6CB(skb); in ipv6_parse_hopopts()
1020 struct net *net = dev_net(skb->dev); in ipv6_parse_hopopts()
1029 if (!pskb_may_pull(skb, sizeof(struct ipv6hdr) + 8) || in ipv6_parse_hopopts()
1030 !pskb_may_pull(skb, (sizeof(struct ipv6hdr) + in ipv6_parse_hopopts()
1031 ((skb_transport_header(skb)[1] + 1) << 3)))) { in ipv6_parse_hopopts()
1033 kfree_skb(skb); in ipv6_parse_hopopts()
1037 extlen = (skb_transport_header(skb)[1] + 1) << 3; in ipv6_parse_hopopts()
1042 if (ip6_parse_tlv(tlvprochopopt_lst, skb, in ipv6_parse_hopopts()
1044 skb->transport_header += extlen; in ipv6_parse_hopopts()
1045 opt = IP6CB(skb); in ipv6_parse_hopopts()
1062 static void ipv6_push_rthdr0(struct sk_buff *skb, u8 *proto, in ipv6_push_rthdr0() argument
1071 phdr = skb_push(skb, (ihdr->rt_hdr.hdrlen + 1) << 3); in ipv6_push_rthdr0()
1087 static void ipv6_push_rthdr4(struct sk_buff *skb, u8 *proto, in ipv6_push_rthdr4() argument
1097 sr_phdr = skb_push(skb, plen); in ipv6_push_rthdr4()
1120 if (skb->dev) in ipv6_push_rthdr4()
1121 net = dev_net(skb->dev); in ipv6_push_rthdr4()
1122 else if (skb->sk) in ipv6_push_rthdr4()
1123 net = sock_net(skb->sk); in ipv6_push_rthdr4()
1136 static void ipv6_push_rthdr(struct sk_buff *skb, u8 *proto, in ipv6_push_rthdr() argument
1144 ipv6_push_rthdr0(skb, proto, opt, addr_p, saddr); in ipv6_push_rthdr()
1147 ipv6_push_rthdr4(skb, proto, opt, addr_p, saddr); in ipv6_push_rthdr()
1154 static void ipv6_push_exthdr(struct sk_buff *skb, u8 *proto, u8 type, struct ipv6_opt_hdr *opt) in ipv6_push_exthdr() argument
1156 struct ipv6_opt_hdr *h = skb_push(skb, ipv6_optlen(opt)); in ipv6_push_exthdr()
1163 void ipv6_push_nfrag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, in ipv6_push_nfrag_opts() argument
1168 ipv6_push_rthdr(skb, proto, opt->srcrt, daddr, saddr); in ipv6_push_nfrag_opts()
1174 ipv6_push_exthdr(skb, proto, NEXTHDR_DEST, opt->dst0opt); in ipv6_push_nfrag_opts()
1177 ipv6_push_exthdr(skb, proto, NEXTHDR_HOP, opt->hopopt); in ipv6_push_nfrag_opts()
1180 void ipv6_push_frag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto) in ipv6_push_frag_opts() argument
1183 ipv6_push_exthdr(skb, proto, NEXTHDR_DEST, opt->dst1opt); in ipv6_push_frag_opts()