diff options
author | Felix Fietkau <nbd@openwrt.org> | 2008-06-15 11:11:28 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2008-06-15 11:11:28 +0000 |
commit | ddd809f9e56e3a30d459d6189a1582808d204821 (patch) | |
tree | 42452684184365d849557d88c0a7155f32287ad3 /package/broadcom-57xx/src/proto/bcmarp.h | |
parent | 20937ce81a7807fb3506728edaaff731cee7e18c (diff) | |
download | upstream-ddd809f9e56e3a30d459d6189a1582808d204821.tar.gz upstream-ddd809f9e56e3a30d459d6189a1582808d204821.tar.bz2 upstream-ddd809f9e56e3a30d459d6189a1582808d204821.zip |
(6/6) bcm57xx: package
This is the bcm57xx package. I have tested default vlan functions,
but I dont have the equipment to test more advanced setups. The default
vlan setup seems to be working fine. I also added the activate_gpio
parameter which will make the driver activate the switch via gpio before
probing for it.
I'm not sure which method is best for autoload. For the wrt350n, I
need the activate_gpio parameter. But its probably not a good idea
to add that to the autoload file. On a system without a bcm57xx switch,
isn't it a bad idea to mess with the gpios looking for the switch? Ideally,
wouldn't it be best to load the bcm57xx module from broadcom-diag, after
it has determined which router its on? I tried using 'request_module' from
there, but had no success. For now, I am relying on preinit to load
the bcm57xx module with activate_gpio param, after it has failed to load
switch_robo and switch_adm.
Signed-off-by: Ben Pfountz <netprince (at) vt (dot) edu>
SVN-Revision: 11471
Diffstat (limited to 'package/broadcom-57xx/src/proto/bcmarp.h')
-rw-r--r-- | package/broadcom-57xx/src/proto/bcmarp.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/package/broadcom-57xx/src/proto/bcmarp.h b/package/broadcom-57xx/src/proto/bcmarp.h new file mode 100644 index 0000000000..2e27ac1669 --- /dev/null +++ b/package/broadcom-57xx/src/proto/bcmarp.h @@ -0,0 +1,60 @@ +/* + * 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_) */ |