source: edk_user_repository/WARP/sw_services/WARPxilnet_v3_00_a/src/xilnet_eth.h

Last change on this file was 1749, checked in by chunter, 12 years ago

Updated copyright information and improved handling of broadcast IP address

File size: 2.8 KB
Line 
1////////////////////////////////////////////////////////////////////////////////
2// Copyright (c) 2004 Xilinx, Inc.  All rights reserved.
3//
4// Xilinx, Inc.
5// XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
6// COURTESY TO YOU.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
7// ONE POSSIBLE   IMPLEMENTATION OF THIS FEATURE, APPLICATION OR
8// STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION
9// IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE
10// FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
11// XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
12// THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO
13// ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
14// FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY
15// AND FITNESS FOR A PARTICULAR PURPOSE.
16//
17// File   : eth.h
18// Date   : 2002, March 20.
19// Author : Sathya Thammanur
20// Company: Xilinx
21// Group  : Emerging Software Technologies
22//
23// Summary:
24// Header file for Ethernet layer
25//
26// $Id: eth.h,v 1.2.8.6 2005/11/15 23:41:10 salindac Exp $
27//
28////////////////////////////////////////////////////////////////////////////////
29
30////////////////////////////////////////////////////////////////////////////////
31// see copyright.txt for Rice University/Mango Communications modifications
32////////////////////////////////////////////////////////////////////////////////
33
34#ifndef _ETH_H
35#define _ETH_H
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41#include <xilnet_config.h>
42#include <xilnet_ip.h>
43
44#define ETH_ADDR_LEN           6   /* len of eth addr */   
45#define ETH_HDR_LEN         14   /* eth hdr len */ 
46#define ETH_MIN_FRAME_LEN     60   /* Min Eth Frame Payload */ 
47
48#define ETH_MAX_FRAME_LEN     1500 /* Max Eth Frame Payload */ 
49#define ETH_FRAME_LEN         1514 /* Max Eth Frame Size */ 
50
51
52/* MAC address used */
53#ifdef _CONFIG_EMACLITE_
54extern unsigned int MYMAC_BASEADDR;
55#else
56#ifdef _CONFIG_TEMAC_
57extern void* FIFO_INST;
58extern void* DMA_CENTRAL_INST;
59#endif
60#endif
61
62/*
63 * Protocol vals in eth hdr
64 */
65
66#define ETH_PROTO_IP    0x0800      /* IP  packet   */
67#define ETH_PROTO_ARP   0x0806      /* ARP packet   */
68
69
70
71/*
72 * Ethernet Header
73 */
74 
75struct xilnet_eth_hdr {
76  unsigned char dest_addr[ETH_ADDR_LEN];  /* destination eth addr   */
77  unsigned char src_addr[ETH_ADDR_LEN];   /* source eth addr    */
78  unsigned short type;                /* protocol type */
79};
80
81
82/*
83 * HW Addr Table
84 *
85 */
86
87#define HW_ADDR_TBL_ENTRIES     5
88#define HW_ADDR_ENTRY_IS_TRUE   1
89#define HW_ADDR_ENTRY_IS_FALSE  0
90#define HW_ADDR_TBL_MAXAGE      2
91
92struct xilnet_hw_addr_table
93{
94   unsigned char ip_addr[IP_VERSION];
95   unsigned char hw_addr[ETH_ADDR_LEN];
96   unsigned char flag;
97   unsigned int age;
98};
99
100extern struct xilnet_hw_addr_table xilnet_hw_tbl[HW_ADDR_TBL_ENTRIES];
101
102#ifdef __cplusplus
103}
104#endif
105
106#endif  /* _ETH_H */
Note: See TracBrowser for help on using the repository browser.