/* * 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 * * $Id: bcmarp.h,v 1.1.1.1 2007/05/31 08:00:41 michael Exp $ */ #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_) */