ifnet
struct ifnet;
extern void ether_demux(struct ifnet *, struct mbuf *);
extern void ether_ifattach(struct ifnet *, const u_int8_t *);
extern void ether_ifdetach(struct ifnet *);
extern int ether_ioctl(struct ifnet *, u_long, caddr_t);
extern int ether_output(struct ifnet *, struct mbuf *,
extern int ether_output_frame(struct ifnet *, struct mbuf *);
int arpresolve(struct ifnet *ifp, int is_gw, struct mbuf *m,
void arprequest(struct ifnet *, const struct in_addr *,
void arp_ifinit(struct ifnet *, struct ifaddr *);
void arp_ifinit2(struct ifnet *, struct ifaddr *, u_char *);
struct ifnet; struct mbuf; /* forward declarations for Standard C */
int in_broadcast(struct in_addr, struct ifnet *);
int in_ifhasaddr(struct ifnet *, struct in_addr);
void in_ifdetach(struct ifnet *);
void in_pcbpurgeif0(struct inpcbinfo *, struct ifnet *);
struct in_addr, u_int, int, struct ifnet *);
struct in_addr, u_int, int, struct ifnet *, struct mbuf *);
(*ip_mforward)(struct ip *, struct ifnet *, struct mbuf *,
struct ifnet *imo_multicast_ifp; /* ifp for outgoing multicasts */
int in6_ifhasaddr(struct ifnet *, struct in6_addr *);
struct in6_ifaddr *in6_ifawithifp(struct ifnet *, struct in6_addr *);
extern void in6_if_up(struct ifnet *);
extern struct interface *ifnet;
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL;
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next)
ifp->int_next = ifnet;
ifnet = ifp;
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
struct interface *ifnet;
extern struct interface *ifnet; /* all interfaces */
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next)
for (ifp1 = ifnet; ifp1 != NULL;
for (ifp = ifnet; ifp != NULL; ifp = ifp1) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
link_in((void **)&ifnet, ifp, offsetof(struct interface, int_link));
struct interface *ifnet;
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp; ifp = ifp->int_next) {
for (ifp = ifnet; NULL != ifp; ifp = ifp->int_next) {
for (ifp = ifnet; ifp; ifp = ifp->int_next) {
for (ifp = ifnet; ifp; ifp = ifp->int_next) {
for (ifp = ifnet; ifp; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next) {
for (ifp = ifnet; ifp != NULL; ifp = ifp->int_next)
struct ifnet *ptr;
struct ifnet netif;
static struct ifnet **ifneta = NULL;
static void fr_setifpaddr __P((struct ifnet *, char *));
static int no_output __P((struct ifnet *, struct mbuf *,
static int write_output __P((struct ifnet *, struct mbuf *,
static int no_output __P((struct ifnet *, struct mbuf *,
static int write_output __P((struct ifnet *, struct mbuf *,
static int no_output __P((struct ifnet *, struct mbuf *,
static int write_output __P((struct ifnet *, struct mbuf *,
fdp->fd_ifp = (struct ifnet *)-1;
struct ifnet *ifp;
struct ifnet *ifp;
struct ifnet *ifp;
struct ifnet *get_unit(name, v, ifs)
struct ifnet *ifp, **ifpp, **old_ifneta;
ifneta = (struct ifnet **)malloc(sizeof(ifp) * 2);
ifneta[0] = (struct ifnet *)calloc(1, sizeof(*ifp));
ifneta = (struct ifnet **)realloc(ifneta,
ifneta[nifs - 1] = (struct ifnet *)malloc(sizeof(*ifp));
struct ifnet *ifp;
struct ifnet *ifp, **ifpp;
struct ifnet *ifp = fdp->fd_ifp;
struct ifnet *ifp = ifptr;
extern struct ifnet *get_unit __P((char *, int, ipf_stack_t *));
struct ifnet *ifp;
extern void bpf_tap(struct ifnet *, u_char *, u_int);
extern void bpf_mtap(struct ifnet *, struct mbuf *);
extern void bpfattach(struct ifnet *, u_int, u_int);
(fdp->fd_ifp != (struct ifnet *)-1)) {
struct ifnet *ifp;
ifq = &((struct ifnet *)fra->fra_info.fin_ifp)->if_snd;
struct ifnet *ifp;
struct ifnet *ifp, *sifp;
struct ifnet *ifp;
extern struct ifnet vpnif;
struct ifnet *ifp, *sifp;
struct ifnet *ifp;
extern struct ifnet vpnif;
# define IFNAME(x, b) ((struct ifnet *)x)->if_xname
((struct ifnet *)x)->if_xname, \
# define CACHE_HASH(x) ((((struct ifnet *)fin->fin_ifp)->if_index)&7)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
int (* if_output) __P((struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *));
# define IFNAME(x) ((struct ifnet *)x)->if_xname
((struct ifnet *)x)->if_xname, \
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
# define IFNAME(x) ((struct ifnet *)x)->if_name
extern char *fr_getifname __P((struct ifnet *, char *));
fr_getifname((struct ifnet *)x, b)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
# define IFNAME(x) ((struct ifnet *)x)->if_xname
((struct ifnet *)x)->if_xname, \
# define CACHE_HASH(x) ((((struct ifnet *)fin->fin_ifp)->if_index)&7)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
# define IFNAME(x) ((struct ifnet *)x)->if_xname
((struct ifnet *)x)->if_xname, \
# define CACHE_HASH(x) ((((struct ifnet *)fin->fin_ifp)->if_index) & 7)
((struct ifnet *)fin->fin_ifp)->if_unit) & 7)
extern struct ifnet *get_unit __P((char *, int, ipf_stack_t *));
extern char *get_ifname __P((struct ifnet *));
extern char *getifname __P((struct ifnet *));
struct ifnet;
(m)->m_off += sizeof (struct ifnet *); \
(m)->m_len -= sizeof (struct ifnet *); \
(ifp) = *(mtod((m), struct ifnet **)); \
struct ifnet *ifa_ifp; /* back-pointer to interface */
struct ifnet *if_next;
struct ifnet *if_upper; /* next layer up */
struct ifnet *if_lower; /* next layer down */
struct ifnet *rt_ifp; /* the answer: interface to use */
struct ifnet ac_if; /* network-visible interface */