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()
720 struct l2tp_session *session = NULL; in pppol2tp_connect() local
757 session = l2tp_tunnel_get_session(tunnel, info.session_id); in pppol2tp_connect()
758 if (session) { in pppol2tp_connect()
761 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_connect()
766 ps = l2tp_session_priv(session); in pppol2tp_connect()
782 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_connect()
785 if (IS_ERR(session)) { in pppol2tp_connect()
786 error = PTR_ERR(session); in pppol2tp_connect()
790 pppol2tp_session_init(session); in pppol2tp_connect()
791 ps = l2tp_session_priv(session); in pppol2tp_connect()
792 l2tp_session_inc_refcount(session); in pppol2tp_connect()
795 error = l2tp_session_register(session, tunnel); in pppol2tp_connect()
798 kfree(session); in pppol2tp_connect()
810 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_connect()
833 sk->sk_user_data = session; in pppol2tp_connect()
848 l2tp_session_delete(session); in pppol2tp_connect()
853 l2tp_session_dec_refcount(session); in pppol2tp_connect()
868 struct l2tp_session *session; in pppol2tp_session_create() local
877 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_session_create()
880 if (IS_ERR(session)) { in pppol2tp_session_create()
881 error = PTR_ERR(session); in pppol2tp_session_create()
885 pppol2tp_session_init(session); in pppol2tp_session_create()
887 error = l2tp_session_register(session, tunnel); in pppol2tp_session_create()
894 kfree(session); in pppol2tp_session_create()
908 struct l2tp_session *session; in pppol2tp_getname() local
921 session = pppol2tp_sock_to_session(sk); in pppol2tp_getname()
922 if (!session) in pppol2tp_getname()
925 pls = l2tp_session_priv(session); in pppol2tp_getname()
926 tunnel = session->tunnel; in pppol2tp_getname()
940 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
941 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
958 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
959 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
976 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
977 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
995 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
996 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
1039 struct l2tp_session *session; in pppol2tp_tunnel_copy_stats() local
1049 session = l2tp_tunnel_get_session(tunnel, stats->session_id); in pppol2tp_tunnel_copy_stats()
1050 if (!session) in pppol2tp_tunnel_copy_stats()
1053 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_tunnel_copy_stats()
1054 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1058 pppol2tp_copy_stats(stats, &session->stats); in pppol2tp_tunnel_copy_stats()
1059 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1068 struct l2tp_session *session; in pppol2tp_ioctl() local
1073 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1074 if (!session) in pppol2tp_ioctl()
1077 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1081 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1090 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1091 if (!session) in pppol2tp_ioctl()
1094 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1098 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1106 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1107 if (!session) in pppol2tp_ioctl()
1110 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1114 if (!session->session_id && !session->peer_session_id) { in pppol2tp_ioctl()
1124 session->tunnel); in pppol2tp_ioctl()
1130 pppol2tp_copy_stats(&stats, &session->stats); in pppol2tp_ioctl()
1131 stats.session_id = session->session_id; in pppol2tp_ioctl()
1133 stats.tunnel_id = session->tunnel->tunnel_id; in pppol2tp_ioctl()
1134 stats.using_ipsec = l2tp_tunnel_uses_xfrm(session->tunnel); in pppol2tp_ioctl()
1181 struct l2tp_session *session, in pppol2tp_session_setsockopt() argument
1192 session->recv_seq = !!val; in pppol2tp_session_setsockopt()
1200 session->send_seq = !!val; in pppol2tp_session_setsockopt()
1207 l2tp_session_set_header_len(session, session->tunnel->version); in pppol2tp_session_setsockopt()
1215 session->lns_mode = !!val; in pppol2tp_session_setsockopt()
1223 session->reorder_timeout = msecs_to_jiffies(val); in pppol2tp_session_setsockopt()
1243 struct l2tp_session *session; in pppol2tp_setsockopt() local
1263 session = pppol2tp_sock_to_session(sk); in pppol2tp_setsockopt()
1264 if (!session) in pppol2tp_setsockopt()
1269 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_setsockopt()
1270 tunnel = session->tunnel; in pppol2tp_setsockopt()
1273 err = pppol2tp_session_setsockopt(sk, session, optname, val); in pppol2tp_setsockopt()
1306 struct l2tp_session *session, in pppol2tp_session_getsockopt() argument
1313 *val = session->recv_seq; in pppol2tp_session_getsockopt()
1317 *val = session->send_seq; in pppol2tp_session_getsockopt()
1321 *val = session->lns_mode; in pppol2tp_session_getsockopt()
1330 *val = (int)jiffies_to_msecs(session->reorder_timeout); in pppol2tp_session_getsockopt()
1349 struct l2tp_session *session; in pppol2tp_getsockopt() local
1371 session = pppol2tp_sock_to_session(sk); in pppol2tp_getsockopt()
1372 if (!session) in pppol2tp_getsockopt()
1376 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_getsockopt()
1377 tunnel = session->tunnel; in pppol2tp_getsockopt()
1382 err = pppol2tp_session_getsockopt(sk, session, optname, &val); in pppol2tp_getsockopt()
1417 struct l2tp_session *session; /* NULL means get next tunnel */ member
1441 if (pd->session) in pppol2tp_next_session()
1442 l2tp_session_dec_refcount(pd->session); in pppol2tp_next_session()
1444 pd->session = l2tp_session_get_nth(pd->tunnel, pd->session_idx); in pppol2tp_next_session()
1447 if (!pd->session) { in pppol2tp_next_session()
1476 if (!pd->tunnel && !pd->session) in pppol2tp_seq_start()
1499 if (pd->session) { in pppol2tp_seq_stop()
1500 l2tp_session_dec_refcount(pd->session); in pppol2tp_seq_stop()
1501 pd->session = NULL; in pppol2tp_seq_stop()
1529 struct l2tp_session *session = v; in pppol2tp_seq_session_show() local
1530 struct l2tp_tunnel *tunnel = session->tunnel; in pppol2tp_seq_session_show()
1544 sk = pppol2tp_session_get_sock(session); in pppol2tp_seq_session_show()
1547 user_data_ok = (session == sk->sk_user_data) ? 'Y' : 'N'; in pppol2tp_seq_session_show()
1554 session->name, ip, port, in pppol2tp_seq_session_show()
1556 session->session_id, in pppol2tp_seq_session_show()
1558 session->peer_session_id, in pppol2tp_seq_session_show()
1561 session->recv_seq ? 'R' : '-', in pppol2tp_seq_session_show()
1562 session->send_seq ? 'S' : '-', in pppol2tp_seq_session_show()
1563 session->lns_mode ? "LNS" : "LAC", in pppol2tp_seq_session_show()
1565 jiffies_to_msecs(session->reorder_timeout)); in pppol2tp_seq_session_show()
1567 session->nr, session->ns, in pppol2tp_seq_session_show()
1568 atomic_long_read(&session->stats.tx_packets), in pppol2tp_seq_session_show()
1569 atomic_long_read(&session->stats.tx_bytes), in pppol2tp_seq_session_show()
1570 atomic_long_read(&session->stats.tx_errors), in pppol2tp_seq_session_show()
1571 atomic_long_read(&session->stats.rx_packets), in pppol2tp_seq_session_show()
1572 atomic_long_read(&session->stats.rx_bytes), in pppol2tp_seq_session_show()
1573 atomic_long_read(&session->stats.rx_errors)); in pppol2tp_seq_session_show()
1598 if (!pd->session) in pppol2tp_seq_show()
1601 pppol2tp_seq_session_show(m, pd->session); in pppol2tp_seq_show()