?? arp.h
字號:
#ifndef _NET_IF_ARP_H_#define _NET_IF_ARP_H_/* * 地址解釋協議. * * 查看 RFC 826 對該協議的描述. ARP 包長度是變化的 * 頭部(arphdr)結構定義了固定長度部分. */struct arphdr { u_short ar_hrd; /* 格式化的硬件地址 */#define ARPHRD_ETHER 1 /* 以太網格式 */#define ARPHRD_IEEE802 6 /* 令牌環網格式 */#define ARPHRD_FRELAY 15 /* 幀中繼硬件格式 */ u_short ar_pro; /* 協議地址格式 */ u_char ar_hln; /* 硬件地址長度*/ u_char ar_pln; /* 協議地址長度 */ u_short ar_op; /* 以下之一: */#define ARPOP_REQUEST 1 /* 發出請求解釋一IP地址 */#define ARPOP_REPLY 2 /* 回應上一個請求 */#define ARPOP_REVREQUEST 3 /* 請求一IP地址(給出硬件地址,實際上是逆向地址解釋) */#define ARPOP_REVREPLY 4 /* 回應逆向地址解釋 */#define ARPOP_INVREQUEST 8 /* 請求對方的ID */#define ARPOP_INVREPLY 9 /* 回應對方的ID *//* * 下面的字段是可變長的, * 主要是依照上面給出的定義. */#ifdef COMMENT_ONLY u_char ar_sha[]; /* 發送者硬件地址 */ u_char ar_spa[]; /* 發送者協議地址 */ u_char ar_tha[]; /* 目的方硬件地址 */ u_char ar_tpa[]; /* 目的方協議地址*/#endif};/* * ARP ioctl 請求 */struct arpreq { struct sockaddr arp_pa; /* 協議地址 */ struct sockaddr arp_ha; /* 硬件地址 */ int arp_flags; /* 標識 */};/* arp_flags 和 at_flags 域的值 */#define ATF_INUSE 0x01 /* 入口在使用 */#define ATF_COM 0x02 /* 完整的入口 (enaddr 有效) */#define ATF_PERM 0x04 /* 持久的入口 */#define ATF_PUBL 0x08 /* 發布一入口 (回應其他主機) */#define ATF_USETRAILERS 0x10 /* 有追蹤請求 */#ifdef _KERNEL/* * 該結構是以太網設備驅動程序和ARP程序所共享. */struct arpcom { /* * ifnet 結構必須在此結構的第一個位置. */ struct ifnet ac_if; u_char ac_enaddr[6]; /* 以太網硬件地址*/ int ac_multicnt; /* 多播地址列表數 */ void *ac_netgraph; /* PPPoE(ADSL)的指針 */};extern u_char etherbroadcastaddr[6];#endif#endif /* !_NET_IF_ARP_H_ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -