Lines Matching refs:srh

128 	struct ipv6_sr_hdr *srh;  member
155 struct ipv6_sr_hdr *srh; in get_and_validate_srh() local
157 srh = seg6_get_srh(skb, IP6_FH_F_SKIP_RH); in get_and_validate_srh()
158 if (!srh) in get_and_validate_srh()
166 return srh; in get_and_validate_srh()
171 struct ipv6_sr_hdr *srh; in decap_and_validate() local
174 srh = seg6_get_srh(skb, 0); in decap_and_validate()
175 if (srh && srh->segments_left > 0) in decap_and_validate()
179 if (srh && !seg6_hmac_validate_skb(skb)) in decap_and_validate()
199 static void advance_nextseg(struct ipv6_sr_hdr *srh, struct in6_addr *daddr) in advance_nextseg() argument
203 srh->segments_left--; in advance_nextseg()
204 addr = srh->segments + srh->segments_left; in advance_nextseg()
275 struct ipv6_sr_hdr *srh; in input_action_end() local
277 srh = get_and_validate_srh(skb); in input_action_end()
278 if (!srh) in input_action_end()
281 advance_nextseg(srh, &ipv6_hdr(skb)->daddr); in input_action_end()
295 struct ipv6_sr_hdr *srh; in input_action_end_x() local
297 srh = get_and_validate_srh(skb); in input_action_end_x()
298 if (!srh) in input_action_end_x()
301 advance_nextseg(srh, &ipv6_hdr(skb)->daddr); in input_action_end_x()
314 struct ipv6_sr_hdr *srh; in input_action_end_t() local
316 srh = get_and_validate_srh(skb); in input_action_end_t()
317 if (!srh) in input_action_end_t()
320 advance_nextseg(srh, &ipv6_hdr(skb)->daddr); in input_action_end_t()
816 struct ipv6_sr_hdr *srh; in input_action_end_b6() local
819 srh = get_and_validate_srh(skb); in input_action_end_b6()
820 if (!srh) in input_action_end_b6()
823 err = seg6_do_srh_inline(skb, slwt->srh); in input_action_end_b6()
843 struct ipv6_sr_hdr *srh; in input_action_end_b6_encap() local
846 srh = get_and_validate_srh(skb); in input_action_end_b6_encap()
847 if (!srh) in input_action_end_b6_encap()
850 advance_nextseg(srh, &ipv6_hdr(skb)->daddr); in input_action_end_b6_encap()
855 err = seg6_do_srh_encap(skb, slwt->srh, IPPROTO_IPV6); in input_action_end_b6_encap()
877 struct ipv6_sr_hdr *srh = srh_state->srh; in seg6_bpf_has_valid_srh() local
879 if (unlikely(srh == NULL)) in seg6_bpf_has_valid_srh()
886 srh->hdrlen = (u8)(srh_state->hdrlen >> 3); in seg6_bpf_has_valid_srh()
887 if (!seg6_validate_srh(srh, (srh->hdrlen + 1) << 3, true)) in seg6_bpf_has_valid_srh()
901 struct ipv6_sr_hdr *srh; in input_action_end_bpf() local
904 srh = get_and_validate_srh(skb); in input_action_end_bpf()
905 if (!srh) { in input_action_end_bpf()
909 advance_nextseg(srh, &ipv6_hdr(skb)->daddr); in input_action_end_bpf()
915 srh_state->srh = srh; in input_action_end_bpf()
916 srh_state->hdrlen = srh->hdrlen << 3; in input_action_end_bpf()
935 if (srh_state->srh && !seg6_bpf_has_valid_srh(skb)) in input_action_end_bpf()
1139 struct ipv6_sr_hdr *srh; in parse_nla_srh() local
1142 srh = nla_data(attrs[SEG6_LOCAL_SRH]); in parse_nla_srh()
1146 if (len < sizeof(*srh) + sizeof(struct in6_addr)) in parse_nla_srh()
1149 if (!seg6_validate_srh(srh, len, false)) in parse_nla_srh()
1152 slwt->srh = kmemdup(srh, len, GFP_KERNEL); in parse_nla_srh()
1153 if (!slwt->srh) in parse_nla_srh()
1163 struct ipv6_sr_hdr *srh; in put_nla_srh() local
1167 srh = slwt->srh; in put_nla_srh()
1168 len = (srh->hdrlen + 1) << 3; in put_nla_srh()
1174 memcpy(nla_data(nla), srh, len); in put_nla_srh()
1181 int len = (a->srh->hdrlen + 1) << 3; in cmp_nla_srh()
1183 if (len != ((b->srh->hdrlen + 1) << 3)) in cmp_nla_srh()
1186 return memcmp(a->srh, b->srh, len); in cmp_nla_srh()
1191 kfree(slwt->srh); in destroy_attr_srh()
1873 nlsize += nla_total_size((slwt->srh->hdrlen + 1) << 3); in seg6_local_get_encap_size()