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 * 20972a1bcfSBrian Somers * $Id: route.h,v 1.11 1998/05/21 21:48:12 brian Exp $ 21ed6a16c1SPoul-Henning Kamp * 22ed6a16c1SPoul-Henning Kamp */ 23ed6a16c1SPoul-Henning Kamp 242764b86aSBrian Somers struct bundle; 252764b86aSBrian Somers struct cmdargs; 262764b86aSBrian Somers 27610b185fSBrian Somers #define ROUTE_STATIC 0 28610b185fSBrian Somers #define ROUTE_DSTMYADDR 1 29610b185fSBrian Somers #define ROUTE_DSTHISADDR 2 30610b185fSBrian Somers #define ROUTE_DSTANY 3 31610b185fSBrian Somers #define ROUTE_GWHISADDR 4 /* May be ORd with DST_MYADDR */ 32610b185fSBrian Somers 33610b185fSBrian Somers struct sticky_route { 34610b185fSBrian Somers int type; /* ROUTE_* value (not _STATIC) */ 35610b185fSBrian Somers struct sticky_route *next; /* next in list */ 36610b185fSBrian Somers 37610b185fSBrian Somers struct in_addr dst; 38610b185fSBrian Somers struct in_addr mask; 39610b185fSBrian Somers struct in_addr gw; 40610b185fSBrian Somers }; 41610b185fSBrian Somers 4275240ed1SBrian Somers extern int GetIfIndex(char *); 43dd7e2610SBrian Somers extern int route_Show(struct cmdargs const *); 44dd7e2610SBrian Somers extern void route_IfDelete(struct bundle *, int); 45c6fe0cb2SBrian Somers extern const char *Index2Nam(int); 46610b185fSBrian Somers extern void route_Change(struct bundle *, struct sticky_route *, 47610b185fSBrian Somers struct in_addr, struct in_addr); 48610b185fSBrian Somers extern void route_Add(struct sticky_route **, int, struct in_addr, 49610b185fSBrian Somers struct in_addr, struct in_addr); 50610b185fSBrian Somers extern void route_Delete(struct sticky_route **, int, struct in_addr); 51610b185fSBrian Somers extern void route_DeleteAll(struct sticky_route **); 52610b185fSBrian Somers extern void route_Clean(struct bundle *, struct sticky_route *); 53972a1bcfSBrian Somers extern void route_ShowSticky(struct prompt *, struct sticky_route *, 54972a1bcfSBrian Somers const char *, int); 55