Lines Matching refs:asoc
88 struct sctp_association *asoc; in sctp_rcv() local
159 asoc = __sctp_rcv_lookup(net, skb, &src, &dest, &transport); in sctp_rcv()
161 if (!asoc) in sctp_rcv()
165 rcvr = asoc ? &asoc->base : &ep->base; in sctp_rcv()
175 asoc = NULL; in sctp_rcv()
195 if (!asoc) { in sctp_rcv()
210 chunk = sctp_chunkify(skb, asoc, sk, GFP_ATOMIC); in sctp_rcv()
385 void sctp_icmp_frag_needed(struct sock *sk, struct sctp_association *asoc, in sctp_icmp_frag_needed() argument
393 asoc->pmtu_pending = 1; in sctp_icmp_frag_needed()
413 sctp_assoc_sync_pmtu(asoc); in sctp_icmp_frag_needed()
416 sctp_retransmit(&asoc->outqueue, t, SCTP_RTXR_PMTUD); in sctp_icmp_frag_needed()
443 struct sctp_association *asoc, in sctp_icmp_proto_unreachable() argument
452 sctp_association_hold(asoc); in sctp_icmp_proto_unreachable()
461 sctp_association_put(asoc); in sctp_icmp_proto_unreachable()
465 asoc->state, asoc->ep, asoc, t, in sctp_icmp_proto_unreachable()
481 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()
525 ntohl(chunkhdr->init_hdr.init_tag) != asoc->c.my_vtag) in sctp_err_lookup()
528 } else if (vtag != asoc->c.peer_vtag) { in sctp_err_lookup()
540 *app = asoc; in sctp_err_lookup()
578 struct sctp_association *asoc = NULL; in sctp_v4_err() local
590 sk = sctp_err_lookup(net, AF_INET, skb, sctp_hdr(skb), &asoc, &transport); in sctp_v4_err()
612 sctp_icmp_frag_needed(sk, asoc, transport, in sctp_v4_err()
617 sctp_icmp_proto_unreachable(sk, asoc, in sctp_v4_err()
885 if (!net_eq(sock_net(t->asoc->base.sk), x->net)) in sctp_hash_cmp()
887 if (x->lport != htons(t->asoc->base.bind_addr.port)) in sctp_hash_cmp()
900 return sctp_hashfn(sock_net(t->asoc->base.sk), in sctp_hash_obj()
901 htons(t->asoc->base.bind_addr.port), in sctp_hash_obj()
937 if (t->asoc->temp) in sctp_hash_transport()
940 arg.net = sock_net(t->asoc->base.sk); in sctp_hash_transport()
942 arg.lport = htons(t->asoc->base.bind_addr.port); in sctp_hash_transport()
949 if (transport->asoc->ep == t->asoc->ep) { in sctp_hash_transport()
965 if (t->asoc->temp) in sctp_unhash_transport()
993 if (sctp_bind_addr_match(&t->asoc->base.bind_addr, in sctp_addrs_lookup_transport()
994 laddr, sctp_sk(t->asoc->base.sk))) in sctp_addrs_lookup_transport()
1020 if (ep == t->asoc->ep) in sctp_epaddr_lookup_transport()
1034 struct sctp_association *asoc = NULL; in __sctp_lookup_association() local
1040 asoc = t->asoc; in __sctp_lookup_association()
1044 return asoc; in __sctp_lookup_association()
1054 struct sctp_association *asoc; in sctp_lookup_association() local
1057 asoc = __sctp_lookup_association(net, laddr, paddr, transportp); in sctp_lookup_association()
1060 return asoc; in sctp_lookup_association()
1100 struct sctp_association *asoc; in __sctp_rcv_init_lookup() local
1136 asoc = __sctp_lookup_association(net, laddr, paddr, transportp); in __sctp_rcv_init_lookup()
1137 if (asoc) in __sctp_rcv_init_lookup()
1138 return asoc; in __sctp_rcv_init_lookup()
1197 struct sctp_association *asoc = NULL; in __sctp_rcv_walk_lookup() local
1235 asoc = __sctp_rcv_asconf_lookup( in __sctp_rcv_walk_lookup()
1243 if (asoc) in __sctp_rcv_walk_lookup()
1250 return asoc; in __sctp_rcv_walk_lookup()
1298 struct sctp_association *asoc; in __sctp_rcv_lookup() local
1300 asoc = __sctp_lookup_association(net, laddr, paddr, transportp); in __sctp_rcv_lookup()
1301 if (asoc) in __sctp_rcv_lookup()
1308 asoc = __sctp_rcv_lookup_harder(net, skb, laddr, transportp); in __sctp_rcv_lookup()
1309 if (asoc) in __sctp_rcv_lookup()
1322 return asoc; in __sctp_rcv_lookup()