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()
212 static void pppol2tp_recv(struct l2tp_session *session, struct sk_buff *skb, int data_len) in pppol2tp_recv() argument
214 struct pppol2tp_session *ps = l2tp_session_priv(session); in pppol2tp_recv()
243 atomic_long_inc(&session->stats.rx_errors); in pppol2tp_recv()
253 pr_warn_ratelimited("%s: no socket in recv\n", session->name); in pppol2tp_recv()
271 struct l2tp_session *session; in pppol2tp_sendmsg() local
281 session = pppol2tp_sock_to_session(sk); in pppol2tp_sendmsg()
282 if (!session) in pppol2tp_sendmsg()
285 tunnel = session->tunnel; in pppol2tp_sendmsg()
292 uhlen + session->hdr_len + in pppol2tp_sendmsg()
318 l2tp_xmit_skb(session, skb); in pppol2tp_sendmsg()
348 struct l2tp_session *session; in pppol2tp_xmit() local
356 session = pppol2tp_sock_to_session(sk); in pppol2tp_xmit()
357 if (!session) in pppol2tp_xmit()
360 tunnel = session->tunnel; in pppol2tp_xmit()
366 session->hdr_len + /* L2TP header */ in pppol2tp_xmit()
377 l2tp_xmit_skb(session, skb); in pppol2tp_xmit()
409 struct l2tp_session *session = sk->sk_user_data; in pppol2tp_session_destruct() local
414 if (session) { in pppol2tp_session_destruct()
416 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_session_destruct()
418 l2tp_session_dec_refcount(session); in pppol2tp_session_destruct()
427 struct l2tp_session *session; in pppol2tp_release() local
445 session = pppol2tp_sock_to_session(sk); in pppol2tp_release()
446 if (session) { in pppol2tp_release()
449 l2tp_session_delete(session); in pppol2tp_release()
451 ps = l2tp_session_priv(session); in pppol2tp_release()
528 struct l2tp_session *session = arg; in pppol2tp_show() local
531 sk = pppol2tp_session_get_sock(session); in pppol2tp_show()
540 static void pppol2tp_session_init(struct l2tp_session *session) in pppol2tp_session_init() argument
544 session->recv_skb = pppol2tp_recv; in pppol2tp_session_init()
546 session->show = pppol2tp_show; in pppol2tp_session_init()
548 ps = l2tp_session_priv(session); in pppol2tp_session_init()
719 struct l2tp_session *session = NULL; in pppol2tp_connect() local
756 session = l2tp_tunnel_get_session(tunnel, info.session_id); in pppol2tp_connect()
757 if (session) { in pppol2tp_connect()
760 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_connect()
765 ps = l2tp_session_priv(session); in pppol2tp_connect()
781 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_connect()
784 if (IS_ERR(session)) { in pppol2tp_connect()
785 error = PTR_ERR(session); in pppol2tp_connect()
789 pppol2tp_session_init(session); in pppol2tp_connect()
790 ps = l2tp_session_priv(session); in pppol2tp_connect()
791 l2tp_session_inc_refcount(session); in pppol2tp_connect()
794 error = l2tp_session_register(session, tunnel); in pppol2tp_connect()
797 kfree(session); in pppol2tp_connect()
809 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_connect()
832 sk->sk_user_data = session; in pppol2tp_connect()
847 l2tp_session_delete(session); in pppol2tp_connect()
852 l2tp_session_dec_refcount(session); in pppol2tp_connect()
867 struct l2tp_session *session; in pppol2tp_session_create() local
876 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_session_create()
879 if (IS_ERR(session)) { in pppol2tp_session_create()
880 error = PTR_ERR(session); in pppol2tp_session_create()
884 pppol2tp_session_init(session); in pppol2tp_session_create()
886 error = l2tp_session_register(session, tunnel); in pppol2tp_session_create()
893 kfree(session); in pppol2tp_session_create()
907 struct l2tp_session *session; in pppol2tp_getname() local
920 session = pppol2tp_sock_to_session(sk); in pppol2tp_getname()
921 if (!session) in pppol2tp_getname()
924 pls = l2tp_session_priv(session); in pppol2tp_getname()
925 tunnel = session->tunnel; in pppol2tp_getname()
939 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
940 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
957 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
958 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
975 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
976 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
994 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
995 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
1038 struct l2tp_session *session; in pppol2tp_tunnel_copy_stats() local
1048 session = l2tp_tunnel_get_session(tunnel, stats->session_id); in pppol2tp_tunnel_copy_stats()
1049 if (!session) in pppol2tp_tunnel_copy_stats()
1052 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_tunnel_copy_stats()
1053 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1057 pppol2tp_copy_stats(stats, &session->stats); in pppol2tp_tunnel_copy_stats()
1058 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1067 struct l2tp_session *session; in pppol2tp_ioctl() local
1072 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1073 if (!session) in pppol2tp_ioctl()
1076 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1080 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1089 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1090 if (!session) in pppol2tp_ioctl()
1093 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1097 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1105 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1106 if (!session) in pppol2tp_ioctl()
1109 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1113 if (!session->session_id && !session->peer_session_id) { in pppol2tp_ioctl()
1123 session->tunnel); in pppol2tp_ioctl()
1129 pppol2tp_copy_stats(&stats, &session->stats); in pppol2tp_ioctl()
1130 stats.session_id = session->session_id; in pppol2tp_ioctl()
1132 stats.tunnel_id = session->tunnel->tunnel_id; in pppol2tp_ioctl()
1133 stats.using_ipsec = l2tp_tunnel_uses_xfrm(session->tunnel); in pppol2tp_ioctl()
1180 struct l2tp_session *session, in pppol2tp_session_setsockopt() argument
1191 session->recv_seq = !!val; in pppol2tp_session_setsockopt()
1199 session->send_seq = !!val; in pppol2tp_session_setsockopt()
1206 l2tp_session_set_header_len(session, session->tunnel->version); in pppol2tp_session_setsockopt()
1214 session->lns_mode = !!val; in pppol2tp_session_setsockopt()
1222 session->reorder_timeout = msecs_to_jiffies(val); in pppol2tp_session_setsockopt()
1242 struct l2tp_session *session; in pppol2tp_setsockopt() local
1262 session = pppol2tp_sock_to_session(sk); in pppol2tp_setsockopt()
1263 if (!session) in pppol2tp_setsockopt()
1268 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_setsockopt()
1269 tunnel = session->tunnel; in pppol2tp_setsockopt()
1272 err = pppol2tp_session_setsockopt(sk, session, optname, val); in pppol2tp_setsockopt()
1305 struct l2tp_session *session, in pppol2tp_session_getsockopt() argument
1312 *val = session->recv_seq; in pppol2tp_session_getsockopt()
1316 *val = session->send_seq; in pppol2tp_session_getsockopt()
1320 *val = session->lns_mode; in pppol2tp_session_getsockopt()
1329 *val = (int)jiffies_to_msecs(session->reorder_timeout); in pppol2tp_session_getsockopt()
1348 struct l2tp_session *session; in pppol2tp_getsockopt() local
1370 session = pppol2tp_sock_to_session(sk); in pppol2tp_getsockopt()
1371 if (!session) in pppol2tp_getsockopt()
1375 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_getsockopt()
1376 tunnel = session->tunnel; in pppol2tp_getsockopt()
1381 err = pppol2tp_session_getsockopt(sk, session, optname, &val); in pppol2tp_getsockopt()
1416 struct l2tp_session *session; /* NULL means get next tunnel */ member
1440 if (pd->session) in pppol2tp_next_session()
1441 l2tp_session_dec_refcount(pd->session); in pppol2tp_next_session()
1443 pd->session = l2tp_session_get_nth(pd->tunnel, pd->session_idx); in pppol2tp_next_session()
1446 if (!pd->session) { in pppol2tp_next_session()
1475 if (!pd->tunnel && !pd->session) in pppol2tp_seq_start()
1498 if (pd->session) { in pppol2tp_seq_stop()
1499 l2tp_session_dec_refcount(pd->session); in pppol2tp_seq_stop()
1500 pd->session = NULL; in pppol2tp_seq_stop()
1528 struct l2tp_session *session = v; in pppol2tp_seq_session_show() local
1529 struct l2tp_tunnel *tunnel = session->tunnel; in pppol2tp_seq_session_show()
1543 sk = pppol2tp_session_get_sock(session); in pppol2tp_seq_session_show()
1546 user_data_ok = (session == sk->sk_user_data) ? 'Y' : 'N'; in pppol2tp_seq_session_show()
1553 session->name, ip, port, in pppol2tp_seq_session_show()
1555 session->session_id, in pppol2tp_seq_session_show()
1557 session->peer_session_id, in pppol2tp_seq_session_show()
1560 session->recv_seq ? 'R' : '-', in pppol2tp_seq_session_show()
1561 session->send_seq ? 'S' : '-', in pppol2tp_seq_session_show()
1562 session->lns_mode ? "LNS" : "LAC", in pppol2tp_seq_session_show()
1564 jiffies_to_msecs(session->reorder_timeout)); in pppol2tp_seq_session_show()
1566 session->nr, session->ns, in pppol2tp_seq_session_show()
1567 atomic_long_read(&session->stats.tx_packets), in pppol2tp_seq_session_show()
1568 atomic_long_read(&session->stats.tx_bytes), in pppol2tp_seq_session_show()
1569 atomic_long_read(&session->stats.tx_errors), in pppol2tp_seq_session_show()
1570 atomic_long_read(&session->stats.rx_packets), in pppol2tp_seq_session_show()
1571 atomic_long_read(&session->stats.rx_bytes), in pppol2tp_seq_session_show()
1572 atomic_long_read(&session->stats.rx_errors)); in pppol2tp_seq_session_show()
1597 if (!pd->session) in pppol2tp_seq_show()
1600 pppol2tp_seq_session_show(m, pd->session); in pppol2tp_seq_show()