1 /* 2 * Copyright (c) 1985, 1986 Regents of the University of California. 3 * All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 * 7 * @(#)in_var.h 7.6 (Berkeley) 06/28/90 8 */ 9 10 /* 11 * Interface address, Internet version. One of these structures 12 * is allocated for each interface with an Internet address. 13 * The ifaddr structure contains the protocol-independent part 14 * of the structure and is assumed to be first. 15 */ 16 struct in_ifaddr { 17 struct ifaddr ia_ifa; /* protocol-independent info */ 18 #define ia_ifp ia_ifa.ifa_ifp 19 #define ia_flags ia_ifa.ifa_flags 20 /* ia_{,sub}net{,mask} in host order */ 21 u_long ia_net; /* network number of interface */ 22 u_long ia_netmask; /* mask of net part */ 23 u_long ia_subnet; /* subnet number, including net */ 24 u_long ia_subnetmask; /* mask of subnet part */ 25 struct in_addr ia_netbroadcast; /* to recognize net broadcasts */ 26 struct in_ifaddr *ia_next; /* next in list of internet addresses */ 27 struct sockaddr_in ia_addr; /* reserve space for interface name */ 28 struct sockaddr_in ia_dstaddr; /* reserve space for broadcast addr */ 29 #define ia_broadaddr ia_dstaddr 30 struct sockaddr_in ia_sockmask; /* reserve space for general netmask */ 31 }; 32 33 struct in_aliasreq { 34 char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ 35 struct sockaddr_in ifra_addr; 36 struct sockaddr_in ifra_broadaddr; 37 #define ifra_dstaddr ifra_broadaddr 38 struct sockaddr_in ifra_mask; 39 }; 40 /* 41 * Given a pointer to an in_ifaddr (ifaddr), 42 * return a pointer to the addr as a sockaddr_in. 43 */ 44 #define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr)) 45 46 #ifdef KERNEL 47 struct in_ifaddr *in_ifaddr; 48 struct in_ifaddr *in_iaonnetof(); 49 struct ifqueue ipintrq; /* ip packet input queue */ 50 #endif 51