b342d0744f37528eb71ec2d5d8e64b4bc49c5b4c
[dragonfly.git] / sbin / atm / atm / atm.h
1 /*
2  *
3  * ===================================
4  * HARP  |  Host ATM Research Platform
5  * ===================================
6  *
7  *
8  * This Host ATM Research Platform ("HARP") file (the "Software") is
9  * made available by Network Computing Services, Inc. ("NetworkCS")
10  * "AS IS".  NetworkCS does not provide maintenance, improvements or
11  * support of any kind.
12  *
13  * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
14  * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
15  * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
16  * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
17  * In no event shall NetworkCS be responsible for any damages, including
18  * but not limited to consequential damages, arising from or relating to
19  * any use of the Software or related support.
20  *
21  * Copyright 1994-1998 Network Computing Services, Inc.
22  *
23  * Copies of this Software may be made, however, the above copyright
24  * notice must be reproduced on all copies.
25  *
26  *      @(#) $FreeBSD: src/sbin/atm/atm/atm.h,v 1.4 1999/08/28 00:12:17 peter Exp $
27  *      @(#) $DragonFly: src/sbin/atm/atm/atm.h,v 1.2 2003/06/17 04:27:32 dillon Exp $
28  *
29  */
30
31 /*
32  * User configuration and display program
33  * --------------------------------------
34  *
35  * Control blocks
36  *
37  */
38
39 #define MAX_NIFS        256             /* Max network interfaces */
40 #define MIN_VCI         32              /* Smallest non-reserved VCI */
41
42 #ifndef TRUE
43 #define TRUE    1
44 #endif
45 #ifndef FALSE
46 #define FALSE   0
47 #endif
48
49  
50 /*
51  * User commands
52  */
53 struct cmd {
54         char    *name;                  /* Command name */
55         int     minp;                   /* Minimum number of parameters */
56         int     maxp;                   /* Maximum number of parameters */
57         void    (*func)                 /* Processing function */
58                         __P((int, char **, struct cmd *));
59         char    *help;                  /* User help string */
60 };
61
62
63 /*
64  * Supported signalling protocols
65  */
66 struct proto {
67         char    *p_name;                /* Protocol name */
68         u_char  p_id;                   /* Protocol id */ 
69 };
70
71
72 /*
73  * Table of state names
74  */
75 struct state {
76         char    *s_name;                /* State name */
77         u_char  s_id;                   /* State id */ 
78 };
79
80
81 /*
82  * Supported signalling protocol states
83  */
84 struct proto_state {
85         char            *p_name;        /* Signalling manager name */
86         struct state    *p_state;       /* Protocol state table */
87         struct state    *v_state;       /* Protocol VCC state table */
88         u_char          p_id;           /* Protocol ID */ 
89 };
90
91
92 /*
93  * Supported VCC owners
94  */
95 struct owner {
96         char    *o_name;                /* Owner name */
97         u_int   o_sap;                  /* Owner's SAP */
98         void    (*o_pvcadd)             /* PVC ADD processing function */
99                         __P((int, char **, struct cmd *, struct atmaddreq *,
100                              struct air_int_rsp *));
101 };
102
103
104 /*
105  * Supported AALs
106  */
107 struct aal {
108         char    *a_name;                /* AAL name */
109         u_char  a_id;                   /* AAL code */ 
110 };
111
112
113 /*
114  * Supported encapsulations
115  */
116 struct encaps {
117         char    *e_name;                /* Encapsulation name */
118         u_char  e_id;                   /* Encapsulation code */ 
119 };
120
121
122 /*
123  * External variables
124  */
125 extern char     *prog;                  /* Program invocation */
126 extern char     prefix[];               /* Current command prefix */
127
128 /*
129  * Global function declarations
130  */
131         /* atm.c */
132 int             do_cmd __P((struct cmd *, int, char **));
133 void            usage __P((struct cmd *, char *));
134 void            attach __P((int, char **, struct cmd *));
135 void            detach __P((int, char **, struct cmd *));
136 void            pvc_add __P((int, char **, struct cmd *));
137 void            arp_add __P((int, char **, struct cmd *));
138 void            pvc_dlt __P((int, char **, struct cmd *));
139 void            svc_dlt __P((int, char **, struct cmd *));
140 void            vcc_dlt __P((int, char **, struct cmd *, struct atmdelreq *));
141 void            arp_dlt __P((int, char **, struct cmd *));
142 void            help __P((int, char **, struct cmd *));
143
144         /* atm_eni.c */
145 void            show_eni_stats __P((char *, int, char **));
146 void            print_eni_oc3 __P((struct air_vinfo_rsp *));
147 void            print_eni_atm __P((struct air_vinfo_rsp *));
148 void            print_eni_aal0 __P((struct air_vinfo_rsp *));
149 void            print_eni_aal5 __P((struct air_vinfo_rsp *));
150 void            print_eni_driver __P((struct air_vinfo_rsp *));
151
152         /* atm_fore200.c */
153 void            show_fore200_stats __P((char *, int, char **));
154 void            print_fore200_taxi __P((struct air_vinfo_rsp *));
155 void            print_fore200_oc3 __P((struct air_vinfo_rsp *));
156 void            print_fore200_dev __P((struct air_vinfo_rsp *));
157 void            print_fore200_atm __P((struct air_vinfo_rsp *));
158 void            print_fore200_aal0 __P((struct air_vinfo_rsp *));
159 void            print_fore200_aal4 __P((struct air_vinfo_rsp *));
160 void            print_fore200_aal5 __P((struct air_vinfo_rsp *));
161 void            print_fore200_driver __P((struct air_vinfo_rsp *));
162
163         /* atm_inet.c */
164 void            ip_pvcadd __P((int, char **, struct cmd *, struct atmaddreq *,
165                         struct air_int_rsp *));
166
167         /* atm_print.c */
168 void            print_arp_info __P((struct air_arp_rsp *));
169 void            print_asrv_info __P((struct air_asrv_rsp *));
170 void            print_cfg_info __P((struct air_cfg_rsp *));
171 void            print_intf_info __P((struct air_int_rsp *));
172 void            print_ip_vcc_info __P((struct air_ip_vcc_rsp *));
173 void            print_netif_info __P((struct air_netif_rsp *));
174 void            print_intf_stats __P((struct air_phy_stat_rsp *));
175 void            print_vcc_stats __P((struct air_vcc_rsp *));
176 void            print_vcc_info __P((struct air_vcc_rsp *));
177 void            print_version_info __P((struct air_version_rsp *));
178
179         /* atm_set.c */
180 void            set_arpserver __P((int, char **, struct cmd *));
181 void            set_macaddr __P((int, char **, struct cmd *));
182 void            set_netif __P((int, char **, struct cmd *));
183 void            set_prefix __P((int, char **, struct cmd *));
184
185         /* atm_show.c */
186 void            show_arp __P((int, char **, struct cmd *));
187 void            show_arpserv __P((int, char **, struct cmd *));
188 void            show_config __P((int, char **, struct cmd *));
189 void            show_intf __P((int, char **, struct cmd *));
190 void            show_ip_vcc __P((int, char **, struct cmd *));
191 void            show_netif __P((int, char **, struct cmd *));
192 void            show_intf_stats __P((int, char **, struct cmd *));
193 void            show_vcc_stats __P((int, char **, struct cmd *));
194 void            show_vcc __P((int, char **, struct cmd *));
195 void            show_version __P((int, char **, struct cmd *));
196
197         /* atm_subr.c */
198 char *          get_vendor __P((int));
199 char *          get_adapter __P((int));
200 char *          get_media_type __P((int));
201 char *          get_bus_type __P((int));
202 char *          get_bus_slot_info __P((int, u_long));
203 char *          get_adapter_name __P((char *));
204 int             do_info_ioctl __P((struct atminfreq *, int));
205 int             get_vcc_info __P((char *, struct air_vcc_rsp **));
206 int             verify_nif_name __P((char *));
207 struct sockaddr_in *
208                 get_ip_addr __P((char *));
209 int             get_hex_addr __P((char *, u_char *, int));
210 char *          format_mac_addr __P((Mac_addr *));
211 int             parse_ip_prefix __P((char *, struct in_addr *));
212 int             compress_prefix_list __P((struct in_addr *, int));
213 void            check_netif_name __P((char *));
214 void            sock_error __P((int));