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()
479 struct sctp_association *asoc; in sctp_err_lookup() local
499 asoc = __sctp_lookup_association(net, &saddr, &daddr, &transport); in sctp_err_lookup()
500 if (!asoc) in sctp_err_lookup()
503 sk = asoc->base.sk; in sctp_err_lookup()
522 ntohl(chunkhdr->init_hdr.init_tag) != asoc->c.my_vtag) { in sctp_err_lookup()
525 } else if (vtag != asoc->c.peer_vtag) { in sctp_err_lookup()
537 *app = asoc; in sctp_err_lookup()
542 sctp_association_put(asoc); in sctp_err_lookup()
547 void sctp_err_finish(struct sock *sk, struct sctp_association *asoc) in sctp_err_finish() argument
550 sctp_association_put(asoc); in sctp_err_finish()
575 struct sctp_association *asoc = NULL; in sctp_v4_err() local
587 sk = sctp_err_lookup(net, AF_INET, skb, sctp_hdr(skb), &asoc, &transport); in sctp_v4_err()
609 sctp_icmp_frag_needed(sk, asoc, transport, info); in sctp_v4_err()
613 sctp_icmp_proto_unreachable(sk, asoc, in sctp_v4_err()
645 sctp_err_finish(sk, asoc); in sctp_v4_err()
786 static void __sctp_hash_established(struct sctp_association *asoc) in __sctp_hash_established() argument
788 struct net *net = sock_net(asoc->base.sk); in __sctp_hash_established()
792 epb = &asoc->base; in __sctp_hash_established()
796 asoc->peer.port); in __sctp_hash_established()
806 void sctp_hash_established(struct sctp_association *asoc) in sctp_hash_established() argument
808 if (asoc->temp) in sctp_hash_established()
812 __sctp_hash_established(asoc); in sctp_hash_established()
817 static void __sctp_unhash_established(struct sctp_association *asoc) in __sctp_unhash_established() argument
819 struct net *net = sock_net(asoc->base.sk); in __sctp_unhash_established()
823 epb = &asoc->base; in __sctp_unhash_established()
826 asoc->peer.port); in __sctp_unhash_established()
836 void sctp_unhash_established(struct sctp_association *asoc) in sctp_unhash_established() argument
838 if (asoc->temp) in sctp_unhash_established()
842 __sctp_unhash_established(asoc); in sctp_unhash_established()
855 struct sctp_association *asoc; in __sctp_lookup_association() local
867 asoc = sctp_assoc(epb); in __sctp_lookup_association()
868 transport = sctp_assoc_is_match(asoc, net, local, peer); in __sctp_lookup_association()
879 sctp_association_hold(asoc); in __sctp_lookup_association()
881 return asoc; in __sctp_lookup_association()
891 struct sctp_association *asoc; in sctp_lookup_association() local
894 asoc = __sctp_lookup_association(net, laddr, paddr, transportp); in sctp_lookup_association()
897 return asoc; in sctp_lookup_association()
905 struct sctp_association *asoc; in sctp_has_association() local
908 if ((asoc = sctp_lookup_association(net, laddr, paddr, &transport))) { in sctp_has_association()
909 sctp_association_put(asoc); in sctp_has_association()
938 struct sctp_association *asoc; in __sctp_rcv_init_lookup() local
975 asoc = __sctp_lookup_association(net, laddr, paddr, &transport); in __sctp_rcv_init_lookup()
976 if (asoc) in __sctp_rcv_init_lookup()
977 return asoc; in __sctp_rcv_init_lookup()
1036 struct sctp_association *asoc = NULL; in __sctp_rcv_walk_lookup() local
1074 asoc = __sctp_rcv_asconf_lookup( in __sctp_rcv_walk_lookup()
1082 if (asoc) in __sctp_rcv_walk_lookup()
1089 return asoc; in __sctp_rcv_walk_lookup()
1129 struct sctp_association *asoc; in __sctp_rcv_lookup() local
1131 asoc = __sctp_lookup_association(net, laddr, paddr, transportp); in __sctp_rcv_lookup()
1137 if (!asoc) in __sctp_rcv_lookup()
1138 asoc = __sctp_rcv_lookup_harder(net, skb, laddr, transportp); in __sctp_rcv_lookup()
1140 return asoc; in __sctp_rcv_lookup()