Home | History | Annotate | Line # | Download | only in net
      1 #ifndef _IF_SRT_H_1b91f8f1_
      2 #define _IF_SRT_H_1b91f8f1_
      3 
      4 /* $NetBSD: if_srt.h,v 1.4 2015/09/06 06:01:01 dholland Exp $ */
      5 
      6 /* This file is in the public domain. */
      7 
      8 #include <sys/ioccom.h> /* for _IOR etc */
      9 #include <net/if.h> /* XXX for IFNAMSIZ */
     10 #include <netinet/in.h> /* for in_addr/in6_addr */
     11 
     12 struct srt_rt {
     13 	unsigned int inx;
     14 	int af;
     15 	union {
     16 		struct in_addr v4;
     17 		struct in6_addr v6;
     18 	} srcmatch;
     19 	unsigned int srcmask;
     20 	union {
     21 		struct ifnet *dstifp;
     22 		char dstifn[IFNAMSIZ];
     23 	} u;
     24 	union {
     25 		struct sockaddr_in sin;
     26 		struct sockaddr_in6 sin6;
     27 		struct sockaddr sa;
     28 	} dst;
     29 };
     30 
     31 /* Gets the number of slots in the rts array */
     32 #define SRT_GETNRT _IOR('e',0,unsigned int)
     33 
     34 /* Gets an rt entry, given the slot number in the inx field */
     35 #define SRT_GETRT  _IOWR('e',1,struct srt_rt)
     36 
     37 /* Sets an rt entry; inx must be either in the array or one past it */
     38 #define SRT_SETRT  _IOW('e',2,struct srt_rt)
     39 
     40 /* Delete an rt entry by index; shifts the rest down */
     41 #define SRT_DELRT  _IOW('e',3,unsigned int)
     42 
     43 /* Set flag bits */
     44 #define SRT_SFLAGS _IOW('e',4,unsigned int)
     45 
     46 /* Get flag bits */
     47 #define SRT_GFLAGS _IOR('e',5,unsigned int)
     48 
     49 /* Atomically replace flag bits */
     50 #define SRT_SGFLAGS _IOWR('e',6,unsigned int)
     51 
     52 /* Do debugging tasks (not documented here - see the source) */
     53 #define SRT_DEBUG _IOW('e',7,void *)
     54 
     55 /* Flag bits for SRT_*FLAGS */
     56 #define SSF_MTULOCK 0x00000001 /* don't auto-update MTU */
     57 /* Some flags are global; some are per-unit. */
     58 #define SSF_GLOBAL (0)
     59 
     60 #endif
     61