Home | History | Annotate | Download | only in dhcpcd

Lines Matching refs:ifp

166 ipv6rs_makeprobe(struct interface *ifp)
171 free(ifp->rs);
172 ifp->rslen = sizeof(*rs) + ROUNDUP8(ifp->hwlen + 2);
173 ifp->rs = xzalloc(ifp->rslen);
174 if (ifp->rs == NULL)
176 rs = (struct nd_router_solicit *)ifp->rs;
181 nd = (struct nd_opt_hdr *)(ifp->rs + sizeof(*rs));
183 nd->nd_opt_len = (ROUNDUP8(ifp->hwlen + 2)) >> 3;
184 memcpy(nd + 1, ifp->hwaddr, ifp->hwlen);
191 struct interface *ifp = arg;
198 //dst.sin6_scope_id = ifp->linkid;
200 ipv6rs_makeprobe(ifp);
202 sndhdr.msg_iov[0].iov_base = ifp->rs;
203 sndhdr.msg_iov[0].iov_len = ifp->rslen;
211 pi.ipi6_ifindex = if_nametoindex(ifp->name);
221 syslog(LOG_INFO, "%s: sending IPv6 Router Solicitation", ifp->name);
223 syslog(LOG_ERR, "%s: sendmsg: %m", ifp->name);
225 if (ifp->rsprobes++ < MAX_RTR_SOLICITATIONS)
227 ipv6rs_sendprobe, ifp);
229 syslog(LOG_INFO, "%s: no IPv6 Routers available", ifp->name);
233 ipv6rs_sort(struct interface *ifp)
237 if (ifp->ras == NULL || ifp->ras->next == NULL)
241 sorted = ifp->ras;
242 ifp->ras = ifp->ras->next;
244 for (rap = ifp->ras; rap && (ran = rap->next, 1); rap = ran) {
275 struct interface *ifp;
346 for (ifp = ifaces; ifp; ifp = ifp->next)
347 if (if_nametoindex(ifp->name) == (unsigned int)pkt.ipi6_ifindex)
349 if (ifp == NULL) {
354 for (rap = ifp->ras; rap; rap = rap->next) {
371 ifp->name, sfrom);
376 rap->next = ifp->ras;
378 ifp->ras = rap;
402 syslog(LOG_ERR, "%s: Short option", ifp->name);
408 syslog(LOG_ERR, "%s: zero length option", ifp->name);
413 "%s: Option length exceeds message", ifp->name);
424 ifp->name);
429 ifp->name);
436 "%s: invalid prefix in RA", ifp->name);
473 ifp->name);
500 ifp->name);
547 ipv6rs_sort(ifp);
548 run_script_reason(ifp, options & DHCPCD_TEST ? "TEST" : "ROUTERADVERT");
553 if (!(ifp->state->options->options & DHCPCD_IPV6RA_REQRDNSS))
558 delete_timeout(NULL, ifp);
559 ipv6rs_expire(ifp);
565 ifp->name);
569 ipv6rs_env(char **env, const char *prefix, const struct interface *ifp)
581 for (rap = ifp->ras, i = 1; rap; rap = rap->next, i++) {
665 ipv6rs_free(struct interface *ifp)
669 free(ifp->rs);
670 ifp->rs = NULL;
671 for (rap = ifp->ras; rap && (ran = rap->next, 1); rap = ran) {
676 ifp->ras = NULL;
682 struct interface *ifp;
689 ifp = arg;
695 for (rap = ifp->ras, ral = NULL;
704 ifp->name, rap->sfrom);
709 ifp->ras = ran;
727 ifp->name, rap->sfrom, rao->type);
742 add_timeout_tv(&next, ipv6rs_expire, ifp);
744 run_script_reason(ifp, "ROUTERADVERT");
748 ipv6rs_start(struct interface *ifp)
751 delete_timeout(NULL, ifp);
755 ipv6rs_makeprobe(ifp);
756 if (ifp->rs == NULL)
759 ifp->rsprobes = 0;
760 ipv6rs_sendprobe(ifp);