xref: /freebsd/usr.sbin/ppp/route.h (revision 6b4579784c45018506c8d7b93e89341111022c9f)
1ed6a16c1SPoul-Henning Kamp /*
2ed6a16c1SPoul-Henning Kamp  *			User Process PPP
3ed6a16c1SPoul-Henning Kamp  *
4ed6a16c1SPoul-Henning Kamp  *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
5ed6a16c1SPoul-Henning Kamp  *
6ed6a16c1SPoul-Henning Kamp  *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
7ed6a16c1SPoul-Henning Kamp  *
8ed6a16c1SPoul-Henning Kamp  * Redistribution and use in source and binary forms are permitted
9ed6a16c1SPoul-Henning Kamp  * provided that the above copyright notice and this paragraph are
10ed6a16c1SPoul-Henning Kamp  * duplicated in all such forms and that any documentation,
11ed6a16c1SPoul-Henning Kamp  * advertising materials, and other materials related to such
12ed6a16c1SPoul-Henning Kamp  * distribution and use acknowledge that the software was developed
13ed6a16c1SPoul-Henning Kamp  * by the Internet Initiative Japan, Inc.  The name of the
14ed6a16c1SPoul-Henning Kamp  * IIJ may not be used to endorse or promote products derived
15ed6a16c1SPoul-Henning Kamp  * from this software without specific prior written permission.
16ed6a16c1SPoul-Henning Kamp  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
17ed6a16c1SPoul-Henning Kamp  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
18ed6a16c1SPoul-Henning Kamp  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19ed6a16c1SPoul-Henning Kamp  *
2097d92980SPeter Wemm  * $FreeBSD$
21ed6a16c1SPoul-Henning Kamp  *
22ed6a16c1SPoul-Henning Kamp  */
23ed6a16c1SPoul-Henning Kamp 
242764b86aSBrian Somers struct bundle;
252764b86aSBrian Somers struct cmdargs;
266b457978SBrian Somers struct rt_msghdr;
276b457978SBrian Somers struct sockaddr;
282764b86aSBrian Somers 
29610b185fSBrian Somers #define ROUTE_STATIC		0
30610b185fSBrian Somers #define ROUTE_DSTMYADDR		1
31610b185fSBrian Somers #define ROUTE_DSTHISADDR	2
32610b185fSBrian Somers #define ROUTE_DSTANY		3
33610b185fSBrian Somers #define ROUTE_GWHISADDR		4	/* May be ORd with DST_MYADDR */
34610b185fSBrian Somers 
35610b185fSBrian Somers struct sticky_route {
36610b185fSBrian Somers   int type;				/* ROUTE_* value (not _STATIC) */
37610b185fSBrian Somers   struct sticky_route *next;		/* next in list */
38610b185fSBrian Somers 
39610b185fSBrian Somers   struct in_addr dst;
40610b185fSBrian Somers   struct in_addr mask;
41610b185fSBrian Somers   struct in_addr gw;
42610b185fSBrian Somers };
43610b185fSBrian Somers 
4475240ed1SBrian Somers extern int GetIfIndex(char *);
45dd7e2610SBrian Somers extern int route_Show(struct cmdargs const *);
46dd7e2610SBrian Somers extern void route_IfDelete(struct bundle *, int);
47c6fe0cb2SBrian Somers extern const char *Index2Nam(int);
48610b185fSBrian Somers extern void route_Change(struct bundle *, struct sticky_route *,
49610b185fSBrian Somers                          struct in_addr, struct in_addr);
50610b185fSBrian Somers extern void route_Add(struct sticky_route **, int, struct in_addr,
51610b185fSBrian Somers                       struct in_addr, struct in_addr);
52610b185fSBrian Somers extern void route_Delete(struct sticky_route **, int, struct in_addr);
53610b185fSBrian Somers extern void route_DeleteAll(struct sticky_route **);
54610b185fSBrian Somers extern void route_Clean(struct bundle *, struct sticky_route *);
55972a1bcfSBrian Somers extern void route_ShowSticky(struct prompt *, struct sticky_route *,
56972a1bcfSBrian Somers                              const char *, int);
576b457978SBrian Somers extern void route_ParseHdr(struct rt_msghdr *, struct sockaddr *[RTAX_MAX]);
58