master
 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
12struct 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