Lines Matching refs:laddr

1076 		struct sctp_laddr *laddr;
1078 LIST_FOREACH(laddr, &stcb->sctp_ep->sctp_addr_list, sctp_nxt_addr) {
1079 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
1083 if (sctp_is_addr_restricted(stcb, laddr->ifa) &&
1084 (!sctp_is_addr_pending(stcb, laddr->ifa))) {
1091 if (laddr->ifa->address.sa.sa_family != to->sa_family) {
1100 sin = &laddr->ifa->address.sin;
1114 sin6 = &laddr->ifa->address.sin6;
1129 sconn = &laddr->ifa->address.sconn;
1162 struct sctp_laddr *laddr;
1282 LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
1284 if (laddr->ifa == NULL) {
1288 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
1292 if (laddr->ifa->address.sa.sa_family ==
1299 intf_addr = &laddr->ifa->address.sin;
1315 intf_addr6 = &laddr->ifa->address.sin6;
1328 intf_addr = &laddr->ifa->address.sconn;
1901 struct sctp_laddr *laddr;
2084 LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
2085 if (laddr->ifa == NULL) {
2090 SCTPDBG(SCTP_DEBUG_PCB1, "Ok laddr->ifa:%p is possible, ",
2091 (void *)laddr->ifa);
2092 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
2096 if (laddr->ifa->address.sa.sa_family == nam->sa_family) {
2108 laddr->ifa->address.sin.sin_addr.s_addr) {
2116 intf_addr6 = &laddr->ifa->address.sin6;
2126 if (sconn->sconn_addr == laddr->ifa->address.sconn.sconn_addr) {
3127 struct sctp_laddr *laddr, *oladdr;
3192 /* Subset bound, so copy in the laddr list from the old_inp */
3194 laddr = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_laddr), struct sctp_laddr);
3195 if (laddr == NULL) {
3201 SCTPDBG(SCTP_DEBUG_PCB1, "Association hosed in TCP model, out of laddr memory\n");
3205 bzero(laddr, sizeof(*laddr));
3206 (void)SCTP_GETTIME_TIMEVAL(&laddr->start_time);
3207 laddr->ifa = oladdr->ifa;
3208 atomic_add_int(&laddr->ifa->refcount, 1);
3209 LIST_INSERT_HEAD(&new_inp->sctp_addr_list, laddr,
3213 stcb->asoc.last_used_address = laddr;
3884 struct sctp_laddr *laddr, *nladdr;
4329 LIST_FOREACH_SAFE(laddr, &inp->sctp_addr_list, sctp_nxt_addr, nladdr) {
4330 sctp_remove_laddr(laddr);
5415 struct sctp_laddr *laddr, *naddr;
5919 LIST_FOREACH_SAFE(laddr, &asoc->sctp_restricted_addrs, sctp_nxt_addr, naddr) {
5921 sctp_remove_laddr(laddr);
6093 struct sctp_laddr *laddr;
6102 LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
6103 if (laddr->ifa == NULL) {
6109 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
6112 switch (laddr->ifa->address.sa.sa_family) {
6149 struct sctp_laddr *laddr;
6167 LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
6168 if (laddr->ifa == ifa) {
6244 struct sctp_laddr *laddr;
6252 LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
6253 if (laddr->ifa == ifa) {
6272 if (inp->next_addr_touse == laddr)
6280 if (stcb->asoc.last_used_address == laddr)
6283 /* Now spin through all the nets and purge any ref to laddr */
6286 (net->ro._s_addr->ifa == laddr->ifa)) {
6304 sctp_remove_laddr(laddr);
6320 struct sctp_laddr *laddr;
6338 LIST_FOREACH(laddr, list, sctp_nxt_addr) {
6339 if (laddr->ifa == ifa) {
6350 * insert an laddr entry with the given ifa for the desired list
6355 struct sctp_laddr *laddr;
6357 laddr = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_laddr), struct sctp_laddr);
6358 if (laddr == NULL) {
6364 bzero(laddr, sizeof(*laddr));
6365 (void)SCTP_GETTIME_TIMEVAL(&laddr->start_time);
6366 laddr->ifa = ifa;
6367 laddr->action = act;
6370 LIST_INSERT_HEAD(list, laddr, sctp_nxt_addr);
6376 * Remove an laddr entry from the local address list (on an assoc)
6379 sctp_remove_laddr(struct sctp_laddr *laddr)
6383 LIST_REMOVE(laddr, sctp_nxt_addr);
6384 sctp_free_ifa(laddr->ifa);
6385 SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_laddr), laddr);
6396 struct sctp_laddr *laddr;
6417 LIST_FOREACH(laddr, &stcb->asoc.sctp_restricted_addrs, sctp_nxt_addr) {
6419 if (laddr->ifa == NULL)
6421 if (laddr->ifa == ifa) {
6422 sctp_remove_laddr(laddr);