33 #ifndef _NETINET_IN_VAR_H_ 34 #define _NETINET_IN_VAR_H_ 36 #include <sys/queue.h> 40 #if !defined(__rtems__) 41 #include <sys/fnv_hash.h> 52 #define ia_ifp ia_ifa.ifa_ifp 53 #define ia_flags ia_ifa.ifa_flags 60 struct in_ifaddr *ia_next;
63 #define ia_broadaddr ia_dstaddr 65 LIST_HEAD(in_multihead,
in_multi) ia_multiaddrs;
70 char ifra_name[IFNAMSIZ];
73 #define ifra_dstaddr ifra_broadaddr 80 #define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr)) 81 #define IA_DSTSIN(ia) (&(((struct in_ifaddr *)(ia))->ia_dstaddr)) 83 #define IN_LNAOF(in, ifa) \ 84 ((ntohl((in).s_addr) & ~((struct in_ifaddr *)(ifa)->ia_subnetmask)) 88 extern struct in_ifaddr *in_ifaddr;
90 extern struct in_addr zeroin_addr;
91 extern u_char inetctlerrmap[];
97 #define INADDR_TO_IFP(addr, ifp) \ 101 register struct in_ifaddr *ia; \ 103 for (ia = in_ifaddr; \ 104 ia != NULL && ((ia->ia_ifp->if_flags & IFF_POINTOPOINT)? \ 105 IA_DSTSIN(ia):IA_SIN(ia))->sin_addr.s_addr != (addr).s_addr; \ 109 for (ia = in_ifaddr; \ 112 if (ia->ia_ifp->if_flags & IFF_POINTOPOINT && \ 113 IA_SIN(ia)->sin_addr.s_addr == (addr).s_addr) \ 115 (ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \ 122 #define IFP_TO_IA(ifp, ia) \ 126 for ((ia) = in_ifaddr; \ 127 (ia) != NULL && (ia)->ia_ifp != (ifp); \ 128 (ia) = (ia)->ia_next) \ 154 struct ifnet *inm_ifp;
155 struct in_ifaddr *inm_ia;
165 SYSCTL_DECL(_net_inet_ip);
166 SYSCTL_DECL(_net_inet_raw);
173 struct in_multistep {
174 struct in_ifaddr *i_ia;
182 #define IN_LOOKUP_MULTI(addr, ifp, inm) \ 187 register struct in_ifaddr *ia; \ 189 IFP_TO_IA((ifp), ia); \ 193 for ((inm) = ia->ia_multiaddrs.lh_first; \ 194 (inm) != NULL && (inm)->inm_addr.s_addr != (addr).s_addr; \ 195 (inm) = inm->inm_entry.le_next) \ 206 #define IN_NEXT_MULTI(step, inm) \ 210 if (((inm) = (step).i_inm) != NULL) \ 211 (step).i_inm = (inm)->inm_entry.le_next; \ 213 while ((step).i_ia != NULL) { \ 214 (inm) = (step).i_ia->ia_multiaddrs.lh_first; \ 215 (step).i_ia = (step).i_ia->ia_next; \ 216 if ((inm) != NULL) { \ 217 (step).i_inm = (inm)->inm_entry.le_next; \ 223 #define IN_FIRST_MULTI(step, inm) \ 227 (step).i_ia = in_ifaddr; \ 228 (step).i_inm = NULL; \ 229 IN_NEXT_MULTI((step), (inm)); \ 233 void in_delmulti(
struct in_multi *);
234 int in_control(
struct socket *, u_long, caddr_t,
struct ifnet *);
235 void in_rtqdrain(
void);
236 void ip_input(
struct mbuf *);
Definition: socketvar.h:49