xref: /linux-6.15/include/linux/l2tp.h (revision 0d76751f)
1 /*
2  * L2TP-over-IP socket for L2TPv3.
3  *
4  * Author: James Chapman <[email protected]>
5  */
6 
7 #ifndef _LINUX_L2TP_H_
8 #define _LINUX_L2TP_H_
9 
10 #include <linux/types.h>
11 #ifdef __KERNEL__
12 #include <linux/socket.h>
13 #include <linux/in.h>
14 #endif
15 
16 #define IPPROTO_L2TP		115
17 
18 /**
19  * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets
20  * @l2tp_family:  address family number AF_L2TPIP.
21  * @l2tp_addr:    protocol specific address information
22  * @l2tp_conn_id: connection id of tunnel
23  */
24 struct sockaddr_l2tpip {
25 	/* The first fields must match struct sockaddr_in */
26 	sa_family_t	l2tp_family;	/* AF_INET */
27 	__be16		l2tp_unused;	/* INET port number (unused) */
28 	struct in_addr	l2tp_addr;	/* Internet address */
29 
30 	__u32		l2tp_conn_id;	/* Connection ID of tunnel */
31 
32 	/* Pad to size of `struct sockaddr'. */
33 	unsigned char	__pad[sizeof(struct sockaddr) - sizeof(sa_family_t) -
34 			      sizeof(__be16) - sizeof(struct in_addr) -
35 			      sizeof(__u32)];
36 };
37 
38 #endif
39