Lines Matching full:tunnel

38 			       int flags, struct l2tp_tunnel *tunnel, u8 cmd);
51 struct l2tp_tunnel *tunnel; in l2tp_nl_session_get() local
62 tunnel = l2tp_tunnel_get(net, tunnel_id); in l2tp_nl_session_get()
63 if (tunnel) { in l2tp_nl_session_get()
64 session = l2tp_tunnel_get_session(tunnel, session_id); in l2tp_nl_session_get()
65 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_session_get()
104 struct l2tp_tunnel *tunnel, in l2tp_tunnel_notify() argument
115 NLM_F_ACK, tunnel, cmd); in l2tp_tunnel_notify()
192 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_tunnel_create() local
220 /* Managed tunnels take the tunnel socket from userspace. in l2tp_nl_cmd_tunnel_create()
222 * for the kernel to create the tunnel socket itself. in l2tp_nl_cmd_tunnel_create()
237 peer_tunnel_id, &cfg, &tunnel); in l2tp_nl_cmd_tunnel_create()
244 l2tp_tunnel_inc_refcount(tunnel); in l2tp_nl_cmd_tunnel_create()
245 ret = l2tp_tunnel_register(tunnel, net, &cfg); in l2tp_nl_cmd_tunnel_create()
247 kfree(tunnel); in l2tp_nl_cmd_tunnel_create()
250 ret = l2tp_tunnel_notify(&l2tp_nl_family, info, tunnel, in l2tp_nl_cmd_tunnel_create()
252 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_tunnel_create()
260 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_tunnel_delete() local
271 tunnel = l2tp_tunnel_get(net, tunnel_id); in l2tp_nl_cmd_tunnel_delete()
272 if (!tunnel) { in l2tp_nl_cmd_tunnel_delete()
278 tunnel, L2TP_CMD_TUNNEL_DELETE); in l2tp_nl_cmd_tunnel_delete()
280 l2tp_tunnel_delete(tunnel); in l2tp_nl_cmd_tunnel_delete()
282 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_tunnel_delete()
290 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_tunnel_modify() local
301 tunnel = l2tp_tunnel_get(net, tunnel_id); in l2tp_nl_cmd_tunnel_modify()
302 if (!tunnel) { in l2tp_nl_cmd_tunnel_modify()
308 tunnel, L2TP_CMD_TUNNEL_MODIFY); in l2tp_nl_cmd_tunnel_modify()
310 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_tunnel_modify()
367 /* Append attributes for the tunnel address, handling the different attribute types
368 * used for different tunnel encapsulation and AF_INET v.s. AF_INET6.
370 static int l2tp_nl_tunnel_send_addr(struct sk_buff *skb, struct l2tp_tunnel *tunnel) in l2tp_nl_tunnel_send_addr() argument
372 struct sock *sk = tunnel->sock; in l2tp_nl_tunnel_send_addr()
379 return l2tp_nl_tunnel_send_addr6(skb, sk, tunnel->encap); in l2tp_nl_tunnel_send_addr()
381 return l2tp_nl_tunnel_send_addr4(skb, sk, tunnel->encap); in l2tp_nl_tunnel_send_addr()
385 struct l2tp_tunnel *tunnel, u8 cmd) in l2tp_nl_tunnel_send() argument
394 if (nla_put_u8(skb, L2TP_ATTR_PROTO_VERSION, tunnel->version) || in l2tp_nl_tunnel_send()
395 nla_put_u32(skb, L2TP_ATTR_CONN_ID, tunnel->tunnel_id) || in l2tp_nl_tunnel_send()
396 nla_put_u32(skb, L2TP_ATTR_PEER_CONN_ID, tunnel->peer_tunnel_id) || in l2tp_nl_tunnel_send()
398 nla_put_u16(skb, L2TP_ATTR_ENCAP_TYPE, tunnel->encap)) in l2tp_nl_tunnel_send()
406 atomic_long_read(&tunnel->stats.tx_packets), in l2tp_nl_tunnel_send()
409 atomic_long_read(&tunnel->stats.tx_bytes), in l2tp_nl_tunnel_send()
412 atomic_long_read(&tunnel->stats.tx_errors), in l2tp_nl_tunnel_send()
415 atomic_long_read(&tunnel->stats.rx_packets), in l2tp_nl_tunnel_send()
418 atomic_long_read(&tunnel->stats.rx_bytes), in l2tp_nl_tunnel_send()
421 atomic_long_read(&tunnel->stats.rx_seq_discards), in l2tp_nl_tunnel_send()
424 atomic_long_read(&tunnel->stats.rx_cookie_discards), in l2tp_nl_tunnel_send()
427 atomic_long_read(&tunnel->stats.rx_oos_packets), in l2tp_nl_tunnel_send()
430 atomic_long_read(&tunnel->stats.rx_errors), in l2tp_nl_tunnel_send()
433 atomic_long_read(&tunnel->stats.rx_invalid), in l2tp_nl_tunnel_send()
438 if (l2tp_nl_tunnel_send_addr(skb, tunnel)) in l2tp_nl_tunnel_send()
451 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_tunnel_get() local
470 tunnel = l2tp_tunnel_get(net, tunnel_id); in l2tp_nl_cmd_tunnel_get()
471 if (!tunnel) { in l2tp_nl_cmd_tunnel_get()
477 NLM_F_ACK, tunnel, L2TP_CMD_TUNNEL_GET); in l2tp_nl_cmd_tunnel_get()
481 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_tunnel_get()
486 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_tunnel_get()
496 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_tunnel_dump() local
500 tunnel = l2tp_tunnel_get_nth(net, ti); in l2tp_nl_cmd_tunnel_dump()
501 if (!tunnel) in l2tp_nl_cmd_tunnel_dump()
506 tunnel, L2TP_CMD_TUNNEL_GET) < 0) { in l2tp_nl_cmd_tunnel_dump()
507 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_tunnel_dump()
510 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_tunnel_dump()
527 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_session_create() local
538 tunnel = l2tp_tunnel_get(net, tunnel_id); in l2tp_nl_cmd_session_create()
539 if (!tunnel) { in l2tp_nl_cmd_session_create()
567 if (tunnel->version == 2 && cfg.pw_type != L2TP_PWTYPE_PPP) { in l2tp_nl_cmd_session_create()
572 if (tunnel->version > 2) { in l2tp_nl_cmd_session_create()
632 ret = l2tp_nl_cmd_ops[cfg.pw_type]->session_create(net, tunnel, in l2tp_nl_cmd_session_create()
638 session = l2tp_tunnel_get_session(tunnel, session_id); in l2tp_nl_cmd_session_create()
647 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_session_create()
694 l2tp_session_set_header_len(session, session->tunnel->version); in l2tp_nl_cmd_session_modify()
717 struct l2tp_tunnel *tunnel = session->tunnel; in l2tp_nl_session_send() local
723 if (nla_put_u32(skb, L2TP_ATTR_CONN_ID, tunnel->tunnel_id) || in l2tp_nl_session_send()
725 nla_put_u32(skb, L2TP_ATTR_PEER_CONN_ID, tunnel->peer_tunnel_id) || in l2tp_nl_session_send()
740 (l2tp_tunnel_uses_xfrm(tunnel) && in l2tp_nl_session_send()
833 struct l2tp_tunnel *tunnel = NULL; in l2tp_nl_cmd_session_dump() local
838 if (!tunnel) { in l2tp_nl_cmd_session_dump()
839 tunnel = l2tp_tunnel_get_nth(net, ti); in l2tp_nl_cmd_session_dump()
840 if (!tunnel) in l2tp_nl_cmd_session_dump()
844 session = l2tp_session_get_nth(tunnel, si); in l2tp_nl_cmd_session_dump()
847 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_session_dump()
848 tunnel = NULL; in l2tp_nl_cmd_session_dump()
857 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_cmd_session_dump()