Lines Matching refs:hdr
133 struct ipv6hdr *hdr, *inner_hdr; in __seg6_do_srh_encap() local
139 tot_len = hdrlen + sizeof(*hdr); in __seg6_do_srh_encap()
151 hdr = ipv6_hdr(skb); in __seg6_do_srh_encap()
159 ip6_flow_hdr(hdr, ip6_tclass(ip6_flowinfo(inner_hdr)), in __seg6_do_srh_encap()
161 hdr->hop_limit = inner_hdr->hop_limit; in __seg6_do_srh_encap()
163 ip6_flow_hdr(hdr, 0, flowlabel); in __seg6_do_srh_encap()
164 hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb)); in __seg6_do_srh_encap()
177 hdr->nexthdr = NEXTHDR_ROUTING; in __seg6_do_srh_encap()
179 isrh = (void *)hdr + sizeof(*hdr); in __seg6_do_srh_encap()
184 hdr->daddr = isrh->segments[isrh->first_segment]; in __seg6_do_srh_encap()
185 set_tun_src(net, dev, &hdr->daddr, &hdr->saddr); in __seg6_do_srh_encap()
189 err = seg6_push_hmac(net, &hdr->saddr, isrh); in __seg6_do_srh_encap()
195 hdr->payload_len = htons(skb->len - sizeof(struct ipv6hdr)); in __seg6_do_srh_encap()
197 skb_postpush_rcsum(skb, hdr, tot_len); in __seg6_do_srh_encap()
218 struct ipv6hdr *hdr, *inner_hdr; in seg6_do_srh_encap_red() local
252 hdr = ipv6_hdr(skb); in seg6_do_srh_encap_red()
256 ip6_flow_hdr(hdr, ip6_tclass(ip6_flowinfo(inner_hdr)), in seg6_do_srh_encap_red()
258 hdr->hop_limit = inner_hdr->hop_limit; in seg6_do_srh_encap_red()
260 ip6_flow_hdr(hdr, 0, flowlabel); in seg6_do_srh_encap_red()
261 hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb)); in seg6_do_srh_encap_red()
270 hdr->daddr = osrh->segments[first_seg]; in seg6_do_srh_encap_red()
273 hdr->nexthdr = proto; in seg6_do_srh_encap_red()
275 set_tun_src(net, dev, &hdr->daddr, &hdr->saddr); in seg6_do_srh_encap_red()
281 hdr->nexthdr = NEXTHDR_ROUTING; in seg6_do_srh_encap_red()
282 isrh = (void *)hdr + sizeof(struct ipv6hdr); in seg6_do_srh_encap_red()
311 set_tun_src(net, dev, &hdr->daddr, &hdr->saddr); in seg6_do_srh_encap_red()
315 err = seg6_push_hmac(net, &hdr->saddr, isrh); in seg6_do_srh_encap_red()
322 hdr->payload_len = htons(skb->len - sizeof(struct ipv6hdr)); in seg6_do_srh_encap_red()
324 skb_postpush_rcsum(skb, hdr, tot_len); in seg6_do_srh_encap_red()
332 struct ipv6hdr *hdr, *oldhdr; in __seg6_do_srh_inline() local
352 hdr = ipv6_hdr(skb); in __seg6_do_srh_inline()
354 memmove(hdr, oldhdr, sizeof(*hdr)); in __seg6_do_srh_inline()
356 isrh = (void *)hdr + sizeof(*hdr); in __seg6_do_srh_inline()
359 isrh->nexthdr = hdr->nexthdr; in __seg6_do_srh_inline()
360 hdr->nexthdr = NEXTHDR_ROUTING; in __seg6_do_srh_inline()
362 isrh->segments[0] = hdr->daddr; in __seg6_do_srh_inline()
363 hdr->daddr = isrh->segments[isrh->first_segment]; in __seg6_do_srh_inline()
369 err = seg6_push_hmac(net, &hdr->saddr, isrh); in __seg6_do_srh_inline()
375 hdr->payload_len = htons(skb->len - sizeof(struct ipv6hdr)); in __seg6_do_srh_inline()
377 skb_postpush_rcsum(skb, hdr, sizeof(struct ipv6hdr) + hdrlen); in __seg6_do_srh_inline()
575 struct ipv6hdr *hdr = ipv6_hdr(skb); in seg6_output_core() local
579 fl6.daddr = hdr->daddr; in seg6_output_core()
580 fl6.saddr = hdr->saddr; in seg6_output_core()
581 fl6.flowlabel = ip6_flowinfo(hdr); in seg6_output_core()
583 fl6.flowi6_proto = hdr->nexthdr; in seg6_output_core()