Lines Matching refs:session

137 static struct sock *pppol2tp_session_get_sock(struct l2tp_session *session)  in pppol2tp_session_get_sock()  argument
139 struct pppol2tp_session *ps = l2tp_session_priv(session); in pppol2tp_session_get_sock()
155 struct l2tp_session *session; in pppol2tp_sock_to_session() local
161 session = (struct l2tp_session *)(sk->sk_user_data); in pppol2tp_sock_to_session()
162 if (!session) { in pppol2tp_sock_to_session()
166 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) { in pppol2tp_sock_to_session()
167 session = NULL; in pppol2tp_sock_to_session()
173 return session; in pppol2tp_sock_to_session()
213 static void pppol2tp_recv(struct l2tp_session *session, struct sk_buff *skb, int data_len) in pppol2tp_recv() argument
215 struct pppol2tp_session *ps = l2tp_session_priv(session); in pppol2tp_recv()
244 atomic_long_inc(&session->stats.rx_errors); in pppol2tp_recv()
254 pr_warn_ratelimited("%s: no socket in recv\n", session->name); in pppol2tp_recv()
272 struct l2tp_session *session; in pppol2tp_sendmsg() local
282 session = pppol2tp_sock_to_session(sk); in pppol2tp_sendmsg()
283 if (!session) in pppol2tp_sendmsg()
286 tunnel = session->tunnel; in pppol2tp_sendmsg()
293 uhlen + session->hdr_len + in pppol2tp_sendmsg()
319 l2tp_xmit_skb(session, skb); in pppol2tp_sendmsg()
349 struct l2tp_session *session; in pppol2tp_xmit() local
357 session = pppol2tp_sock_to_session(sk); in pppol2tp_xmit()
358 if (!session) in pppol2tp_xmit()
361 tunnel = session->tunnel; in pppol2tp_xmit()
367 session->hdr_len + /* L2TP header */ in pppol2tp_xmit()
378 l2tp_xmit_skb(session, skb); in pppol2tp_xmit()
410 struct l2tp_session *session = sk->sk_user_data; in pppol2tp_session_destruct() local
415 if (session) { in pppol2tp_session_destruct()
417 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_session_destruct()
419 l2tp_session_dec_refcount(session); in pppol2tp_session_destruct()
428 struct l2tp_session *session; in pppol2tp_release() local
446 session = pppol2tp_sock_to_session(sk); in pppol2tp_release()
447 if (session) { in pppol2tp_release()
450 l2tp_session_delete(session); in pppol2tp_release()
452 ps = l2tp_session_priv(session); in pppol2tp_release()
529 struct l2tp_session *session = arg; in pppol2tp_show() local
532 sk = pppol2tp_session_get_sock(session); in pppol2tp_show()
541 static void pppol2tp_session_init(struct l2tp_session *session) in pppol2tp_session_init() argument
545 session->recv_skb = pppol2tp_recv; in pppol2tp_session_init()
547 session->show = pppol2tp_show; in pppol2tp_session_init()
549 ps = l2tp_session_priv(session); in pppol2tp_session_init()
661 struct l2tp_session *session = NULL; in pppol2tp_connect() local
747 session = l2tp_tunnel_get_session(tunnel, info.session_id); in pppol2tp_connect()
748 if (session) { in pppol2tp_connect()
751 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_connect()
756 ps = l2tp_session_priv(session); in pppol2tp_connect()
772 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_connect()
775 if (IS_ERR(session)) { in pppol2tp_connect()
776 error = PTR_ERR(session); in pppol2tp_connect()
780 pppol2tp_session_init(session); in pppol2tp_connect()
781 ps = l2tp_session_priv(session); in pppol2tp_connect()
782 l2tp_session_inc_refcount(session); in pppol2tp_connect()
785 error = l2tp_session_register(session, tunnel); in pppol2tp_connect()
788 kfree(session); in pppol2tp_connect()
800 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_connect()
823 sk->sk_user_data = session; in pppol2tp_connect()
838 l2tp_session_delete(session); in pppol2tp_connect()
843 l2tp_session_dec_refcount(session); in pppol2tp_connect()
859 struct l2tp_session *session; in pppol2tp_session_create() local
868 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_session_create()
871 if (IS_ERR(session)) { in pppol2tp_session_create()
872 error = PTR_ERR(session); in pppol2tp_session_create()
876 pppol2tp_session_init(session); in pppol2tp_session_create()
878 error = l2tp_session_register(session, tunnel); in pppol2tp_session_create()
885 kfree(session); in pppol2tp_session_create()
899 struct l2tp_session *session; in pppol2tp_getname() local
912 session = pppol2tp_sock_to_session(sk); in pppol2tp_getname()
913 if (!session) in pppol2tp_getname()
916 pls = l2tp_session_priv(session); in pppol2tp_getname()
917 tunnel = session->tunnel; in pppol2tp_getname()
931 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
932 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
949 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
950 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
967 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
968 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
986 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
987 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
1030 struct l2tp_session *session; in pppol2tp_tunnel_copy_stats() local
1040 session = l2tp_tunnel_get_session(tunnel, stats->session_id); in pppol2tp_tunnel_copy_stats()
1041 if (!session) in pppol2tp_tunnel_copy_stats()
1044 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_tunnel_copy_stats()
1045 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1049 pppol2tp_copy_stats(stats, &session->stats); in pppol2tp_tunnel_copy_stats()
1050 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1059 struct l2tp_session *session; in pppol2tp_ioctl() local
1064 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1065 if (!session) in pppol2tp_ioctl()
1068 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1072 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1081 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1082 if (!session) in pppol2tp_ioctl()
1085 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1089 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1097 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1098 if (!session) in pppol2tp_ioctl()
1101 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1105 if (!session->session_id && !session->peer_session_id) { in pppol2tp_ioctl()
1115 session->tunnel); in pppol2tp_ioctl()
1121 pppol2tp_copy_stats(&stats, &session->stats); in pppol2tp_ioctl()
1122 stats.session_id = session->session_id; in pppol2tp_ioctl()
1124 stats.tunnel_id = session->tunnel->tunnel_id; in pppol2tp_ioctl()
1125 stats.using_ipsec = l2tp_tunnel_uses_xfrm(session->tunnel); in pppol2tp_ioctl()
1172 struct l2tp_session *session, in pppol2tp_session_setsockopt() argument
1183 session->recv_seq = !!val; in pppol2tp_session_setsockopt()
1191 session->send_seq = !!val; in pppol2tp_session_setsockopt()
1198 l2tp_session_set_header_len(session, session->tunnel->version); in pppol2tp_session_setsockopt()
1206 session->lns_mode = !!val; in pppol2tp_session_setsockopt()
1214 session->reorder_timeout = msecs_to_jiffies(val); in pppol2tp_session_setsockopt()
1234 struct l2tp_session *session; in pppol2tp_setsockopt() local
1254 session = pppol2tp_sock_to_session(sk); in pppol2tp_setsockopt()
1255 if (!session) in pppol2tp_setsockopt()
1260 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_setsockopt()
1261 tunnel = session->tunnel; in pppol2tp_setsockopt()
1264 err = pppol2tp_session_setsockopt(sk, session, optname, val); in pppol2tp_setsockopt()
1297 struct l2tp_session *session, in pppol2tp_session_getsockopt() argument
1304 *val = session->recv_seq; in pppol2tp_session_getsockopt()
1308 *val = session->send_seq; in pppol2tp_session_getsockopt()
1312 *val = session->lns_mode; in pppol2tp_session_getsockopt()
1321 *val = (int)jiffies_to_msecs(session->reorder_timeout); in pppol2tp_session_getsockopt()
1340 struct l2tp_session *session; in pppol2tp_getsockopt() local
1362 session = pppol2tp_sock_to_session(sk); in pppol2tp_getsockopt()
1363 if (!session) in pppol2tp_getsockopt()
1367 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_getsockopt()
1368 tunnel = session->tunnel; in pppol2tp_getsockopt()
1373 err = pppol2tp_session_getsockopt(sk, session, optname, &val); in pppol2tp_getsockopt()
1408 struct l2tp_session *session; /* NULL means get next tunnel */ member
1432 if (pd->session) in pppol2tp_next_session()
1433 l2tp_session_dec_refcount(pd->session); in pppol2tp_next_session()
1435 pd->session = l2tp_session_get_nth(pd->tunnel, pd->session_idx); in pppol2tp_next_session()
1438 if (!pd->session) { in pppol2tp_next_session()
1467 if (!pd->tunnel && !pd->session) in pppol2tp_seq_start()
1490 if (pd->session) { in pppol2tp_seq_stop()
1491 l2tp_session_dec_refcount(pd->session); in pppol2tp_seq_stop()
1492 pd->session = NULL; in pppol2tp_seq_stop()
1520 struct l2tp_session *session = v; in pppol2tp_seq_session_show() local
1521 struct l2tp_tunnel *tunnel = session->tunnel; in pppol2tp_seq_session_show()
1535 sk = pppol2tp_session_get_sock(session); in pppol2tp_seq_session_show()
1538 user_data_ok = (session == sk->sk_user_data) ? 'Y' : 'N'; in pppol2tp_seq_session_show()
1545 session->name, ip, port, in pppol2tp_seq_session_show()
1547 session->session_id, in pppol2tp_seq_session_show()
1549 session->peer_session_id, in pppol2tp_seq_session_show()
1552 session->recv_seq ? 'R' : '-', in pppol2tp_seq_session_show()
1553 session->send_seq ? 'S' : '-', in pppol2tp_seq_session_show()
1554 session->lns_mode ? "LNS" : "LAC", in pppol2tp_seq_session_show()
1556 jiffies_to_msecs(session->reorder_timeout)); in pppol2tp_seq_session_show()
1558 session->nr, session->ns, in pppol2tp_seq_session_show()
1559 atomic_long_read(&session->stats.tx_packets), in pppol2tp_seq_session_show()
1560 atomic_long_read(&session->stats.tx_bytes), in pppol2tp_seq_session_show()
1561 atomic_long_read(&session->stats.tx_errors), in pppol2tp_seq_session_show()
1562 atomic_long_read(&session->stats.rx_packets), in pppol2tp_seq_session_show()
1563 atomic_long_read(&session->stats.rx_bytes), in pppol2tp_seq_session_show()
1564 atomic_long_read(&session->stats.rx_errors)); in pppol2tp_seq_session_show()
1589 if (!pd->session) in pppol2tp_seq_show()
1592 pppol2tp_seq_session_show(m, pd->session); in pppol2tp_seq_show()