Lines Matching refs:t

280 	struct sctp_transport *t = chunk->transport;  in sctp_backlog_rcv()  local
338 sctp_transport_put(t); in sctp_backlog_rcv()
350 struct sctp_transport *t = chunk->transport; in sctp_add_backlog() local
361 sctp_transport_hold(t); in sctp_add_backlog()
373 struct sctp_transport *t, __u32 pmtu) in sctp_icmp_frag_needed() argument
375 if (!t || in sctp_icmp_frag_needed()
376 (t->pathmtu <= pmtu && in sctp_icmp_frag_needed()
377 t->pl.probe_size + sctp_transport_pl_hlen(t) <= pmtu)) in sctp_icmp_frag_needed()
381 atomic_set(&t->mtu_info, pmtu); in sctp_icmp_frag_needed()
383 t->pmtu_pending = 1; in sctp_icmp_frag_needed()
387 if (!(t->param_flags & SPP_PMTUD_ENABLE)) in sctp_icmp_frag_needed()
398 if (!sctp_transport_update_pmtu(t, pmtu)) in sctp_icmp_frag_needed()
405 sctp_retransmit(&asoc->outqueue, t, SCTP_RTXR_PMTUD); in sctp_icmp_frag_needed()
408 void sctp_icmp_redirect(struct sock *sk, struct sctp_transport *t, in sctp_icmp_redirect() argument
413 if (sock_owned_by_user(sk) || !t) in sctp_icmp_redirect()
415 dst = sctp_transport_dst_check(t); in sctp_icmp_redirect()
433 struct sctp_transport *t) in sctp_icmp_proto_unreachable() argument
436 if (timer_pending(&t->proto_unreach_timer)) in sctp_icmp_proto_unreachable()
439 if (!mod_timer(&t->proto_unreach_timer, in sctp_icmp_proto_unreachable()
441 sctp_transport_hold(t); in sctp_icmp_proto_unreachable()
449 if (del_timer(&t->proto_unreach_timer)) in sctp_icmp_proto_unreachable()
450 sctp_transport_put(t); in sctp_icmp_proto_unreachable()
454 asoc->state, asoc->ep, asoc, t, in sctp_icmp_proto_unreachable()
541 void sctp_err_finish(struct sock *sk, struct sctp_transport *t) in sctp_err_finish() argument
545 sctp_transport_put(t); in sctp_err_finish()
548 static void sctp_v4_err_handle(struct sctp_transport *t, struct sk_buff *skb, in sctp_v4_err_handle() argument
551 struct sctp_association *asoc = t->asoc; in sctp_v4_err_handle()
563 sctp_icmp_frag_needed(sk, asoc, t, SCTP_TRUNC4(info)); in sctp_v4_err_handle()
567 sctp_icmp_proto_unreachable(sk, asoc, t); in sctp_v4_err_handle()
579 sctp_icmp_redirect(sk, t, skb); in sctp_v4_err_handle()
642 struct sctp_transport *t; in sctp_udp_v4_err() local
647 sk = sctp_err_lookup(net, AF_INET, skb, sctp_hdr(skb), &asoc, &t); in sctp_udp_v4_err()
657 sctp_err_finish(sk, t); in sctp_udp_v4_err()
662 sctp_v4_err_handle(t, skb, hdr->type, hdr->code, info); in sctp_udp_v4_err()
664 sctp_err_finish(sk, t); in sctp_udp_v4_err()
888 struct sctp_transport *t = (struct sctp_transport *)ptr; in sctp_hash_cmp() local
892 if (!sctp_cmp_addr_exact(&t->ipaddr, x->paddr)) in sctp_hash_cmp()
894 if (!sctp_transport_hold(t)) in sctp_hash_cmp()
897 if (!net_eq(t->asoc->base.net, x->net)) in sctp_hash_cmp()
899 if (x->lport != htons(t->asoc->base.bind_addr.port)) in sctp_hash_cmp()
904 sctp_transport_put(t); in sctp_hash_cmp()
910 const struct sctp_transport *t = data; in sctp_hash_obj() local
912 return sctp_hashfn(t->asoc->base.net, in sctp_hash_obj()
913 htons(t->asoc->base.bind_addr.port), in sctp_hash_obj()
914 &t->ipaddr, seed); in sctp_hash_obj()
942 int sctp_hash_transport(struct sctp_transport *t) in sctp_hash_transport() argument
949 if (t->asoc->temp) in sctp_hash_transport()
952 arg.net = t->asoc->base.net; in sctp_hash_transport()
953 arg.paddr = &t->ipaddr; in sctp_hash_transport()
954 arg.lport = htons(t->asoc->base.bind_addr.port); in sctp_hash_transport()
961 if (transport->asoc->ep == t->asoc->ep) { in sctp_hash_transport()
968 &t->node, sctp_hash_params); in sctp_hash_transport()
975 void sctp_unhash_transport(struct sctp_transport *t) in sctp_unhash_transport() argument
977 if (t->asoc->temp) in sctp_unhash_transport()
980 rhltable_remove(&sctp_transport_hashtable, &t->node, in sctp_unhash_transport()
1002 struct sctp_transport *t; in sctp_addrs_lookup_transport() local
1013 rhl_for_each_entry_rcu(t, tmp, list, node) { in sctp_addrs_lookup_transport()
1014 if (!sctp_transport_hold(t)) in sctp_addrs_lookup_transport()
1017 bound_dev_if = READ_ONCE(t->asoc->base.sk->sk_bound_dev_if); in sctp_addrs_lookup_transport()
1019 sctp_bind_addr_match(&t->asoc->base.bind_addr, in sctp_addrs_lookup_transport()
1020 laddr, sctp_sk(t->asoc->base.sk))) in sctp_addrs_lookup_transport()
1021 return t; in sctp_addrs_lookup_transport()
1022 sctp_transport_put(t); in sctp_addrs_lookup_transport()
1034 struct sctp_transport *t; in sctp_epaddr_lookup_transport() local
1044 rhl_for_each_entry_rcu(t, tmp, list, node) in sctp_epaddr_lookup_transport()
1045 if (ep == t->asoc->ep) in sctp_epaddr_lookup_transport()
1046 return t; in sctp_epaddr_lookup_transport()
1059 struct sctp_transport *t; in __sctp_lookup_association() local
1062 t = sctp_addrs_lookup_transport(net, local, peer, dif, sdif); in __sctp_lookup_association()
1063 if (!t) in __sctp_lookup_association()
1066 asoc = t->asoc; in __sctp_lookup_association()
1067 *pt = t; in __sctp_lookup_association()