1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * INET An implementation of the TCP/IP protocol suite for the LINUX 3*53ee8cc1Swenshuai.xi * operating system. INET is implemented using the BSD Socket 4*53ee8cc1Swenshuai.xi * interface as the means of communication with the user level. 5*53ee8cc1Swenshuai.xi * 6*53ee8cc1Swenshuai.xi * Global definitions for the IP router interface. 7*53ee8cc1Swenshuai.xi * 8*53ee8cc1Swenshuai.xi * Version: @(#)route.h 1.0.3 05/27/93 9*53ee8cc1Swenshuai.xi * 10*53ee8cc1Swenshuai.xi * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988 11*53ee8cc1Swenshuai.xi * for the purposes of compatibility only. 12*53ee8cc1Swenshuai.xi * 13*53ee8cc1Swenshuai.xi * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> 14*53ee8cc1Swenshuai.xi * 15*53ee8cc1Swenshuai.xi * Changes: 16*53ee8cc1Swenshuai.xi * Mike McLagan : Routing by source 17*53ee8cc1Swenshuai.xi * 18*53ee8cc1Swenshuai.xi * This program is free software; you can redistribute it and/or 19*53ee8cc1Swenshuai.xi * modify it under the terms of the GNU General Public License 20*53ee8cc1Swenshuai.xi * as published by the Free Software Foundation; either version 21*53ee8cc1Swenshuai.xi * 2 of the License, or (at your option) any later version. 22*53ee8cc1Swenshuai.xi */ 23*53ee8cc1Swenshuai.xi #ifndef _LINUX_ROUTE_H 24*53ee8cc1Swenshuai.xi #define _LINUX_ROUTE_H 25*53ee8cc1Swenshuai.xi 26*53ee8cc1Swenshuai.xi #include <linux/if.h> 27*53ee8cc1Swenshuai.xi 28*53ee8cc1Swenshuai.xi /* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ 29*53ee8cc1Swenshuai.xi struct rtentry 30*53ee8cc1Swenshuai.xi { 31*53ee8cc1Swenshuai.xi unsigned long rt_pad1; 32*53ee8cc1Swenshuai.xi struct sockaddr rt_dst; /* target address */ 33*53ee8cc1Swenshuai.xi struct sockaddr rt_gateway; /* gateway addr (RTF_GATEWAY) */ 34*53ee8cc1Swenshuai.xi struct sockaddr rt_genmask; /* target network mask (IP) */ 35*53ee8cc1Swenshuai.xi unsigned short rt_flags; 36*53ee8cc1Swenshuai.xi short rt_pad2; 37*53ee8cc1Swenshuai.xi unsigned long rt_pad3; 38*53ee8cc1Swenshuai.xi void *rt_pad4; 39*53ee8cc1Swenshuai.xi short rt_metric; /* +1 for binary compatibility! */ 40*53ee8cc1Swenshuai.xi char *rt_dev; /* forcing the device at add */ 41*53ee8cc1Swenshuai.xi unsigned long rt_mtu; /* per route MTU/Window */ 42*53ee8cc1Swenshuai.xi #define rt_mss rt_mtu /* Compatibility :-( */ 43*53ee8cc1Swenshuai.xi unsigned long rt_window; /* Window clamping */ 44*53ee8cc1Swenshuai.xi unsigned short rt_irtt; /* Initial RTT */ 45*53ee8cc1Swenshuai.xi }; 46*53ee8cc1Swenshuai.xi 47*53ee8cc1Swenshuai.xi 48*53ee8cc1Swenshuai.xi #define RTF_UP 0x0001 /* route usable */ 49*53ee8cc1Swenshuai.xi #define RTF_GATEWAY 0x0002 /* destination is a gateway */ 50*53ee8cc1Swenshuai.xi #define RTF_HOST 0x0004 /* host entry (net otherwise) */ 51*53ee8cc1Swenshuai.xi #define RTF_REINSTATE 0x0008 /* reinstate route after tmout */ 52*53ee8cc1Swenshuai.xi #define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */ 53*53ee8cc1Swenshuai.xi #define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */ 54*53ee8cc1Swenshuai.xi #define RTF_MTU 0x0040 /* specific MTU for this route */ 55*53ee8cc1Swenshuai.xi #define RTF_MSS RTF_MTU /* Compatibility :-( */ 56*53ee8cc1Swenshuai.xi #define RTF_WINDOW 0x0080 /* per route window clamping */ 57*53ee8cc1Swenshuai.xi #define RTF_IRTT 0x0100 /* Initial round trip time */ 58*53ee8cc1Swenshuai.xi #define RTF_REJECT 0x0200 /* Reject route */ 59*53ee8cc1Swenshuai.xi 60*53ee8cc1Swenshuai.xi /* 61*53ee8cc1Swenshuai.xi * <linux/ipv6_route.h> uses RTF values >= 64k 62*53ee8cc1Swenshuai.xi */ 63*53ee8cc1Swenshuai.xi 64*53ee8cc1Swenshuai.xi 65*53ee8cc1Swenshuai.xi 66*53ee8cc1Swenshuai.xi #endif /* _LINUX_ROUTE_H */ 67*53ee8cc1Swenshuai.xi 68