arp_impl.h revision a12e05a04a5d5850f645c79e7e2c74f8d6b7c5ec
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _ARP_IMPL_H
#define _ARP_IMPL_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
/* ARP kernel hash size; used for mdb support */
#define ARP_HASH_SIZE 256
/* ARL Structure, one per link level device */
typedef struct arl_s {
} arl_t;
/* ARL physical info structure for a link level device */
typedef struct arlphy_s {
} arlphy_t;
extern krwlock_t arl_g_lock;
#define ARL_F_NOARP 0x01
#define ARL_S_DOWN 0x00
#define ARL_S_PENDING 0x01
#define ARL_S_UP 0x02
/* AR Structure, one per upper stream */
typedef struct ar_s {
} ar_t;
/* ARP Cache Entry */
typedef struct ace_s {
int ace_xmit_count;
} ace_t;
/*
* Hooks structures used inside of arp
*/
extern hook_event_token_t arp_physical_in;
extern hook_event_token_t arp_physical_out;
extern hook_event_token_t arpnicevents;
extern hook_event_t arp_physical_in_event;
extern hook_event_t arp_physical_out_event;
extern hook_event_t arp_nic_events;
#define ARPHOOK_INTERESTED_PHYSICAL_IN \
#define ARPHOOK_INTERESTED_PHYSICAL_OUT \
\
if ((_hook).he_interested) { \
\
} \
} else { \
} \
}
\
if ((_hook).he_interested) { \
\
(hook_data_t)&info) != 0) { \
} \
} else { \
} \
}
extern void arp_hook_init();
extern void arp_hook_destroy();
extern void arp_net_init();
extern void arp_net_destroy();
#endif /* _KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _ARP_IMPL_H */