~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/if_pppol2tp.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
  2 /***************************************************************************
  3  * Linux PPP over L2TP (PPPoL2TP) Socket Implementation (RFC 2661)
  4  *
  5  * This file supplies definitions required by the PPP over L2TP driver
  6  * (l2tp_ppp.c).  All version information wrt this file is located in l2tp_ppp.c
  7  *
  8  * License:
  9  *              This program is free software; you can redistribute it and/or
 10  *              modify it under the terms of the GNU General Public License
 11  *              as published by the Free Software Foundation; either version
 12  *              2 of the License, or (at your option) any later version.
 13  *
 14  */
 15 
 16 #ifndef _UAPI__LINUX_IF_PPPOL2TP_H
 17 #define _UAPI__LINUX_IF_PPPOL2TP_H
 18 
 19 #include <linux/types.h>
 20 #include <linux/in.h>
 21 #include <linux/in6.h>
 22 #include <linux/l2tp.h>
 23 
 24 /* Structure used to connect() the socket to a particular tunnel UDP
 25  * socket over IPv4.
 26  */
 27 struct pppol2tp_addr {
 28         __kernel_pid_t  pid;            /* pid that owns the fd.
 29                                          * 0 => current */
 30         int     fd;                     /* FD of UDP socket to use */
 31 
 32         struct sockaddr_in addr;        /* IP address and port to send to */
 33 
 34         __u16 s_tunnel, s_session;      /* For matching incoming packets */
 35         __u16 d_tunnel, d_session;      /* For sending outgoing packets */
 36 };
 37 
 38 /* Structure used to connect() the socket to a particular tunnel UDP
 39  * socket over IPv6.
 40  */
 41 struct pppol2tpin6_addr {
 42         __kernel_pid_t  pid;            /* pid that owns the fd.
 43                                          * 0 => current */
 44         int     fd;                     /* FD of UDP socket to use */
 45 
 46         __u16 s_tunnel, s_session;      /* For matching incoming packets */
 47         __u16 d_tunnel, d_session;      /* For sending outgoing packets */
 48 
 49         struct sockaddr_in6 addr;       /* IP address and port to send to */
 50 };
 51 
 52 /* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
 53  * bits. So we need a different sockaddr structure.
 54  */
 55 struct pppol2tpv3_addr {
 56         __kernel_pid_t  pid;            /* pid that owns the fd.
 57                                          * 0 => current */
 58         int     fd;                     /* FD of UDP or IP socket to use */
 59 
 60         struct sockaddr_in addr;        /* IP address and port to send to */
 61 
 62         __u32 s_tunnel, s_session;      /* For matching incoming packets */
 63         __u32 d_tunnel, d_session;      /* For sending outgoing packets */
 64 };
 65 
 66 struct pppol2tpv3in6_addr {
 67         __kernel_pid_t  pid;            /* pid that owns the fd.
 68                                          * 0 => current */
 69         int     fd;                     /* FD of UDP or IP socket to use */
 70 
 71         __u32 s_tunnel, s_session;      /* For matching incoming packets */
 72         __u32 d_tunnel, d_session;      /* For sending outgoing packets */
 73 
 74         struct sockaddr_in6 addr;       /* IP address and port to send to */
 75 };
 76 
 77 /* Socket options:
 78  * DEBUG        - bitmask of debug message categories (not used)
 79  * SENDSEQ      - 0 => don't send packets with sequence numbers
 80  *                1 => send packets with sequence numbers
 81  * RECVSEQ      - 0 => receive packet sequence numbers are optional
 82  *                1 => drop receive packets without sequence numbers
 83  * LNSMODE      - 0 => act as LAC.
 84  *                1 => act as LNS.
 85  * REORDERTO    - reorder timeout (in millisecs). If 0, don't try to reorder.
 86  */
 87 enum {
 88         PPPOL2TP_SO_DEBUG       = 1,
 89         PPPOL2TP_SO_RECVSEQ     = 2,
 90         PPPOL2TP_SO_SENDSEQ     = 3,
 91         PPPOL2TP_SO_LNSMODE     = 4,
 92         PPPOL2TP_SO_REORDERTO   = 5,
 93 };
 94 
 95 /* Debug message categories for the DEBUG socket option (deprecated) */
 96 enum {
 97         PPPOL2TP_MSG_DEBUG      = L2TP_MSG_DEBUG,
 98         PPPOL2TP_MSG_CONTROL    = L2TP_MSG_CONTROL,
 99         PPPOL2TP_MSG_SEQ        = L2TP_MSG_SEQ,
100         PPPOL2TP_MSG_DATA       = L2TP_MSG_DATA,
101 };
102 
103 
104 
105 #endif /* _UAPI__LINUX_IF_PPPOL2TP_H */
106 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php