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