Home | History | Annotate | Download | only in netatalk

Lines Matching refs:aa

64 static int at_scrub(struct ifnet * ifp, struct at_ifaddr * aa);
85 struct at_ifaddr *aa = 0;
91 TAILQ_FOREACH(aa, &at_ifaddr, aa_list)
92 if (aa->aa_ifp == ifp)
108 * This may leave aa pointing to the first address on the
112 for (; aa; aa = TAILQ_NEXT(aa, aa_list))
113 if (aa->aa_ifp == ifp &&
114 sateqaddr(&aa->aa_addr, &ifra->ifra_addr))
121 if (cmd == SIOCDIFADDR && aa == 0)
141 * This may leave aa pointing to the first address on
144 for (; aa; aa = TAILQ_NEXT(aa, aa_list)) {
145 if (aa->aa_ifp == ifp &&
146 (aa->aa_flags & AFA_PHASE2) == 0)
152 * This may leave aa pointing to the first address on
155 for (; aa; aa = TAILQ_NEXT(aa, aa_list)) {
156 if (aa->aa_ifp == ifp &&
157 (aa->aa_flags & AFA_PHASE2))
170 if (aa == (struct at_ifaddr *) 0) {
171 aa = (struct at_ifaddr *)
175 if (aa == NULL)
178 callout_init(&aa->aa_probe_ch, 0);
189 TAILQ_INSERT_HEAD(&at_ifaddr, aa,
192 TAILQ_INSERT_TAIL(&at_ifaddr, aa,
196 TAILQ_INSERT_TAIL(&at_ifaddr, aa, aa_list);
198 ifaref(&aa->aa_ifa);
199 ifa_psref_init(&aa->aa_ifa);
205 ifa_insert(ifp, &aa->aa_ifa);
212 aa->aa_ifa.ifa_addr =
213 (struct sockaddr *) &aa->aa_addr;
214 aa->aa_ifa.ifa_dstaddr =
215 (struct sockaddr *) &aa->aa_addr;
216 aa->aa_ifa.ifa_netmask =
217 (struct sockaddr *) &aa->aa_netmask;
223 aa->aa_flags &= ~AFA_PHASE2;
225 aa->aa_flags |= AFA_PHASE2;
230 aa->aa_ifp = ifp;
236 at_scrub(ifp, aa);
248 for (; aa; aa = TAILQ_NEXT(aa, aa_list)) {
249 if (aa->aa_ifp == ifp &&
250 (aa->aa_flags & AFA_PHASE2) == 0)
258 for (; aa; aa = TAILQ_NEXT(aa, aa_list)) {
259 if (aa->aa_ifp == ifp &&
260 (aa->aa_flags & AFA_PHASE2))
267 for (; aa; aa = TAILQ_NEXT(aa, aa_list)) {
268 if (aa->aa_ifp == ifp)
273 if (aa == (struct at_ifaddr *) 0)
280 * the "aa" pointer is valid when needed.
293 (const struct sockaddr *)&aa->aa_addr);
298 nr->nr_phase = (aa->aa_flags & AFA_PHASE2) ? 2 : 1;
299 nr->nr_firstnet = aa->aa_firstnet;
300 nr->nr_lastnet = aa->aa_lastnet;
306 return at_ifinit(ifp, aa,
310 if (sateqaddr(&ifra->ifra_addr, &aa->aa_addr))
312 return at_ifinit(ifp, aa,
316 at_purgeaddr(&aa->aa_ifa);
329 struct at_ifaddr *aa = (void *) ifa;
335 at_scrub(ifp, aa);
340 ifa_remove(ifp, &aa->aa_ifa);
341 TAILQ_REMOVE(&at_ifaddr, aa, aa_list);
342 ifafree(&aa->aa_ifa);
354 * aa->at_ifaddr.ifa_ifp should be the same.
357 at_scrub(struct ifnet *ifp, struct at_ifaddr *aa)
361 if (aa->aa_flags & AFA_ROUTE) {
363 error = aa_delsingleroute(&aa->aa_ifa,
364 &aa->aa_addr.sat_addr, &aa->aa_netmask.sat_addr);
366 error = rtinit(&aa->aa_ifa, RTM_DELETE, RTF_HOST);
368 error = aa_dorangeroute(&aa->aa_ifa,
369 ntohs(aa->aa_firstnet), ntohs(aa->aa_lastnet),
372 aa->aa_ifa.ifa_flags &= ~IFA_ROUTE;
373 aa->aa_flags &= ~AFA_ROUTE;
383 at_ifinit(struct ifnet *ifp, struct at_ifaddr *aa, const struct sockaddr_at *sat)
394 oldaddr = aa->aa_addr;
395 onr.nr_firstnet = aa->aa_firstnet;
396 onr.nr_lastnet = aa->aa_lastnet;
403 memset(AA_SAT(aa), 0, sizeof(struct sockaddr_at));
405 memcpy(AA_SAT(aa)->sat_zero, sat->sat_zero, sizeof(struct netrange));
407 aa->aa_firstnet = nr.nr_firstnet;
408 aa->aa_lastnet = nr.nr_lastnet;
414 ntohs(aa->aa_firstnet), ntohs(aa->aa_lastnet),
415 (aa->aa_flags & AFA_PHASE2) ? 2 : 1);
424 AA_SAT(aa)->sat_len = sizeof(struct sockaddr_at);
425 AA_SAT(aa)->sat_family = AF_APPLETALK;
427 AA_SAT(aa)->sat_addr.s_net = sat->sat_addr.s_net;
428 AA_SAT(aa)->sat_addr.s_node = sat->sat_addr.s_node;
447 aa->aa_flags |= AFA_PROBING; /* if not loopback we Must
449 if (aa->aa_flags & AFA_PHASE2) {
473 aa->aa_addr = oldaddr;
474 aa->aa_firstnet = onr.nr_firstnet;
475 aa->aa_lastnet = onr.nr_lastnet;
498 AA_SAT(aa)->sat_addr.s_node = time_second;
500 AA_SAT(aa)->sat_addr.s_node = sat->sat_addr.s_node;
509 AA_SAT(aa)->sat_addr.s_net = htons(net);
518 j++, AA_SAT(aa)->sat_addr.s_node += nodeinc) {
519 if (AA_SAT(aa)->sat_addr.s_node > 253 ||
520 AA_SAT(aa)->sat_addr.s_node < 1) {
523 aa->aa_probcnt = 10;
529 callout_reset(&aa->aa_probe_ch, hz / 5,
531 if (tsleep(aa, PPAUSE | PCATCH, "at_ifinit",
538 aa->aa_addr = oldaddr;
539 aa->aa_firstnet = onr.nr_firstnet;
540 aa->aa_lastnet = onr.nr_lastnet;
550 if ((aa->aa_flags & AFA_PROBING) == 0)
557 if ((aa->aa_flags & AFA_PROBING) == 0)
561 AA_SAT(aa)->sat_addr.s_node = time_second;
568 if (aa->aa_flags & AFA_PROBING) {
569 aa->aa_addr = oldaddr;
570 aa->aa_firstnet = onr.nr_firstnet;
571 aa->aa_lastnet = onr.nr_lastnet;
581 if ((error = if_addr_init(ifp, &aa->aa_ifa, true)) != 0) {
586 aa->aa_addr = oldaddr;
587 aa->aa_firstnet = onr.nr_firstnet;
588 aa->aa_lastnet = onr.nr_lastnet;
597 memset(&aa->aa_netmask, 0, sizeof(aa->aa_netmask));
598 aa->aa_netmask.sat_len = sizeof(struct sockaddr_at);
599 aa->aa_netmask.sat_family = AF_APPLETALK;
600 aa->aa_netmask.sat_addr.s_net = 0xffff;
601 aa->aa_netmask.sat_addr.s_node = 0;
603 aa->aa_ifa.ifa_netmask = (struct sockaddr *) &(aa->aa_netmask);/* XXX */
609 memset(&aa->aa_broadaddr, 0, sizeof(aa->aa_broadaddr));
610 aa->aa_broadaddr.sat_len = sizeof(struct sockaddr_at);
611 aa->aa_broadaddr.sat_family = AF_APPLETALK;
613 aa->aa_ifa.ifa_metric = ifp->if_metric;
615 aa->aa_broadaddr.sat_addr.s_net = htons(ATADDR_ANYNET);
616 aa->aa_broadaddr.sat_addr.s_node = ATADDR_BCAST;
617 aa->aa_ifa.ifa_broadaddr =
618 (struct sockaddr *) &aa->aa_broadaddr;
620 error = aa_dorangeroute(&aa->aa_ifa,
621 ntohs(aa->aa_firstnet), ntohs(aa->aa_lastnet), RTM_ADD);
628 aa->aa_ifa.ifa_dstaddr = (struct sockaddr *) & aa->aa_dstaddr;
629 error = aa_addsingleroute(&aa->aa_ifa, &rtaddr, &rtmask);
635 rtaddr.s_net = AA_SAT(aa)->sat_addr.s_net;
636 rtaddr.s_node = AA_SAT(aa)->sat_addr.s_node;
639 error = aa_addsingleroute(&aa->aa_ifa, &rtaddr, &rtmask);
646 at_scrub(ifp, aa);
647 aa->aa_addr = oldaddr;
648 aa->aa_firstnet = onr.nr_firstnet;
649 aa->aa_lastnet = onr.nr_lastnet;
656 aa->aa_ifa.ifa_flags |= IFA_ROUTE;
657 aa->aa_flags |= AFA_ROUTE;
668 struct at_ifaddr *aa;
685 TAILQ_FOREACH(aa, &at_ifaddr, aa_list) {
686 if ((aa->aa_ifp->if_flags & IFF_BROADCAST)
687 && (ntohs(sat->sat_addr.s_net) >= ntohs(aa->aa_firstnet)
688 && ntohs(sat->sat_addr.s_net) <= ntohs(aa->aa_lastnet)))
828 struct at_ifaddr *aa;
832 while ((aa = TAILQ_FIRST(&at_ifaddr)) != NULL) {
833 TAILQ_REMOVE(&at_ifaddr, aa, aa_list);
834 ifp = aa->aa_ifp;
835 at_scrub(ifp, aa);
837 if (ifa == &aa->aa_ifa)
841 panic("aa not present");