Root/package/network/services/ppp/patches/430-pppol2tpv3-struct.patch

1pppol2tp: Provide struct pppol2tpv3_addr to align with Linux
2
3The struct pppol2tpv3_addr is referenced in the current Linux kernel sources
4but not provided by the shipped kernel headers, add it.
5
6Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
7
8--- a/include/linux/if_pppol2tp.h
9+++ b/include/linux/if_pppol2tp.h
10@@ -32,6 +32,46 @@ struct pppol2tp_addr
11     __u16 d_tunnel, d_session; /* For sending outgoing packets */
12 };
13 
14+/* Structure used to connect() the socket to a particular tunnel UDP
15+ * socket over IPv6.
16+ */
17+struct pppol2tpin6_addr
18+{
19+ pid_t pid; /* pid that owns the fd.
20+ * 0 => current */
21+ int fd; /* FD of UDP socket to use */
22+
23+ __u16 s_tunnel, s_session; /* For matching incoming packets */
24+ __u16 d_tunnel, d_session; /* For sending outgoing packets */
25+
26+ struct sockaddr_in6 addr; /* IP address and port to send to */
27+};
28+
29+/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
30+ * bits. So we need a different sockaddr structure.
31+ */
32+struct pppol2tpv3_addr {
33+ pid_t pid; /* pid that owns the fd.
34+ * 0 => current */
35+ int fd; /* FD of UDP or IP socket to use */
36+
37+ struct sockaddr_in addr; /* IP address and port to send to */
38+
39+ __u32 s_tunnel, s_session; /* For matching incoming packets */
40+ __u32 d_tunnel, d_session; /* For sending outgoing packets */
41+};
42+
43+struct pppol2tpv3in6_addr {
44+ pid_t pid; /* pid that owns the fd.
45+ * 0 => current */
46+ int fd; /* FD of UDP or IP socket to use */
47+
48+ __u32 s_tunnel, s_session; /* For matching incoming packets */
49+ __u32 d_tunnel, d_session; /* For sending outgoing packets */
50+
51+ struct sockaddr_in6 addr; /* IP address and port to send to */
52+};
53+
54 /* Socket options:
55  * DEBUG - bitmask of debug message categories
56  * SENDSEQ - 0 => don't send packets with sequence numbers
57

Archive Download this file



interactive