Lines Matching refs:hdr

132 	struct ipv6hdr *hdr, *inner_hdr;
138 tot_len = hdrlen + sizeof(*hdr);
150 hdr = ipv6_hdr(skb);
158 ip6_flow_hdr(hdr, ip6_tclass(ip6_flowinfo(inner_hdr)),
160 hdr->hop_limit = inner_hdr->hop_limit;
162 ip6_flow_hdr(hdr, 0, flowlabel);
163 hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
176 hdr->nexthdr = NEXTHDR_ROUTING;
178 isrh = (void *)hdr + sizeof(*hdr);
183 hdr->daddr = isrh->segments[isrh->first_segment];
184 set_tun_src(net, dst->dev, &hdr->daddr, &hdr->saddr);
188 err = seg6_push_hmac(net, &hdr->saddr, isrh);
194 hdr->payload_len = htons(skb->len - sizeof(struct ipv6hdr));
196 skb_postpush_rcsum(skb, hdr, tot_len);
209 struct ipv6hdr *hdr, *inner_hdr;
243 hdr = ipv6_hdr(skb);
247 ip6_flow_hdr(hdr, ip6_tclass(ip6_flowinfo(inner_hdr)),
249 hdr->hop_limit = inner_hdr->hop_limit;
251 ip6_flow_hdr(hdr, 0, flowlabel);
252 hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
261 hdr->daddr = osrh->segments[first_seg];
264 hdr->nexthdr = proto;
266 set_tun_src(net, dst->dev, &hdr->daddr, &hdr->saddr);
272 hdr->nexthdr = NEXTHDR_ROUTING;
273 isrh = (void *)hdr + sizeof(struct ipv6hdr);
302 set_tun_src(net, dst->dev, &hdr->daddr, &hdr->saddr);
306 err = seg6_push_hmac(net, &hdr->saddr, isrh);
313 hdr->payload_len = htons(skb->len - sizeof(struct ipv6hdr));
315 skb_postpush_rcsum(skb, hdr, tot_len);
323 struct ipv6hdr *hdr, *oldhdr;
343 hdr = ipv6_hdr(skb);
345 memmove(hdr, oldhdr, sizeof(*hdr));
347 isrh = (void *)hdr + sizeof(*hdr);
350 isrh->nexthdr = hdr->nexthdr;
351 hdr->nexthdr = NEXTHDR_ROUTING;
353 isrh->segments[0] = hdr->daddr;
354 hdr->daddr = isrh->segments[isrh->first_segment];
360 err = seg6_push_hmac(net, &hdr->saddr, isrh);
366 hdr->payload_len = htons(skb->len - sizeof(struct ipv6hdr));
368 skb_postpush_rcsum(skb, hdr, sizeof(struct ipv6hdr) + hdrlen);
543 struct ipv6hdr *hdr = ipv6_hdr(skb);
547 fl6.daddr = hdr->daddr;
548 fl6.saddr = hdr->saddr;
549 fl6.flowlabel = ip6_flowinfo(hdr);
551 fl6.flowi6_proto = hdr->nexthdr;