Lines Matching refs:rthdr
72 struct ip6_rthdr0 *rthdr; in inet6_rth_init() local
82 rthdr = (struct ip6_rthdr0 *)bp; in inet6_rth_init()
83 rthdr->ip6r0_nxt = 0; in inet6_rth_init()
84 rthdr->ip6r0_len = (segments * 2); in inet6_rth_init()
85 rthdr->ip6r0_type = type; in inet6_rth_init()
86 rthdr->ip6r0_segleft = 0; /* Incremented by rthdr_add */ in inet6_rth_init()
87 *(uint32_t *)&rthdr->ip6r0_reserved = 0; in inet6_rth_init()
98 struct ip6_rthdr0 *rthdr; in inet6_rth_add() local
101 rthdr = (struct ip6_rthdr0 *)bp; in inet6_rth_add()
102 if ((rthdr->ip6r0_segleft + 1) * 2 > rthdr->ip6r0_len) { in inet6_rth_add()
106 addrs = (struct in6_addr *)((char *)rthdr + sizeof (*rthdr)); in inet6_rth_add()
107 addrs[rthdr->ip6r0_segleft++] = *addr; in inet6_rth_add()
150 struct ip6_rthdr0 *rthdr; in inet6_rth_segments() local
152 rthdr = (struct ip6_rthdr0 *)bp; in inet6_rth_segments()
153 if (rthdr->ip6r0_type == 0) { in inet6_rth_segments()
154 if (rthdr->ip6r0_len > MAX_RTHDR0_SEGMENTS * 2) { in inet6_rth_segments()
157 return (rthdr->ip6r0_len / 2); in inet6_rth_segments()
171 struct ip6_rthdr0 *rthdr; in inet6_rth_getaddr() local
174 rthdr = (struct ip6_rthdr0 *)bp; in inet6_rth_getaddr()
175 if (index >= rthdr->ip6r0_len/2 || index < 0) in inet6_rth_getaddr()
178 rv = (struct in6_addr *)((char *)rthdr + sizeof (*rthdr)); in inet6_rth_getaddr()