60 lines
1.8 KiB
C
60 lines
1.8 KiB
C
/*
|
|
* Copyright 2007, Broadcom Corporation
|
|
* All Rights Reserved.
|
|
*
|
|
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
|
|
* the contents of this file may not be disclosed to third parties, copied
|
|
* or duplicated in any form, in whole or in part, without the prior
|
|
* written permission of Broadcom Corporation.
|
|
*
|
|
* Fundamental constants relating to ARP Protocol
|
|
*
|
|
*/
|
|
|
|
#ifndef _bcmarp_h_
|
|
#define _bcmarp_h_
|
|
|
|
/* enable structure packing */
|
|
#if defined(__GNUC__)
|
|
#define PACKED __attribute__((packed))
|
|
#else
|
|
#pragma pack(1)
|
|
#define PACKED
|
|
#endif
|
|
|
|
#define ARP_OPC_OFFSET 6 /* option code offset */
|
|
#define ARP_SRC_ETH_OFFSET 8 /* src h/w address offset */
|
|
#define ARP_SRC_IP_OFFSET 14 /* src IP address offset */
|
|
#define ARP_TGT_ETH_OFFSET 18 /* target h/w address offset */
|
|
#define ARP_TGT_IP_OFFSET 24 /* target IP address offset */
|
|
|
|
#define ARP_OPC_REQUEST 1 /* ARP request */
|
|
#define ARP_OPC_REPLY 2 /* ARP reply */
|
|
|
|
#define ARP_DATA_LEN 28 /* ARP data length */
|
|
|
|
struct bcmarp {
|
|
uint16 htype; /* Header type (1 = ethernet) */
|
|
uint16 ptype; /* Protocol type (0x800 = IP) */
|
|
uint8 hlen; /* Hardware address length (Eth = 6) */
|
|
uint8 plen; /* Protocol address length (IP = 4) */
|
|
uint16 oper; /* ARP_OPC_... */
|
|
uint8 src_eth[ETHER_ADDR_LEN]; /* Source hardware address */
|
|
uint8 src_ip[IPV4_ADDR_LEN]; /* Source protocol address (not aligned) */
|
|
uint8 dst_eth[ETHER_ADDR_LEN]; /* Destination hardware address */
|
|
uint8 dst_ip[IPV4_ADDR_LEN]; /* Destination protocol address */
|
|
} PACKED;
|
|
|
|
/* Ethernet header + Arp message */
|
|
struct bcmetharp {
|
|
struct ether_header eh;
|
|
struct bcmarp arp;
|
|
} PACKED;
|
|
|
|
#undef PACKED
|
|
#if !defined(__GNUC__)
|
|
#pragma pack()
|
|
#endif
|
|
|
|
#endif /* !defined(_bcmarp_h_) */
|