Lines Matching refs:srh

16 	struct ipv6_rpl_sr_hdr srh[0];  member
39 static bool rpl_validate_srh(struct net *net, struct ipv6_rpl_sr_hdr *srh, in rpl_validate_srh() argument
44 if ((srh->hdrlen << 3) != seglen) in rpl_validate_srh()
48 if (!srh->segments_left || in rpl_validate_srh()
49 (srh->segments_left * sizeof(struct in6_addr)) != seglen) in rpl_validate_srh()
52 if (srh->cmpri || srh->cmpre) in rpl_validate_srh()
55 err = ipv6_chk_rpl_srh_loop(net, srh->rpl_segaddr, in rpl_validate_srh()
56 srh->segments_left); in rpl_validate_srh()
60 if (ipv6_addr_type(&srh->rpl_segaddr[srh->segments_left - 1]) & in rpl_validate_srh()
74 struct ipv6_rpl_sr_hdr *srh; in rpl_build_state() local
89 srh = nla_data(tb[RPL_IPTUNNEL_SRH]); in rpl_build_state()
92 if (srh_len < sizeof(*srh)) in rpl_build_state()
96 if (!rpl_validate_srh(net, srh, srh_len - sizeof(*srh))) in rpl_build_state()
111 memcpy(&rlwt->tuninfo.srh, srh, srh_len); in rpl_build_state()
128 const struct ipv6_rpl_sr_hdr *srh) in rpl_do_srh_inline() argument
139 buf = kcalloc(struct_size(srh, segments.addr, srh->segments_left), 2, GFP_ATOMIC); in rpl_do_srh_inline()
144 csrh = (struct ipv6_rpl_sr_hdr *)(buf + ((srh->hdrlen + 1) << 3)); in rpl_do_srh_inline()
146 memcpy(isrh, srh, sizeof(*isrh)); in rpl_do_srh_inline()
147 memcpy(isrh->rpl_segaddr, &srh->rpl_segaddr[1], in rpl_do_srh_inline()
148 (srh->segments_left - 1) * 16); in rpl_do_srh_inline()
149 isrh->rpl_segaddr[srh->segments_left - 1] = oldhdr->daddr; in rpl_do_srh_inline()
151 ipv6_rpl_srh_compress(csrh, isrh, &srh->rpl_segaddr[0], in rpl_do_srh_inline()
177 hdr->daddr = srh->rpl_segaddr[0]; in rpl_do_srh_inline()
199 return rpl_do_srh_inline(skb, rlwt, tinfo->srh); in rpl_do_srh()
304 len = RPL_IPTUNNEL_SRH_SIZE(tuninfo->srh); in nla_put_rpl_srh()
311 memcpy(data, tuninfo->srh, len); in nla_put_rpl_srh()
331 return nla_total_size(RPL_IPTUNNEL_SRH_SIZE(tuninfo->srh)); in rpl_encap_nlsize()
338 int len = RPL_IPTUNNEL_SRH_SIZE(a_hdr->srh); in rpl_encap_cmp()
340 if (len != RPL_IPTUNNEL_SRH_SIZE(b_hdr->srh)) in rpl_encap_cmp()