1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
//
// Copyright 2020 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//
// Module: eth_constants (Header File)
//
// Description:
// Constants for ethernet
//---------------------------------------
// Ethernet constants
//---------------------------------------
localparam [47:0] ETH_ADDR_BCAST = {48{1'b1}};
localparam [15:0] ETH_TYPE_IPV4 = 16'h0800;
localparam [7:0] IPV4_PROTO_UDP = 8'h11;
localparam [7:0] IPV4_LEN5 = 8'h45;
// tUser conventions
localparam BYTES_MSB = ENET_USER_W-2;
localparam ERROR_BIT = ENET_USER_W-1;
localparam SOF_BIT = ENET_USER_W-1;
//---------------------------------------
// Ethernet byte positions
//---------------------------------------
// Bytes 7-0-------------------------
// | DstMAC_HI (16) | Preamble (48) |
// ----------------------------------
localparam PREAMBLE_BYTE = 0;
localparam PREAMBLE_END = 5;
localparam ETH_HDR_BYTE = 0;
localparam DST_MAC_BYTE = ETH_HDR_BYTE+0;
// Bytes 15-8-------------------------
// | SrcMAC_HI (32) | DstMAC_LO (32) |
// -----------------------------------
localparam SRC_MAC_BYTE = ETH_HDR_BYTE+6;
// Bytes 23-16---------------------------------------
// | IPv4_Line0 (32)| EthType (16) | SrcMAC_LO (16) |
// --------------------------------------------------
localparam ETH_TYPE_BYTE = ETH_HDR_BYTE+12;
localparam ETH_PAYLOAD_BYTE = ETH_HDR_BYTE+14;
// Bytes 31-24--------------------------
// | IPv4_Line2 (32) | IPv4_Line1 (32) |
// -------------------------------------
localparam IPV4_HDR_BYTE = ETH_PAYLOAD_BYTE;
localparam IP_VERSION_BYTE = IPV4_HDR_BYTE+0;
localparam IP_DSCP_BYTE = IPV4_HDR_BYTE+1;
localparam IP_LENGTH_BYTE = IPV4_HDR_BYTE+2;
localparam IP_ID_BYTE = IPV4_HDR_BYTE+4;
localparam IP_FRAG_BYTE = IPV4_HDR_BYTE+6;
localparam IP_TTL_BYTE = IPV4_HDR_BYTE+8;
localparam PROTOCOL_BYTE = IPV4_HDR_BYTE+9;
localparam IP_CHECKSUM_BYTE = IPV4_HDR_BYTE+10;
// Bytes 39-32------------------------
// | IPDstAddr (32) | IPSrcAddr (32) |
// -----------------------------------
localparam SRC_IP_BYTE = IPV4_HDR_BYTE+12;
localparam DST_IP_BYTE = IPV4_HDR_BYTE+16;
localparam IPV4_PAYLOAD_BYTE = IPV4_HDR_BYTE+20;
// Bytes 48-40------------------------------------------------
// | Chksum (16) | Length (16) | DstPort (16) | SrcPort (16) |
// -----------------------------------------------------------
localparam UDP_HDR_BYTE = IPV4_PAYLOAD_BYTE;
localparam SRC_PORT_BYTE = UDP_HDR_BYTE+0;
localparam DST_PORT_BYTE = UDP_HDR_BYTE+2;
localparam UDP_LENGTH_BYTE = UDP_HDR_BYTE+4;
localparam UDP_CHECKSUM_BYTE = UDP_HDR_BYTE+6;
localparam UDP_END = UDP_CHECKSUM_BYTE+1; // last byte in the UDP header
localparam MIN_PACKET_SIZE_BYTE = 63;
//---------------------------------------
// CHDR_BYTE_POSITION
//---------------------------------------
localparam CHDR_HDR_BYTE = 0;
localparam CHDR_LENGTH_BYTE = CHDR_HDR_BYTE+2;
|