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()
660 struct l2tp_session *session = NULL; in pppol2tp_connect() local
746 session = l2tp_tunnel_get_session(tunnel, info.session_id); in pppol2tp_connect()
747 if (session) { in pppol2tp_connect()
750 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_connect()
755 ps = l2tp_session_priv(session); in pppol2tp_connect()
771 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_connect()
774 if (IS_ERR(session)) { in pppol2tp_connect()
775 error = PTR_ERR(session); in pppol2tp_connect()
779 pppol2tp_session_init(session); in pppol2tp_connect()
780 ps = l2tp_session_priv(session); in pppol2tp_connect()
781 l2tp_session_inc_refcount(session); in pppol2tp_connect()
784 error = l2tp_session_register(session, tunnel); in pppol2tp_connect()
787 kfree(session); in pppol2tp_connect()
799 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_connect()
822 sk->sk_user_data = session; in pppol2tp_connect()
837 l2tp_session_delete(session); in pppol2tp_connect()
842 l2tp_session_dec_refcount(session); in pppol2tp_connect()
858 struct l2tp_session *session; in pppol2tp_session_create() local
867 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_session_create()
870 if (IS_ERR(session)) { in pppol2tp_session_create()
871 error = PTR_ERR(session); in pppol2tp_session_create()
875 pppol2tp_session_init(session); in pppol2tp_session_create()
877 error = l2tp_session_register(session, tunnel); in pppol2tp_session_create()
884 kfree(session); in pppol2tp_session_create()
898 struct l2tp_session *session; in pppol2tp_getname() local
911 session = pppol2tp_sock_to_session(sk); in pppol2tp_getname()
912 if (!session) in pppol2tp_getname()
915 pls = l2tp_session_priv(session); in pppol2tp_getname()
916 tunnel = session->tunnel; in pppol2tp_getname()
930 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
931 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
948 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
949 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
966 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
967 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
985 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
986 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
1029 struct l2tp_session *session; in pppol2tp_tunnel_copy_stats() local
1039 session = l2tp_tunnel_get_session(tunnel, stats->session_id); in pppol2tp_tunnel_copy_stats()
1040 if (!session) in pppol2tp_tunnel_copy_stats()
1043 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_tunnel_copy_stats()
1044 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1048 pppol2tp_copy_stats(stats, &session->stats); in pppol2tp_tunnel_copy_stats()
1049 l2tp_session_dec_refcount(session); in pppol2tp_tunnel_copy_stats()
1058 struct l2tp_session *session; in pppol2tp_ioctl() local
1063 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1064 if (!session) in pppol2tp_ioctl()
1067 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1071 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1080 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1081 if (!session) in pppol2tp_ioctl()
1084 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1088 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1096 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1097 if (!session) in pppol2tp_ioctl()
1100 if (WARN_ON(session->magic != L2TP_SESSION_MAGIC)) in pppol2tp_ioctl()
1104 if (!session->session_id && !session->peer_session_id) { in pppol2tp_ioctl()
1114 session->tunnel); in pppol2tp_ioctl()
1120 pppol2tp_copy_stats(&stats, &session->stats); in pppol2tp_ioctl()
1121 stats.session_id = session->session_id; in pppol2tp_ioctl()
1123 stats.tunnel_id = session->tunnel->tunnel_id; in pppol2tp_ioctl()
1124 stats.using_ipsec = l2tp_tunnel_uses_xfrm(session->tunnel); in pppol2tp_ioctl()
1171 struct l2tp_session *session, in pppol2tp_session_setsockopt() argument
1182 session->recv_seq = !!val; in pppol2tp_session_setsockopt()
1190 session->send_seq = !!val; in pppol2tp_session_setsockopt()
1197 l2tp_session_set_header_len(session, session->tunnel->version); in pppol2tp_session_setsockopt()
1205 session->lns_mode = !!val; in pppol2tp_session_setsockopt()
1213 session->reorder_timeout = msecs_to_jiffies(val); in pppol2tp_session_setsockopt()
1233 struct l2tp_session *session; in pppol2tp_setsockopt() local
1253 session = pppol2tp_sock_to_session(sk); in pppol2tp_setsockopt()
1254 if (!session) in pppol2tp_setsockopt()
1259 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_setsockopt()
1260 tunnel = session->tunnel; in pppol2tp_setsockopt()
1263 err = pppol2tp_session_setsockopt(sk, session, optname, val); in pppol2tp_setsockopt()
1296 struct l2tp_session *session, in pppol2tp_session_getsockopt() argument
1303 *val = session->recv_seq; in pppol2tp_session_getsockopt()
1307 *val = session->send_seq; in pppol2tp_session_getsockopt()
1311 *val = session->lns_mode; in pppol2tp_session_getsockopt()
1320 *val = (int)jiffies_to_msecs(session->reorder_timeout); in pppol2tp_session_getsockopt()
1339 struct l2tp_session *session; in pppol2tp_getsockopt() local
1361 session = pppol2tp_sock_to_session(sk); in pppol2tp_getsockopt()
1362 if (!session) in pppol2tp_getsockopt()
1366 if (session->session_id == 0 && session->peer_session_id == 0) { in pppol2tp_getsockopt()
1367 tunnel = session->tunnel; in pppol2tp_getsockopt()
1372 err = pppol2tp_session_getsockopt(sk, session, optname, &val); in pppol2tp_getsockopt()
1407 struct l2tp_session *session; /* NULL means get next tunnel */ member
1431 if (pd->session) in pppol2tp_next_session()
1432 l2tp_session_dec_refcount(pd->session); in pppol2tp_next_session()
1434 pd->session = l2tp_session_get_nth(pd->tunnel, pd->session_idx); in pppol2tp_next_session()
1437 if (!pd->session) { in pppol2tp_next_session()
1466 if (!pd->tunnel && !pd->session) in pppol2tp_seq_start()
1489 if (pd->session) { in pppol2tp_seq_stop()
1490 l2tp_session_dec_refcount(pd->session); in pppol2tp_seq_stop()
1491 pd->session = NULL; in pppol2tp_seq_stop()
1519 struct l2tp_session *session = v; in pppol2tp_seq_session_show() local
1520 struct l2tp_tunnel *tunnel = session->tunnel; in pppol2tp_seq_session_show()
1534 sk = pppol2tp_session_get_sock(session); in pppol2tp_seq_session_show()
1537 user_data_ok = (session == sk->sk_user_data) ? 'Y' : 'N'; in pppol2tp_seq_session_show()
1544 session->name, ip, port, in pppol2tp_seq_session_show()
1546 session->session_id, in pppol2tp_seq_session_show()
1548 session->peer_session_id, in pppol2tp_seq_session_show()
1551 session->recv_seq ? 'R' : '-', in pppol2tp_seq_session_show()
1552 session->send_seq ? 'S' : '-', in pppol2tp_seq_session_show()
1553 session->lns_mode ? "LNS" : "LAC", in pppol2tp_seq_session_show()
1555 jiffies_to_msecs(session->reorder_timeout)); in pppol2tp_seq_session_show()
1557 session->nr, session->ns, in pppol2tp_seq_session_show()
1558 atomic_long_read(&session->stats.tx_packets), in pppol2tp_seq_session_show()
1559 atomic_long_read(&session->stats.tx_bytes), in pppol2tp_seq_session_show()
1560 atomic_long_read(&session->stats.tx_errors), in pppol2tp_seq_session_show()
1561 atomic_long_read(&session->stats.rx_packets), in pppol2tp_seq_session_show()
1562 atomic_long_read(&session->stats.rx_bytes), in pppol2tp_seq_session_show()
1563 atomic_long_read(&session->stats.rx_errors)); in pppol2tp_seq_session_show()
1588 if (!pd->session) in pppol2tp_seq_show()
1591 pppol2tp_seq_session_show(m, pd->session); in pppol2tp_seq_show()