Lines Matching refs:peer

180 	asoc->peer.rwnd = SCTP_DEFAULT_MAXWINDOW;  in sctp_association_init()
215 INIT_LIST_HEAD(&asoc->peer.transport_addr_list); in sctp_association_init()
228 asoc->peer.sack_needed = 1; in sctp_association_init()
229 asoc->peer.sack_generation = 1; in sctp_association_init()
237 asoc->peer.asconf_capable = 1; in sctp_association_init()
252 asoc->peer.ipv4_address = 1; in sctp_association_init()
254 asoc->peer.ipv6_address = 1; in sctp_association_init()
358 sctp_tsnmap_free(&asoc->peer.tsn_map); in sctp_association_free()
377 kfree(asoc->peer.cookie); in sctp_association_free()
378 kfree(asoc->peer.peer_random); in sctp_association_free()
379 kfree(asoc->peer.peer_chunks); in sctp_association_free()
380 kfree(asoc->peer.peer_hmacs); in sctp_association_free()
383 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { in sctp_association_free()
389 asoc->peer.transport_count = 0; in sctp_association_free()
437 if (asoc->peer.primary_path != NULL && in sctp_assoc_set_primary()
438 asoc->peer.primary_path != transport) in sctp_assoc_set_primary()
441 asoc->peer.primary_path = transport; in sctp_assoc_set_primary()
444 memcpy(&asoc->peer.primary_addr, &transport->ipaddr, in sctp_assoc_set_primary()
452 asoc->peer.active_path = transport; in sctp_assoc_set_primary()
487 struct sctp_transport *peer) in sctp_assoc_rm_peer() argument
493 __func__, asoc, &peer->ipaddr.sa); in sctp_assoc_rm_peer()
498 if (asoc->peer.retran_path == peer) in sctp_assoc_rm_peer()
502 list_del_rcu(&peer->transports); in sctp_assoc_rm_peer()
505 pos = asoc->peer.transport_addr_list.next; in sctp_assoc_rm_peer()
509 if (asoc->peer.primary_path == peer) in sctp_assoc_rm_peer()
511 if (asoc->peer.active_path == peer) in sctp_assoc_rm_peer()
512 asoc->peer.active_path = transport; in sctp_assoc_rm_peer()
513 if (asoc->peer.retran_path == peer) in sctp_assoc_rm_peer()
514 asoc->peer.retran_path = transport; in sctp_assoc_rm_peer()
515 if (asoc->peer.last_data_from == peer) in sctp_assoc_rm_peer()
516 asoc->peer.last_data_from = transport; in sctp_assoc_rm_peer()
523 if (asoc->init_last_sent_to == peer) in sctp_assoc_rm_peer()
531 if (asoc->shutdown_last_sent_to == peer) in sctp_assoc_rm_peer()
538 asoc->addip_last_asconf->transport == peer) in sctp_assoc_rm_peer()
544 if (!list_empty(&peer->transmitted)) { in sctp_assoc_rm_peer()
545 struct sctp_transport *active = asoc->peer.active_path; in sctp_assoc_rm_peer()
549 list_for_each_entry(ch, &peer->transmitted, in sctp_assoc_rm_peer()
555 list_splice_tail_init(&peer->transmitted, in sctp_assoc_rm_peer()
568 asoc->peer.transport_count--; in sctp_assoc_rm_peer()
570 sctp_transport_free(peer); in sctp_assoc_rm_peer()
580 struct sctp_transport *peer; in sctp_assoc_add_peer() local
593 if (0 == asoc->peer.port) in sctp_assoc_add_peer()
594 asoc->peer.port = port; in sctp_assoc_add_peer()
597 peer = sctp_assoc_lookup_paddr(asoc, addr); in sctp_assoc_add_peer()
598 if (peer) { in sctp_assoc_add_peer()
603 if (peer->state == SCTP_UNKNOWN) { in sctp_assoc_add_peer()
604 peer->state = SCTP_ACTIVE; in sctp_assoc_add_peer()
606 return peer; in sctp_assoc_add_peer()
609 peer = sctp_transport_new(net, addr, gfp); in sctp_assoc_add_peer()
610 if (!peer) in sctp_assoc_add_peer()
613 sctp_transport_set_owner(peer, asoc); in sctp_assoc_add_peer()
618 peer->hbinterval = asoc->hbinterval; in sctp_assoc_add_peer()
621 peer->pathmaxrxt = asoc->pathmaxrxt; in sctp_assoc_add_peer()
624 peer->pf_retrans = asoc->pf_retrans; in sctp_assoc_add_peer()
629 peer->sackdelay = asoc->sackdelay; in sctp_assoc_add_peer()
630 peer->sackfreq = asoc->sackfreq; in sctp_assoc_add_peer()
635 peer->param_flags = asoc->param_flags; in sctp_assoc_add_peer()
637 sctp_transport_route(peer, NULL, sp); in sctp_assoc_add_peer()
640 if (peer->param_flags & SPP_PMTUD_DISABLE) { in sctp_assoc_add_peer()
642 peer->pathmtu = asoc->pathmtu; in sctp_assoc_add_peer()
644 peer->pathmtu = SCTP_DEFAULT_MAXSEGMENT; in sctp_assoc_add_peer()
653 asoc->pathmtu = min_t(int, peer->pathmtu, asoc->pathmtu); in sctp_assoc_add_peer()
655 asoc->pathmtu = peer->pathmtu; in sctp_assoc_add_peer()
660 peer->pmtu_pending = 0; in sctp_assoc_add_peer()
667 sctp_packet_init(&peer->packet, peer, asoc->base.bind_addr.port, in sctp_assoc_add_peer()
668 asoc->peer.port); in sctp_assoc_add_peer()
680 peer->cwnd = min(4*asoc->pathmtu, max_t(__u32, 2*asoc->pathmtu, 4380)); in sctp_assoc_add_peer()
686 peer->ssthresh = SCTP_DEFAULT_MAXWINDOW; in sctp_assoc_add_peer()
688 peer->partial_bytes_acked = 0; in sctp_assoc_add_peer()
689 peer->flight_size = 0; in sctp_assoc_add_peer()
690 peer->burst_limited = 0; in sctp_assoc_add_peer()
693 peer->rto = asoc->rto_initial; in sctp_assoc_add_peer()
694 sctp_max_rto(asoc, peer); in sctp_assoc_add_peer()
697 peer->state = peer_state; in sctp_assoc_add_peer()
700 list_add_tail_rcu(&peer->transports, &asoc->peer.transport_addr_list); in sctp_assoc_add_peer()
701 asoc->peer.transport_count++; in sctp_assoc_add_peer()
704 if (!asoc->peer.primary_path) { in sctp_assoc_add_peer()
705 sctp_assoc_set_primary(asoc, peer); in sctp_assoc_add_peer()
706 asoc->peer.retran_path = peer; in sctp_assoc_add_peer()
709 if (asoc->peer.active_path == asoc->peer.retran_path && in sctp_assoc_add_peer()
710 peer->state != SCTP_UNCONFIRMED) { in sctp_assoc_add_peer()
711 asoc->peer.retran_path = peer; in sctp_assoc_add_peer()
714 return peer; in sctp_assoc_add_peer()
725 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { in sctp_assoc_del_peer()
744 list_for_each_entry(t, &asoc->peer.transport_addr_list, in sctp_assoc_lookup_paddr()
760 list_for_each_entry_safe(t, temp, &asoc->peer.transport_addr_list, in sctp_assoc_del_nonprimary_peers()
939 active = asoc->peer.active_path; in sctp_assoc_lookup_tsn()
951 list_for_each_entry(transport, &asoc->peer.transport_addr_list, in sctp_assoc_lookup_tsn()
977 (htons(asoc->peer.port) == paddr->v4.sin_port) && in sctp_assoc_is_match()
1030 asoc->peer.last_data_from = chunk->transport; in sctp_assoc_bh_rcv()
1098 asoc->peer.rwnd = new->peer.rwnd; in sctp_assoc_update()
1099 asoc->peer.sack_needed = new->peer.sack_needed; in sctp_assoc_update()
1100 asoc->peer.auth_capable = new->peer.auth_capable; in sctp_assoc_update()
1101 asoc->peer.i = new->peer.i; in sctp_assoc_update()
1102 sctp_tsnmap_init(&asoc->peer.tsn_map, SCTP_TSN_MAP_INITIAL, in sctp_assoc_update()
1103 asoc->peer.i.initial_tsn, GFP_ATOMIC); in sctp_assoc_update()
1106 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { in sctp_assoc_update()
1146 list_for_each_entry(trans, &new->peer.transport_addr_list, in sctp_assoc_update()
1172 kfree(asoc->peer.peer_random); in sctp_assoc_update()
1173 asoc->peer.peer_random = new->peer.peer_random; in sctp_assoc_update()
1174 new->peer.peer_random = NULL; in sctp_assoc_update()
1176 kfree(asoc->peer.peer_chunks); in sctp_assoc_update()
1177 asoc->peer.peer_chunks = new->peer.peer_chunks; in sctp_assoc_update()
1178 new->peer.peer_chunks = NULL; in sctp_assoc_update()
1180 kfree(asoc->peer.peer_hmacs); in sctp_assoc_update()
1181 asoc->peer.peer_hmacs = new->peer.peer_hmacs; in sctp_assoc_update()
1182 new->peer.peer_hmacs = NULL; in sctp_assoc_update()
1266 struct sctp_transport *trans = asoc->peer.retran_path; in sctp_assoc_update_retran_path()
1270 if (asoc->peer.transport_count == 1) in sctp_assoc_update_retran_path()
1275 if (asoc->peer.active_path == asoc->peer.retran_path && in sctp_assoc_update_retran_path()
1276 asoc->peer.active_path->state == SCTP_ACTIVE) in sctp_assoc_update_retran_path()
1283 if (&trans->transports == &asoc->peer.transport_addr_list) in sctp_assoc_update_retran_path()
1292 if (trans == asoc->peer.retran_path) in sctp_assoc_update_retran_path()
1296 asoc->peer.retran_path = trans_next; in sctp_assoc_update_retran_path()
1299 __func__, asoc, &asoc->peer.retran_path->ipaddr.sa); in sctp_assoc_update_retran_path()
1308 list_for_each_entry(trans, &asoc->peer.transport_addr_list, in sctp_select_active_and_retran_path()
1342 if ((asoc->peer.primary_path->state == SCTP_ACTIVE || in sctp_select_active_and_retran_path()
1343 asoc->peer.primary_path->state == SCTP_UNKNOWN) && in sctp_select_active_and_retran_path()
1344 asoc->peer.primary_path != trans_pri) { in sctp_select_active_and_retran_path()
1346 trans_pri = asoc->peer.primary_path; in sctp_select_active_and_retran_path()
1360 trans_pri = sctp_trans_elect_best(asoc->peer.active_path, trans_pf); in sctp_select_active_and_retran_path()
1365 asoc->peer.active_path = trans_pri; in sctp_select_active_and_retran_path()
1366 asoc->peer.retran_path = trans_sec; in sctp_select_active_and_retran_path()
1378 return asoc->peer.active_path; in sctp_assoc_choose_alter_transport()
1380 if (last_sent_to == asoc->peer.retran_path) in sctp_assoc_choose_alter_transport()
1383 return asoc->peer.retran_path; in sctp_assoc_choose_alter_transport()
1399 list_for_each_entry(t, &asoc->peer.transport_addr_list, in sctp_assoc_sync_pmtu()
1487 asoc->peer.sack_needed = 0; in sctp_assoc_rwnd_increase()
1550 if (asoc->peer.ipv4_address) in sctp_assoc_set_bind_addr_from_ep()
1552 if (asoc->peer.ipv6_address) in sctp_assoc_set_bind_addr_from_ep()
1650 htonl(asoc->peer.addip_serial)) in sctp_assoc_clean_asconf_ack_cache()