moved protos here from ipcp.h; print reason on terminate-request;
[ppp.git] / pppd / ipxcp.h
1 /*
2  * ipxcp.h - IPX Control Protocol definitions.
3  *
4  * Copyright (c) 1989 Carnegie Mellon University.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms are permitted
8  * provided that the above copyright notice and this paragraph are
9  * duplicated in all such forms and that any documentation,
10  * advertising materials, and other materials related to such
11  * distribution and use acknowledge that the software was developed
12  * by Carnegie Mellon University.  The name of the
13  * University may not be used to endorse or promote products derived
14  * from this software without specific prior written permission.
15  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18  *
19  * $Id: ipxcp.h,v 1.1 1995/12/18 03:33:00 paulus Exp $
20  */
21
22 /*
23  * Options.
24  */
25 #define IPX_NETWORK_NUMBER        1   /* IPX Network Number */
26 #define IPX_NODE_NUMBER           2
27 #define IPX_COMPRESSION_PROTOCOL  3
28 #define IPX_ROUTER_PROTOCOL       4
29 #define IPX_ROUTER_NAME           5
30 #define IPX_COMPLETE              6
31
32
33 typedef struct ipxcp_options {
34     int neg_node       : 1;     /* Negotiate IPX node number? */
35     int req_node       : 1;     /* Ask peer to send IPX node number? */
36
37     int neg_nn         : 1;     /* Negotiate IPX network number? */
38     int req_nn         : 1;     /* Ask peer to send IPX network number */
39
40     int neg_name       : 1;     /* Negotiate IPX router name */
41     int neg_complete   : 1;     /* Negotiate completion */
42     int neg_router     : 1;     /* Negotiate IPX router number */
43
44     int accept_local   : 1;     /* accept peer's value for ournode */
45     int accept_remote  : 1;     /* accept peer's value for hisnode */
46     int accept_network : 1;     /* accept network number */
47
48     u_int32_t his_network;      /* base network number */
49     u_int32_t our_network;      /* our value for network number */
50     u_int32_t network;          /* the final network number */
51
52     u_char his_node[6];         /* peer's node number */
53     u_char our_node[6];         /* our node number */
54     u_char name [48];           /* name of the router */
55     int    router;              /* routing protocol */
56 } ipxcp_options;
57
58 extern fsm ipxcp_fsm[];
59 extern ipxcp_options ipxcp_wantoptions[];
60 extern ipxcp_options ipxcp_gotoptions[];
61 extern ipxcp_options ipxcp_allowoptions[];
62 extern ipxcp_options ipxcp_hisoptions[];
63
64 void ipxcp_init __P((int));
65 void ipxcp_open __P((int));
66 void ipxcp_close __P((int, char *));
67 void ipxcp_lowerup __P((int));
68 void ipxcp_lowerdown __P((int));
69 void ipxcp_input __P((int, u_char *, int));
70 void ipxcp_protrej __P((int));
71 int  ipxcp_printpkt __P((u_char *, int, void (*)(), void *));
72
73 extern struct protent ipxcp_protent;