Lines Matching refs:asoc
110 struct sctp_association *asoc; in sctp_rcv() local
174 asoc = __sctp_rcv_lookup(net, skb, &src, &dest, &transport); in sctp_rcv()
176 if (!asoc) in sctp_rcv()
180 rcvr = asoc ? &asoc->base : &ep->base; in sctp_rcv()
188 if (asoc) { in sctp_rcv()
189 sctp_association_put(asoc); in sctp_rcv()
190 asoc = NULL; in sctp_rcv()
209 if (!asoc) { in sctp_rcv()
224 chunk = sctp_chunkify(skb, asoc, sk); in sctp_rcv()
276 if (asoc) in sctp_rcv()
277 sctp_association_put(asoc); in sctp_rcv()
290 if (asoc) in sctp_rcv()
291 sctp_association_put(asoc); in sctp_rcv()
389 void sctp_icmp_frag_needed(struct sock *sk, struct sctp_association *asoc, in sctp_icmp_frag_needed() argument
396 asoc->pmtu_pending = 1; in sctp_icmp_frag_needed()
406 sctp_assoc_sync_pmtu(sk, asoc); in sctp_icmp_frag_needed()
415 sctp_retransmit(&asoc->outqueue, t, SCTP_RTXR_PMTUD); in sctp_icmp_frag_needed()
442 struct sctp_association *asoc, in sctp_icmp_proto_unreachable() argument
451 sctp_association_hold(asoc); in sctp_icmp_proto_unreachable()
460 sctp_association_put(asoc); in sctp_icmp_proto_unreachable()
464 asoc->state, asoc->ep, asoc, t, in sctp_icmp_proto_unreachable()
480 struct sctp_association *asoc; in sctp_err_lookup() local
498 asoc = __sctp_lookup_association(net, &saddr, &daddr, &transport); in sctp_err_lookup()
499 if (!asoc) in sctp_err_lookup()
502 sk = asoc->base.sk; in sctp_err_lookup()
524 ntohl(chunkhdr->init_hdr.init_tag) != asoc->c.my_vtag) in sctp_err_lookup()
527 } else if (vtag != asoc->c.peer_vtag) { in sctp_err_lookup()
539 *app = asoc; in sctp_err_lookup()
544 sctp_association_put(asoc); in sctp_err_lookup()
549 void sctp_err_finish(struct sock *sk, struct sctp_association *asoc) in sctp_err_finish() argument
552 sctp_association_put(asoc); in sctp_err_finish()
577 struct sctp_association *asoc = NULL; in sctp_v4_err() local
589 sk = sctp_err_lookup(net, AF_INET, skb, sctp_hdr(skb), &asoc, &transport); in sctp_v4_err()
611 sctp_icmp_frag_needed(sk, asoc, transport, info); in sctp_v4_err()
615 sctp_icmp_proto_unreachable(sk, asoc, in sctp_v4_err()
647 sctp_err_finish(sk, asoc); in sctp_v4_err()
788 static void __sctp_hash_established(struct sctp_association *asoc) in __sctp_hash_established() argument
790 struct net *net = sock_net(asoc->base.sk); in __sctp_hash_established()
794 epb = &asoc->base; in __sctp_hash_established()
798 asoc->peer.port); in __sctp_hash_established()
808 void sctp_hash_established(struct sctp_association *asoc) in sctp_hash_established() argument
810 if (asoc->temp) in sctp_hash_established()
814 __sctp_hash_established(asoc); in sctp_hash_established()
819 static void __sctp_unhash_established(struct sctp_association *asoc) in __sctp_unhash_established() argument
821 struct net *net = sock_net(asoc->base.sk); in __sctp_unhash_established()
825 epb = &asoc->base; in __sctp_unhash_established()
828 asoc->peer.port); in __sctp_unhash_established()
838 void sctp_unhash_established(struct sctp_association *asoc) in sctp_unhash_established() argument
840 if (asoc->temp) in sctp_unhash_established()
844 __sctp_unhash_established(asoc); in sctp_unhash_established()
857 struct sctp_association *asoc; in __sctp_lookup_association() local
869 asoc = sctp_assoc(epb); in __sctp_lookup_association()
870 transport = sctp_assoc_is_match(asoc, net, local, peer); in __sctp_lookup_association()
881 sctp_association_hold(asoc); in __sctp_lookup_association()
883 return asoc; in __sctp_lookup_association()
893 struct sctp_association *asoc; in sctp_lookup_association() local
896 asoc = __sctp_lookup_association(net, laddr, paddr, transportp); in sctp_lookup_association()
899 return asoc; in sctp_lookup_association()
907 struct sctp_association *asoc; in sctp_has_association() local
910 if ((asoc = sctp_lookup_association(net, laddr, paddr, &transport))) { in sctp_has_association()
911 sctp_association_put(asoc); in sctp_has_association()
940 struct sctp_association *asoc; in __sctp_rcv_init_lookup() local
977 asoc = __sctp_lookup_association(net, laddr, paddr, &transport); in __sctp_rcv_init_lookup()
978 if (asoc) in __sctp_rcv_init_lookup()
979 return asoc; in __sctp_rcv_init_lookup()
1038 struct sctp_association *asoc = NULL; in __sctp_rcv_walk_lookup() local
1076 asoc = __sctp_rcv_asconf_lookup( in __sctp_rcv_walk_lookup()
1084 if (asoc) in __sctp_rcv_walk_lookup()
1091 return asoc; in __sctp_rcv_walk_lookup()
1131 struct sctp_association *asoc; in __sctp_rcv_lookup() local
1133 asoc = __sctp_lookup_association(net, laddr, paddr, transportp); in __sctp_rcv_lookup()
1139 if (!asoc) in __sctp_rcv_lookup()
1140 asoc = __sctp_rcv_lookup_harder(net, skb, laddr, transportp); in __sctp_rcv_lookup()
1142 return asoc; in __sctp_rcv_lookup()