1706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh/*- 2706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * Copyright (c) 1998 Brian Somers <brian@Awfulhak.org> 3706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * All rights reserved. 4706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * 5706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * Redistribution and use in source and binary forms, with or without 6706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * modification, are permitted provided that the following conditions 7706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * are met: 8706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * 1. Redistributions of source code must retain the above copyright 9706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * notice, this list of conditions and the following disclaimer. 10706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * 2. Redistributions in binary form must reproduce the above copyright 11706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * notice, this list of conditions and the following disclaimer in the 12706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * documentation and/or other materials provided with the distribution. 13706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * 14706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * SUCH DAMAGE. 25706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * 26706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh * $FreeBSD: src/usr.sbin/ppp/cbcp.h,v 1.3.62.1 2010/12/21 17:10:29 kensmith Exp $ 27706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh */ 28706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh 29706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehstruct mbuf; 30706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehstruct physical; 31706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehstruct datalink; 32706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh 33706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh/* fsm states */ 34706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh#define CBCP_CLOSED (0) /* Not in use */ 35706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh#define CBCP_STOPPED (1) /* Waiting for a REQ */ 36706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh#define CBCP_REQSENT (2) /* Waiting for a RESP */ 37706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh#define CBCP_RESPSENT (3) /* Waiting for an ACK */ 38706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh#define CBCP_ACKSENT (4) /* Waiting for an LCP Term REQ */ 39706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh 40706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehstruct cbcpcfg { 41706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh u_char delay; 42706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh char phone[SCRIPT_LEN]; 43706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh long fsmretry; 44706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh}; 45706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh 46706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehstruct cbcp { 47706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh unsigned required : 1; /* Are we gonna call back ? */ 48706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh struct physical *p; /* On this physical link */ 49706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh struct { 50706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh u_char type; /* cbcp_data::type (none/me/him/list) */ 51706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh u_char delay; /* How long to delay */ 52706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh char phone[SCRIPT_LEN]; /* What to dial */ 53706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh 54706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh int state; /* Our FSM state */ 55706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh u_char id; /* Our FSM ID */ 56706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh u_char restart; /* FSM Send again ? */ 57706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh struct pppTimer timer; /* Resend last option */ 58706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh } fsm; 59706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh}; 60706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yeh 61706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehextern void cbcp_Init(struct cbcp *, struct physical *); 62706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehextern void cbcp_Up(struct cbcp *); 63706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehextern struct mbuf *cbcp_Input(struct bundle *, struct link *, struct mbuf *); 64706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehextern void cbcp_Down(struct cbcp *); 65706e567fc5ff6b79738a5f470e5aa7b2cae76459Chia-chi Yehextern void cbcp_ReceiveTerminateReq(struct physical *); 66