1 /* $NetBSD: if_sppp.h,v 1.25 2008/02/20 17:05:53 matt Exp $ */
4 * Copyright (c) 2002 The NetBSD Foundation, Inc.
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Martin Husemann <martin@NetBSD.org>.
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
32 #ifndef _NET_IF_SPPP_H_
33 #define _NET_IF_SPPP_H_
35 /* ioctls used by the if_spppsubr.c driver */
37 #define SPPP_AUTHPROTO_NONE 0
38 #define SPPP_AUTHPROTO_PAP 1
39 #define SPPP_AUTHPROTO_CHAP 2
41 #define SPPP_AUTHFLAG_NOCALLOUT 1 /* do not require authentication on */
43 #define SPPP_AUTHFLAG_NORECHALLENGE 2 /* do not re-challenge CHAP */
46 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
47 u_int hisauth
; /* one of SPPP_AUTHPROTO_* above */
48 u_int myauth
; /* one of SPPP_AUTHPROTO_* above */
49 u_int myname_length
; /* includes terminating 0 */
50 u_int mysecret_length
; /* includes terminating 0 */
51 u_int hisname_length
; /* includes terminating 0 */
52 u_int hissecret_length
; /* includes terminating 0 */
61 #define SPPPGETAUTHCFG _IOWR('i', 120, struct spppauthcfg)
62 #define SPPPSETAUTHCFG _IOW('i', 121, struct spppauthcfg)
65 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
66 int lcp_timeout
; /* LCP timeout, in ticks */
69 #define SPPPGETLCPCFG _IOWR('i', 122, struct sppplcpcfg)
70 #define SPPPSETLCPCFG _IOW('i', 123, struct sppplcpcfg)
73 * Don't change the order of this. Ordering the phases this way allows
74 * for a comparision of ``pp_phase >= PHASE_AUTHENTICATE'' in order to
75 * know whether LCP is up.
77 #define SPPP_PHASE_DEAD 0
78 #define SPPP_PHASE_ESTABLISH 1
79 #define SPPP_PHASE_TERMINATE 2
80 #define SPPP_PHASE_AUTHENTICATE 3
81 #define SPPP_PHASE_NETWORK 4
84 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
85 int phase
; /* one of SPPP_PHASE_* above */
88 #define SPPPGETSTATUS _IOWR('i', 124, struct spppstatus)
90 struct spppstatusncp
{
91 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
92 int phase
; /* one of SPPP_PHASE_* above */
93 int ncpup
; /* != 0 if at least on NCP is up */
96 #define SPPPGETSTATUSNCP _IOWR('i', 134, struct spppstatusncp)
98 struct spppidletimeout
{
99 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
100 time_t idle_seconds
; /* number of seconds idle before
101 * disconnect, 0 to disable idle-timeout */
104 #define SPPPGETIDLETO _IOWR('i', 125, struct spppidletimeout)
105 #define SPPPSETIDLETO _IOW('i', 126, struct spppidletimeout)
107 struct spppauthfailurestats
{
108 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
109 int auth_failures
; /* number of LCP failures since last successful TLU */
110 int max_failures
; /* max. allowed authorization failures */
113 #define SPPPGETAUTHFAILURES _IOWR('i', 127, struct spppauthfailurestats)
115 struct spppauthfailuresettings
{
116 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
117 int max_failures
; /* max. allowed authorization failures */
119 #define SPPPSETAUTHFAILURE _IOW('i', 128, struct spppauthfailuresettings)
121 /* set the DNS options we would like to query during PPP negotiation */
122 struct spppdnssettings
{
123 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
124 int query_dns
; /* bitmask (bits 0 and 1) for DNS options to query in IPCP */
126 #define SPPPSETDNSOPTS _IOW('i', 129, struct spppdnssettings)
127 #define SPPPGETDNSOPTS _IOWR('i', 130, struct spppdnssettings)
129 /* get the DNS addresses we received from the peer */
130 struct spppdnsaddrs
{
131 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
132 uint32_t dns
[2]; /* IP addresses */
135 #define SPPPGETDNSADDRS _IOWR('i', 131, struct spppdnsaddrs)
137 /* set LCP keepalive/timeout options */
138 struct spppkeepalivesettings
{
139 char ifname
[IFNAMSIZ
]; /* pppoe interface name */
140 u_int maxalive
; /* number of LCP echo req. w/o reply */
141 time_t max_noreceive
; /* (sec.) grace period before we start
142 sending LCP echo requests. */
144 #define SPPPSETKEEPALIVE _IOW('i', 132, struct spppkeepalivesettings)
145 #define SPPPGETKEEPALIVE _IOWR('i', 133, struct spppkeepalivesettings)
147 /* 134 already used! */
149 #endif /* !_NET_IF_SPPP_H_ */