Lines Matching refs:session

138 static struct sock *pppol2tp_session_get_sock(struct l2tp_session *session)  in pppol2tp_session_get_sock()  argument
140 struct pppol2tp_session *ps = l2tp_session_priv(session); in pppol2tp_session_get_sock()
156 struct l2tp_session *session; in pppol2tp_sock_to_session() local
162 session = (struct l2tp_session *)(sk->sk_user_data); in pppol2tp_sock_to_session()
163 if (session == NULL) { in pppol2tp_sock_to_session()
168 BUG_ON(session->magic != L2TP_SESSION_MAGIC); in pppol2tp_sock_to_session()
171 return session; in pppol2tp_sock_to_session()
211 static void pppol2tp_recv(struct l2tp_session *session, struct sk_buff *skb, int data_len) in pppol2tp_recv() argument
213 struct pppol2tp_session *ps = l2tp_session_priv(session); in pppol2tp_recv()
238 l2tp_dbg(session, L2TP_MSG_DATA, in pppol2tp_recv()
240 session->name, data_len); in pppol2tp_recv()
245 l2tp_dbg(session, L2TP_MSG_DATA, in pppol2tp_recv()
247 session->name, data_len); in pppol2tp_recv()
250 atomic_long_inc(&session->stats.rx_errors); in pppol2tp_recv()
260 l2tp_info(session, L2TP_MSG_DATA, "%s: no socket\n", session->name); in pppol2tp_recv()
278 struct l2tp_session *session; in pppol2tp_sendmsg() local
288 session = pppol2tp_sock_to_session(sk); in pppol2tp_sendmsg()
289 if (session == NULL) in pppol2tp_sendmsg()
292 tunnel = session->tunnel; in pppol2tp_sendmsg()
299 uhlen + session->hdr_len + in pppol2tp_sendmsg()
325 l2tp_xmit_skb(session, skb, session->hdr_len); in pppol2tp_sendmsg()
355 struct l2tp_session *session; in pppol2tp_xmit() local
363 session = pppol2tp_sock_to_session(sk); in pppol2tp_xmit()
364 if (session == NULL) in pppol2tp_xmit()
367 tunnel = session->tunnel; in pppol2tp_xmit()
373 session->hdr_len + /* L2TP header */ in pppol2tp_xmit()
384 l2tp_xmit_skb(session, skb, session->hdr_len); in pppol2tp_xmit()
416 struct l2tp_session *session = sk->sk_user_data; in pppol2tp_session_destruct() local
421 if (session) { in pppol2tp_session_destruct()
423 BUG_ON(session->magic != L2TP_SESSION_MAGIC); in pppol2tp_session_destruct()
424 l2tp_session_dec_refcount(session); in pppol2tp_session_destruct()
433 struct l2tp_session *session; in pppol2tp_release() local
451 session = pppol2tp_sock_to_session(sk); in pppol2tp_release()
452 if (session) { in pppol2tp_release()
455 l2tp_session_delete(session); in pppol2tp_release()
457 ps = l2tp_session_priv(session); in pppol2tp_release()
534 struct l2tp_session *session = arg; in pppol2tp_show() local
537 sk = pppol2tp_session_get_sock(session); in pppol2tp_show()
546 static void pppol2tp_session_init(struct l2tp_session *session) in pppol2tp_session_init() argument
550 session->recv_skb = pppol2tp_recv; in pppol2tp_session_init()
552 session->show = pppol2tp_show; in pppol2tp_session_init()
554 ps = l2tp_session_priv(session); in pppol2tp_session_init()
666 struct l2tp_session *session = NULL; in pppol2tp_connect() local
753 session = l2tp_tunnel_get_session(tunnel, info.session_id); in pppol2tp_connect()
754 if (session) { in pppol2tp_connect()
757 if (session->pwtype != L2TP_PWTYPE_PPP) { in pppol2tp_connect()
762 ps = l2tp_session_priv(session); in pppol2tp_connect()
778 session = l2tp_session_create(sizeof(struct pppol2tp_session), in pppol2tp_connect()
781 if (IS_ERR(session)) { in pppol2tp_connect()
782 error = PTR_ERR(session); in pppol2tp_connect()
786 pppol2tp_session_init(session); in pppol2tp_connect()
787 ps = l2tp_session_priv(session); in pppol2tp_connect()
788 l2tp_session_inc_refcount(session); in pppol2tp_connect()
791 error = l2tp_session_register(session, tunnel); in pppol2tp_connect()
794 kfree(session); in pppol2tp_connect()
806 if ((session->session_id == 0) && in pppol2tp_connect()
807 (session->peer_session_id == 0)) { in pppol2tp_connect()
830 sk->sk_user_data = session; in pppol2tp_connect()
841 l2tp_info(session, L2TP_MSG_CONTROL, "%s: created\n", in pppol2tp_connect()
842 session->name); in pppol2tp_connect()
847 l2tp_session_delete(session); in pppol2tp_connect()
852 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 == NULL) in pppol2tp_getname()
925 pls = l2tp_session_priv(session); in pppol2tp_getname()
926 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()
958 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
959 sp.pppol2tp.d_session = session->peer_session_id; in pppol2tp_getname()
977 sp.pppol2tp.s_session = session->session_id; in pppol2tp_getname()
978 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()
1078 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1087 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1088 if (!session) in pppol2tp_ioctl()
1092 if (!session->session_id && !session->peer_session_id) in pppol2tp_ioctl()
1100 session = sock->sk->sk_user_data; in pppol2tp_ioctl()
1101 if (!session) 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()
1174 struct l2tp_session *session, in pppol2tp_session_setsockopt() argument
1185 session->recv_seq = !!val; in pppol2tp_session_setsockopt()
1186 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_setsockopt()
1188 session->name, session->recv_seq); in pppol2tp_session_setsockopt()
1196 session->send_seq = !!val; in pppol2tp_session_setsockopt()
1203 l2tp_session_set_header_len(session, session->tunnel->version); in pppol2tp_session_setsockopt()
1204 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_setsockopt()
1206 session->name, session->send_seq); in pppol2tp_session_setsockopt()
1214 session->lns_mode = !!val; in pppol2tp_session_setsockopt()
1215 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_setsockopt()
1217 session->name, session->lns_mode); in pppol2tp_session_setsockopt()
1221 session->debug = val; in pppol2tp_session_setsockopt()
1222 l2tp_info(session, L2TP_MSG_CONTROL, "%s: set debug=%x\n", in pppol2tp_session_setsockopt()
1223 session->name, session->debug); in pppol2tp_session_setsockopt()
1227 session->reorder_timeout = msecs_to_jiffies(val); in pppol2tp_session_setsockopt()
1228 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_setsockopt()
1230 session->name, session->reorder_timeout); in pppol2tp_session_setsockopt()
1250 struct l2tp_session *session; in pppol2tp_setsockopt() local
1270 session = pppol2tp_sock_to_session(sk); in pppol2tp_setsockopt()
1271 if (session == NULL) in pppol2tp_setsockopt()
1276 if ((session->session_id == 0) && in pppol2tp_setsockopt()
1277 (session->peer_session_id == 0)) { in pppol2tp_setsockopt()
1278 tunnel = session->tunnel; in pppol2tp_setsockopt()
1281 err = pppol2tp_session_setsockopt(sk, session, optname, val); in pppol2tp_setsockopt()
1315 struct l2tp_session *session, in pppol2tp_session_getsockopt() argument
1322 *val = session->recv_seq; in pppol2tp_session_getsockopt()
1323 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_getsockopt()
1324 "%s: get recv_seq=%d\n", session->name, *val); in pppol2tp_session_getsockopt()
1328 *val = session->send_seq; in pppol2tp_session_getsockopt()
1329 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_getsockopt()
1330 "%s: get send_seq=%d\n", session->name, *val); in pppol2tp_session_getsockopt()
1334 *val = session->lns_mode; in pppol2tp_session_getsockopt()
1335 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_getsockopt()
1336 "%s: get lns_mode=%d\n", session->name, *val); in pppol2tp_session_getsockopt()
1340 *val = session->debug; in pppol2tp_session_getsockopt()
1341 l2tp_info(session, L2TP_MSG_CONTROL, "%s: get debug=%d\n", in pppol2tp_session_getsockopt()
1342 session->name, *val); in pppol2tp_session_getsockopt()
1346 *val = (int) jiffies_to_msecs(session->reorder_timeout); in pppol2tp_session_getsockopt()
1347 l2tp_info(session, L2TP_MSG_CONTROL, in pppol2tp_session_getsockopt()
1348 "%s: get reorder_timeout=%d\n", session->name, *val); in pppol2tp_session_getsockopt()
1367 struct l2tp_session *session; in pppol2tp_getsockopt() local
1389 session = pppol2tp_sock_to_session(sk); in pppol2tp_getsockopt()
1390 if (session == NULL) in pppol2tp_getsockopt()
1394 if ((session->session_id == 0) && in pppol2tp_getsockopt()
1395 (session->peer_session_id == 0)) { in pppol2tp_getsockopt()
1396 tunnel = session->tunnel; in pppol2tp_getsockopt()
1401 err = pppol2tp_session_getsockopt(sk, session, optname, &val); in pppol2tp_getsockopt()
1436 struct l2tp_session *session; /* NULL means get next tunnel */ member
1460 if (pd->session) in pppol2tp_next_session()
1461 l2tp_session_dec_refcount(pd->session); in pppol2tp_next_session()
1463 pd->session = l2tp_session_get_nth(pd->tunnel, pd->session_idx); in pppol2tp_next_session()
1466 if (pd->session == NULL) { in pppol2tp_next_session()
1491 if ((pd->tunnel == NULL) && (pd->session == NULL)) in pppol2tp_seq_start()
1514 if (pd->session) { in pppol2tp_seq_stop()
1515 l2tp_session_dec_refcount(pd->session); in pppol2tp_seq_stop()
1516 pd->session = NULL; in pppol2tp_seq_stop()
1544 struct l2tp_session *session = v; in pppol2tp_seq_session_show() local
1545 struct l2tp_tunnel *tunnel = session->tunnel; in pppol2tp_seq_session_show()
1558 sk = pppol2tp_session_get_sock(session); in pppol2tp_seq_session_show()
1561 user_data_ok = (session == sk->sk_user_data) ? 'Y' : 'N'; in pppol2tp_seq_session_show()
1569 session->name, ip, port, in pppol2tp_seq_session_show()
1571 session->session_id, in pppol2tp_seq_session_show()
1573 session->peer_session_id, in pppol2tp_seq_session_show()
1576 session->recv_seq ? 'R' : '-', in pppol2tp_seq_session_show()
1577 session->send_seq ? 'S' : '-', in pppol2tp_seq_session_show()
1578 session->lns_mode ? "LNS" : "LAC", in pppol2tp_seq_session_show()
1579 session->debug, in pppol2tp_seq_session_show()
1580 jiffies_to_msecs(session->reorder_timeout)); in pppol2tp_seq_session_show()
1582 session->nr, session->ns, in pppol2tp_seq_session_show()
1583 atomic_long_read(&session->stats.tx_packets), in pppol2tp_seq_session_show()
1584 atomic_long_read(&session->stats.tx_bytes), in pppol2tp_seq_session_show()
1585 atomic_long_read(&session->stats.tx_errors), in pppol2tp_seq_session_show()
1586 atomic_long_read(&session->stats.rx_packets), in pppol2tp_seq_session_show()
1587 atomic_long_read(&session->stats.rx_bytes), in pppol2tp_seq_session_show()
1588 atomic_long_read(&session->stats.rx_errors)); in pppol2tp_seq_session_show()
1614 if (!pd->session) in pppol2tp_seq_show()
1617 pppol2tp_seq_session_show(m, pd->session); in pppol2tp_seq_show()