1/*
2 * $Id: interface.h,v 1.6 2009-12-13 02:21:47 didg Exp $
3 * Copyright (c) 1990,1992 Regents of The University of Michigan.
4 * All Rights Reserved. See COPYRIGHT.
5 */
6
7#ifndef ATALKD_INTERFACE_H
8#define ATALKD_INTERFACE_H 1
9
10#include <sys/cdefs.h>
11
12struct interface {
13    struct interface	*i_next;
14    char		i_name[ IFNAMSIZ ];
15    int			i_flags;
16    int			i_time;
17    int                 i_group; /* for isolated appletalk domains */
18    struct sockaddr_at	i_addr;
19    struct sockaddr_at	i_caddr;
20    struct ziptab	*i_czt;
21    struct rtmptab	*i_rt;
22    struct gate		*i_gate;
23    struct atport	*i_ports;
24};
25
26#define IFACE_PHASE1	0x001
27#define IFACE_PHASE2	0x002
28#define IFACE_LOOPBACK	0x004		/* is the loopback interface */
29#define IFACE_SEED	0x008		/* act as seed */
30#define IFACE_ADDR	0x010		/* has an address set */
31#define IFACE_CONFIG	0x020		/* has been configured */
32#define IFACE_NOROUTER	0x040		/* no router on interface */
33#define IFACE_LOOP	0x080		/* has a loopback route */
34#define IFACE_RSEED     0x100           /* almost the same as seed. RSEED
35					   says that we should try to
36					   do routing. */
37#define IFACE_DONTROUTE 0x200           /* don't route this interface */
38#define IFACE_ISROUTER  0x400           /* act as a router. */
39#define IFACE_ALLMULTI  0x800		/* set allmulti on this interface, linux only */
40#define IFACE_WASALLMULTI 0x1000	/* don't unset allmulti on this interface on shutdown, linux only */
41#define IFACE_ERROR 	0x2000		/* sendto returned an error */
42
43#define UNSTABLE	2
44#define STABLE		0
45#define STABLEANYWAY	-2
46
47#define IFBASE		2	/* base number of interfaces */
48
49#ifdef linux
50#define LOOPIFACE	"lo"
51#else /* !linux */
52#define LOOPIFACE	"lo0"
53#endif /* linux */
54
55extern struct interface	*interfaces;
56extern struct interface	*ciface;
57struct interface	*newiface (const char *);
58
59#endif /* ATALKD_INTERFACE_H */
60