/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * L2TP-over-IP socket for L2TPv3. * * Author: James Chapman <[email protected]> */ #ifndef _UAPI_LINUX_L2TP_H_ #define _UAPI_LINUX_L2TP_H_ #include <linux/types.h> #include <linux/socket.h> #include <linux/in.h> #include <linux/in6.h> /** * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets * @l2tp_family: address family number AF_L2TPIP. * @l2tp_addr: protocol specific address information * @l2tp_conn_id: connection id of tunnel */ #define __SOCK_SIZE__ … struct sockaddr_l2tpip { … }; /** * struct sockaddr_l2tpip6 - the sockaddr structure for L2TP-over-IPv6 sockets * @l2tp_family: address family number AF_L2TPIP. * @l2tp_addr: protocol specific address information * @l2tp_conn_id: connection id of tunnel */ struct sockaddr_l2tpip6 { … }; /***************************************************************************** * NETLINK_GENERIC netlink family. *****************************************************************************/ /* * Commands. * Valid TLVs of each command are:- * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum * TUNNEL_DELETE - CONN_ID * TUNNEL_MODIFY - CONN_ID, udpcsum * TUNNEL_GETSTATS - CONN_ID, (stats) * TUNNEL_GET - CONN_ID, (...) * SESSION_CREATE - SESSION_ID, PW_TYPE, cookie, peer_cookie, l2spec * SESSION_DELETE - SESSION_ID * SESSION_MODIFY - SESSION_ID * SESSION_GET - SESSION_ID, (...) * SESSION_GETSTATS - SESSION_ID, (stats) * */ enum { … }; #define L2TP_CMD_MAX … /* * ATTR types defined for L2TP */ enum { … }; #define L2TP_ATTR_MAX … /* Nested in L2TP_ATTR_STATS */ enum { … }; #define L2TP_ATTR_STATS_MAX … enum l2tp_pwtype { … }; enum l2tp_l2spec_type { … }; enum l2tp_encap_type { … }; /* For L2TP_ATTR_DATA_SEQ. Unused. */ enum l2tp_seqmode { … }; /** * enum l2tp_debug_flags - debug message categories for L2TP tunnels/sessions. * * Unused. * * @L2TP_MSG_DEBUG: verbose debug (if compiled in) * @L2TP_MSG_CONTROL: userspace - kernel interface * @L2TP_MSG_SEQ: sequence numbers * @L2TP_MSG_DATA: data packets */ enum l2tp_debug_flags { … }; /* * NETLINK_GENERIC related info */ #define L2TP_GENL_NAME … #define L2TP_GENL_VERSION … #define L2TP_GENL_MCGROUP … #endif /* _UAPI_LINUX_L2TP_H_ */