blob: 93025bc489ca8aa2c2fbf4d4e8cc42832e19ec02 [file] [log] [blame]
/******************************************************************************
* (C) Copyright 2014 AMIQ Consulting
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* NAME: amiq_eth_defines.sv
* PROJECT: amiq_eth
* Description: This file declare all used defines.
*******************************************************************************/
`ifndef __AMIQ_ETH_DEFINES
//protection against multiple includes
`define __AMIQ_ETH_DEFINES
`ifndef AMIQ_ETH_PREAMBLE_WIDTH
//width of the Preamble field
`define AMIQ_ETH_PREAMBLE_WIDTH 56
`endif
`ifndef AMIQ_ETH_SFD_WIDTH
//width of the "Start Frame Delimiter" field
`define AMIQ_ETH_SFD_WIDTH 8
`endif
`ifndef AMIQ_ETH_ADDRESS_WIDTH
//width of the "Address" fields
`define AMIQ_ETH_ADDRESS_WIDTH 48
`endif
`ifndef AMIQ_ETH_LENGTH_TYPE_WIDTH
//width of the "Length/Type" field
`define AMIQ_ETH_LENGTH_TYPE_WIDTH 16
`endif
`ifndef AMIQ_ETH_FCS_WIDTH
//width of the "Frame Check Sequence" field
`define AMIQ_ETH_FCS_WIDTH 32
`endif
`ifndef AMIQ_ETH_DATA_WIDTH
//width of the basic unit in the "Data" field
`define AMIQ_ETH_DATA_WIDTH 8
`endif
`ifndef AMIQ_ETH_SNAP_PROTOCOL_IDENTIFIER_WIDTH
//width of the "Protocol Identifier" field from SNAP packet
`define AMIQ_ETH_SNAP_PROTOCOL_IDENTIFIER_WIDTH 40
`endif
`ifndef AMIQ_ETH_EXTENSION_WIDTH
//width of the basic unit in the "Extensions" field
`define AMIQ_ETH_EXTENSION_WIDTH 1
`endif
`ifndef AMIQ_ETH_MIN_JUMBO_PAYLOAD_SIZE
//minimum payload length of the Jumbo frame, in bytes
`define AMIQ_ETH_MIN_JUMBO_PAYLOAD_SIZE 1501
`endif
`ifndef AMIQ_ETH_MAX_JUMBO_PAYLOAD_SIZE
//maximum payload length of the Jumbo frame, in bytes
`define AMIQ_ETH_MAX_JUMBO_PAYLOAD_SIZE 9000
`endif
`ifndef AMIQ_ETH_PAUSE_PACKET_DESTINATION_ADDRESS
//Ethernet Pause packet - Destination Address
`define AMIQ_ETH_PAUSE_PACKET_DESTINATION_ADDRESS `AMIQ_ETH_ADDRESS_WIDTH'h0180C2000001
`endif
`ifndef AMIQ_ETH_PFC_PACKET_DESTINATION_ADDRESS
//Ethernet PFC packet - Destination Address
`define AMIQ_ETH_PFC_PACKET_DESTINATION_ADDRESS `AMIQ_ETH_ADDRESS_WIDTH'h0180C2000001
`endif
`ifndef AMIQ_ETH_PAUSE_OPCODE_WIDTH
//Ethernet Pause packet - width of the "Opcode" field
`define AMIQ_ETH_PAUSE_OPCODE_WIDTH 16
`endif
`ifndef AMIQ_ETH_PAUSE_PARAMETER_WIDTH
//Ethernet Pause packet - width of the "Parameter" field
`define AMIQ_ETH_PAUSE_PARAMETER_WIDTH 16
`endif
`ifndef AMIQ_ETH_PAUSE_OPCODE
//Ethernet Pause packet - opcode
`define AMIQ_ETH_PAUSE_OPCODE `AMIQ_ETH_PAUSE_OPCODE_WIDTH'h0001
`endif
`ifndef AMIQ_ETH_PAUSE_PARAMETER_MAX
//Ethernet Pause packet - maximum value of the "Parameter" field
`define AMIQ_ETH_PAUSE_PARAMETER_MAX `AMIQ_ETH_PAUSE_PARAMETER_WIDTH'hFFFF
`endif
`ifndef AMIQ_ETH_PAUSE_PARAMETER_MIN
//Ethernet Pause packet - minimum value of the "Parameter" field
`define AMIQ_ETH_PAUSE_PARAMETER_MIN `AMIQ_ETH_PAUSE_PARAMETER_WIDTH'h0000
`endif
`ifndef AMIQ_ETH_PFC_OPCODE_WIDTH
//Ethernet PFC packet - width of the "Opcode" field
`define AMIQ_ETH_PFC_OPCODE_WIDTH 16
`endif
`ifndef AMIQ_ETH_PFC_OPCODE
//Ethernet PFC packet - opcode
`define AMIQ_ETH_PFC_OPCODE `AMIQ_ETH_PFC_OPCODE_WIDTH'h0101
`endif
`ifndef AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_WIDTH
//Ethernet PFC packet - width of the "Class Enable Vector" field
`define AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_WIDTH 16
`endif
`ifndef AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_MAX
//Ethernet PFC packet - maximum value of the "Class Enable Vector" field
`define AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_MAX `AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_WIDTH'h00FF
`endif
`ifndef AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_MIN
//Ethernet PFC packet - minimum value of the "Class Enable Vector" field
`define AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_MIN `AMIQ_ETH_PFC_CLASS_ENABLE_VECTOR_WIDTH'h0000
`endif
`ifndef AMIQ_ETH_PFC_NUMBER_OF_PARAMETERS
//Ethernet PFC packet - number of parameters
`define AMIQ_ETH_PFC_NUMBER_OF_PARAMETERS 8
`endif
`ifndef AMIQ_ETH_PFC_PARAMETER_WIDTH
//Ethernet PFC packet - width of the "Parameter" field
`define AMIQ_ETH_PFC_PARAMETER_WIDTH 16
`endif
`ifndef AMIQ_ETH_PFC_PARAMETER_MAX
//Ethernet PFC packet - maximum value of the "Parameter" field
`define AMIQ_ETH_PFC_PARAMETER_MAX `AMIQ_ETH_PAUSE_PARAMETER_WIDTH'hFFFF
`endif
`ifndef AMIQ_ETH_PFC_PARAMETER_MIN
//Ethernet PFC packet - minimum value of the "Parameter" field
`define AMIQ_ETH_PFC_PARAMETER_MIN `AMIQ_ETH_PAUSE_PARAMETER_WIDTH'h0000
`endif
`ifndef AMIQ_ETH_PAYLOAD_SIZE_MIN
//Ethernet packet - minimum payload size
`define AMIQ_ETH_PAYLOAD_SIZE_MIN 46
`endif
`ifndef AMIQ_ETH_PAYLOAD_SIZE_MAX
//Ethernet packet - maximum payload size
`define AMIQ_ETH_PAYLOAD_SIZE_MAX 1500
`endif
`ifndef AMIQ_ETH_MAGIC_PACKET_TARGET_MAC_REPETITIONS
//the number of times the target address is repeated in the magic packet
`define AMIQ_ETH_MAGIC_PACKET_TARGET_MAC_REPETITIONS 6
`endif
`ifndef AMIQ_ETH_MAGIC_PACKET_SYNCH_STREAM_WIDTH
//width of the magic packet pattern which identifies the target address
`define AMIQ_ETH_MAGIC_PACKET_SYNCH_STREAM_WIDTH 48
`endif
`ifndef AMIQ_ETH_MAGIC_PACKET_SYNCH_STREAM
//default magic packet pattern which identifies the target address
`define AMIQ_ETH_MAGIC_PACKET_SYNCH_STREAM 48'hFFFFFFFFFFFF
`endif
`ifndef AMIQ_ETH_DEFAULT_SNAP_PACKET_DSAP
//default value for DSAP field in SNAP packet
`define AMIQ_ETH_DEFAULT_SNAP_PACKET_DSAP 8'hAA
`endif
`ifndef AMIQ_ETH_DEFAULT_SNAP_PACKET_SSAP
//default value for SSAP field in SNAP packet
`define AMIQ_ETH_DEFAULT_SNAP_PACKET_SSAP 8'hAA
`endif
`ifndef AMIQ_ETH_DEFAULT_SNAP_PACKET_CTL
//default value for CTL field in SNAP packet
`define AMIQ_ETH_DEFAULT_SNAP_PACKET_CTL 8'h03
`endif
`ifndef AMIQ_ETH_JUMBO_CLIENT_DATA_SIZE_WIDTH
//Jumbo packet - client data size width
`define AMIQ_ETH_JUMBO_CLIENT_DATA_SIZE_WIDTH 32
`endif
`ifndef AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_SKIPCOUNT_WIDTH
//Ethernet Configuration Testing packet - skipcount width
`define AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_SKIPCOUNT_WIDTH 16
`endif
`ifndef AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_FUNCTION_WIDTH
//Ethernet Configuration Testing packet - function width
`define AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_FUNCTION_WIDTH 16
`endif
`ifndef AMIQ_ETH_GROUP_ADDRESS_MASK
//Ethernet Configuration Testing Source Address Mask - used to avoid Source Address to be a group address
`define AMIQ_ETH_GROUP_ADDRESS_MASK 48'hFEFFFFFFFFFF
`endif
`ifndef AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_REPLY_FUNCTION
//Ethernet Configuration Testing packet - reply function
`define AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_REPLY_FUNCTION 1
`endif
`ifndef AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_FORWARD_FUNCTION
//Ethernet Configuration Testing packet - forward function
`define AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_FORWARD_FUNCTION 2
`endif
`ifndef AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_DATA_MAX
//Ethernet Configuration Testing packet - max data
`define AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_DATA_MAX 1496
`endif
`ifndef AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_DATA_MIN
//Ethernet Configuration Testing packet - min data
`define AMIQ_ETH_ETHERNET_CONFIGURATION_TESTING_DATA_MIN 42
`endif
`ifndef AMIQ_ETH_HSR_PATH_WIDTH
//HSR Standard packet - width of the "Path" field
`define AMIQ_ETH_HSR_PATH_WIDTH 4
`endif
`ifndef AMIQ_ETH_HSR_STANDARD_SIZE_WIDTH
//HSR Standard packet - width of the "Size" field
`define AMIQ_ETH_HSR_STANDARD_SIZE_WIDTH 12
`endif
`ifndef AMIQ_ETH_HSR_STANDARD_SEQ_WIDTH
//HSR Standard packet - width of the "Seq" field
`define AMIQ_ETH_HSR_STANDARD_SEQ_WIDTH 16
`endif
`ifndef AMIQ_ETH_HSR_STANDARD_PROTOCOL_WIDTH
//HSR Standard packet - width of the "Protocol" field
`define AMIQ_ETH_HSR_STANDARD_PROTOCOL_WIDTH 16
`endif
`ifndef AMIQ_ETH_HSR_STANDARD_LPDU_MAX
//HSR Standard packet - maximum value of the "LPDU" field
`define AMIQ_ETH_HSR_STANDARD_LPDU_MAX 1500
`endif
`ifndef AMIQ_ETH_HSR_STANDARD_LPDU_MIN
//HSR Standard packet - minimum value of the "LPDU" field
`define AMIQ_ETH_HSR_STANDARD_LPDU_MIN 40
`endif
//the code of the magic packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_MAGIC_CODE 32'h0000_0000
//the code of the jumbo packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_JUMBO_CODE 32'h0000_0001
//the code of the snap packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_SNAP_CODE 32'h0000_0002
//the code of the pause packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_PAUSE_CODE 32'h0000_0003
//the code of the pfc pause packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_PFC_PAUSE_CODE 32'h0000_0004
//the code of the length packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_LENGTH_CODE 32'h0000_0005
//the code of the ethernet configuration testing packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_ETHERNET_CONFIGURATION_TESTING_CODE 32'h0000_0006
//the code of the IPV4 packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_IPV4_CODE 32'h0000_0007
//the code of the hsr packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_HSR_STANDARD_CODE 32'h0000_0008
//the code of the ARP packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_ARP_CODE 32'h0000_0009
//the code of the fcoe packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_FCOE_CODE 32'h0000_000A
//the code of the PTP packet used to identify the information in generic payload
`define AMIQ_ETH_PACKET_PTP_CODE 32'h0000_000C
`ifndef AMIQ_ETH_FIELD_SEPARATOR
//the field separator when printing a packet
`define AMIQ_ETH_FIELD_SEPARATOR ", "
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_VERSION_VALUE
//IPV4 packet - version value
`define AMIQ_ETH_IPV4_HEADER_VERSION_VALUE 4
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_VERSION_WIDTH
//IPV4 packet - version width
`define AMIQ_ETH_IPV4_HEADER_VERSION_WIDTH 4
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_IHL_WIDTH
//IPV4 packet - IHL (Internet Header Length) width
`define AMIQ_ETH_IPV4_HEADER_IHL_WIDTH 4
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_DSCP_WIDTH
//IPV4 packet - DSCP (Differentiated Services Code Point) width
`define AMIQ_ETH_IPV4_HEADER_DSCP_WIDTH 6
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_ECN_WIDTH
//IPV4 packet - ECN (Explicit Congestion Notification) width
`define AMIQ_ETH_IPV4_HEADER_ECN_WIDTH 2
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_TOTAL_LENGTH_WIDTH
//IPV4 packet - Total Length width
`define AMIQ_ETH_IPV4_HEADER_TOTAL_LENGTH_WIDTH 16
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_IDENTIFICATION_WIDTH
//IPV4 packet - Identification width
`define AMIQ_ETH_IPV4_HEADER_IDENTIFICATION_WIDTH 16
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_FLAGS_WIDTH
//IPV4 packet - Flags width
`define AMIQ_ETH_IPV4_HEADER_FLAGS_WIDTH 3
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_FRAGMENT_OFFSET_WIDTH
//IPV4 packet - Fragment Offset width
`define AMIQ_ETH_IPV4_HEADER_FRAGMENT_OFFSET_WIDTH 13
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_TTL_WIDTH
//IPV4 packet - TTL (Time To Live) width
`define AMIQ_ETH_IPV4_HEADER_TTL_WIDTH 8
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_PROTOCOL_WIDTH
//IPV4 packet - Protocol width
`define AMIQ_ETH_IPV4_HEADER_PROTOCOL_WIDTH 8
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_CHECKSUM_WIDTH
//IPV4 packet - Checksum width
`define AMIQ_ETH_IPV4_HEADER_CHECKSUM_WIDTH 16
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_SOURCE_IP_ADDRESS_WIDTH
//IPV4 packet - Source IP address width
`define AMIQ_ETH_IPV4_HEADER_SOURCE_IP_ADDRESS_WIDTH 32
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_DESTINATION_IP_ADDRESS_WIDTH
//IPV4 packet - Destination IP address width
`define AMIQ_ETH_IPV4_HEADER_DESTINATION_IP_ADDRESS_WIDTH 32
`endif
`ifndef AMIQ_ETH_IPV4_HEADER_OPTION_WIDTH
//IPV4 packet - Option width
`define AMIQ_ETH_IPV4_HEADER_OPTION_WIDTH 32
`endif
`ifndef AMIQ_ETH_IPV4_REQUIRED_REASSEMBLE_LENGTH
//The largest datagram that any host is required to be able to reassemble
`define AMIQ_ETH_IPV4_REQUIRED_REASSEMBLE_LENGTH 576
`endif
`ifndef AMIQ_ETH_FCOE_VERSION_WIDTH
//FCOE packet - width of "Version" field
`define AMIQ_ETH_FCOE_VERSION_WIDTH 4
`endif
`ifndef AMIQ_ETH_FCOE_RESERVED_BEFORE_SOF_SIZE
//FCOE packet - value of "Reserved Before SOF size" field
`define AMIQ_ETH_FCOE_RESERVED_BEFORE_SOF_SIZE 100
`endif
`ifndef AMIQ_ETH_FCOE_SOF_WIDTH
//FCOE packet - width of "SOF" field
`define AMIQ_ETH_FCOE_SOF_WIDTH 8
`endif
`ifndef AMIQ_ETH_ARP_HTYPE_WIDTH
//Hardware type (HTYPE)
`define AMIQ_ETH_ARP_HTYPE_WIDTH 16
`endif
`ifndef AMIQ_ETH_ARP_PTYPE_WIDTH
//Protocol type (PTYPE)
`define AMIQ_ETH_ARP_PTYPE_WIDTH 16
`endif
`ifndef AMIQ_ETH_ARP_HLEN_WIDTH
//Hardware length (HLEN)
`define AMIQ_ETH_ARP_HLEN_WIDTH 8
`endif
`ifndef AMIQ_ETH_ARP_PLEN_WIDTH
//Protocol length (PLEN)
`define AMIQ_ETH_ARP_PLEN_WIDTH 8
`endif
`ifndef AMIQ_ETH_ARP_OPER_WIDTH
//Operation
`define AMIQ_ETH_ARP_OPER_WIDTH 16
`endif
`ifndef AMIQ_ETH_ARP_SHA_WIDTH
//Sender hardware address (SHA)
`define AMIQ_ETH_ARP_SHA_WIDTH 48
`endif
`ifndef AMIQ_ETH_ARP_SPA_WIDTH
//Sender protocol address (SPA)
`define AMIQ_ETH_ARP_SPA_WIDTH 32
`endif
`ifndef AMIQ_ETH_ARP_THA_WIDTH
//Target hardware address (THA)
`define AMIQ_ETH_ARP_THA_WIDTH 48
`endif
`ifndef AMIQ_ETH_ARP_TPA_WIDTH
//Target protocol address (TPA)
`define AMIQ_ETH_ARP_TPA_WIDTH 32
`endif
`ifndef AMIQ_ETH_ARP_OPER_REQUEST
//The value of Operation field in ARP packet for Request
`define AMIQ_ETH_ARP_OPER_REQUEST 1
`endif
`ifndef AMIQ_ETH_ARP_OPER_REPLY
//The value of Operation field in ARP packet for Reply
`define AMIQ_ETH_ARP_OPER_REPLY 2
`endif
`ifndef AMIQ_ETH_FCOE_SOFf
//numerical value of "SOF" field for literal "SOFf" value
`define AMIQ_ETH_FCOE_SOFf 8'h28
`endif
`ifndef AMIQ_ETH_FCOE_SOFi2
//numerical value of "SOF" field for literal "SOFi2" value
`define AMIQ_ETH_FCOE_SOFi2 8'h2D
`endif
`ifndef AMIQ_ETH_FCOE_SOFn2
//numerical value of "SOF" field for literal "SOFn2" value
`define AMIQ_ETH_FCOE_SOFn2 8'h35
`endif
`ifndef AMIQ_ETH_FCOE_SOFi3
//numerical value of "SOF" field for literal "SOFi3" value
`define AMIQ_ETH_FCOE_SOFi3 8'h2E
`endif
`ifndef AMIQ_ETH_FCOE_SOFn3
//numerical value of "SOF" field for literal "SOFn3" value
`define AMIQ_ETH_FCOE_SOFn3 8'h36
`endif
`ifndef AMIQ_ETH_FCOE_SOFi4
//numerical value of "SOF" field for literal "SOFi4" value
`define AMIQ_ETH_FCOE_SOFi4 8'h29
`endif
`ifndef AMIQ_ETH_FCOE_SOFn4
//numerical value of "SOF" field for literal "SOFn4" value
`define AMIQ_ETH_FCOE_SOFn4 8'h31
`endif
`ifndef AMIQ_ETH_FCOE_SOFc4
//numerical value of "SOF" field for literal "SOFc4" value
`define AMIQ_ETH_FCOE_SOFc4 8'h39
`endif
`ifndef AMIQ_ETH_FCOE_EOF_WIDTH
//FCOE packet - width of "EOF" field
`define AMIQ_ETH_FCOE_EOF_WIDTH 8
`endif
`ifndef AMIQ_ETH_FCOE_RESERVED_AFTER_EOF_SIZE
//FCOE packet - value of "Reserved Before EOF size" field
`define AMIQ_ETH_FCOE_RESERVED_AFTER_EOF_SIZE 24
`endif
`ifndef AMIQ_ETH_FCOE_EOFn
//numerical value of "EOF" field for literal "EOFn" value
`define AMIQ_ETH_FCOE_EOFn 8'h41
`endif
`ifndef AMIQ_ETH_FCOE_EOFt
//numerical value of "EOF" field for literal "EOFt" value
`define AMIQ_ETH_FCOE_EOFt 8'h42
`endif
`ifndef AMIQ_ETH_FCOE_EOFni
//numerical value of "EOF" field for literal "EOFni" value
`define AMIQ_ETH_FCOE_EOFni 8'h49
`endif
`ifndef AMIQ_ETH_FCOE_EOFa
//numerical value of "EOF" field for literal "EOFa" value
`define AMIQ_ETH_FCOE_EOFa 8'h50
`endif
`ifndef AMIQ_ETH_FCOE_EOFrt
//numerical value of "EOF" field for literal "EOFrt" value
`define AMIQ_ETH_FCOE_EOFrt 0x44
`endif
`ifndef AMIQ_ETH_FCOE_EOFdt
//numerical value of "EOF" field for literal "EOFdt" value
`define AMIQ_ETH_FCOE_EOFdt 0x46
`endif
`ifndef AMIQ_ETH_FCOE_EOFdti
//numerical value of "EOF" field for literal "EOFdti" value
`define AMIQ_ETH_FCOE_EOFdti 0x4E
`endif
`ifndef AMIQ_ETH_FCOE_EOFrti
//numerical value of "EOF" field for literal "EOFrti" value
`define AMIQ_ETH_FCOE_EOFrti 0x4F
`endif
`ifndef AMIQ_ETH_FCOE_FC_FRAME_SIZE_MIN
//FCOE packet - minimum value of the "FC Frame Size" field
`define AMIQ_ETH_FCOE_FC_FRAME_SIZE_MIN 28
`endif
`ifndef AMIQ_ETH_FCOE_FC_FRAME_SIZE_MAX
//FCOE packet - maximum value of the "FC Frame Size" field
`define AMIQ_ETH_FCOE_FC_FRAME_SIZE_MAX 2180
`endif
`ifndef AMIQ_ETH_FCOE_FC_FRAME_CRC_SIZE_IN_BYTES
//FCOE packet - CRC size in bytes
`define AMIQ_ETH_FCOE_FC_FRAME_CRC_SIZE_IN_BYTES 4
`endif
//minimum header length in bits of the Ethernet frame
`define AMIQ_ETH_MINIMUM_HEADER_LENGTH_IN_BITS (`AMIQ_ETH_IPV4_HEADER_VERSION_WIDTH + `AMIQ_ETH_IPV4_HEADER_IHL_WIDTH + \
`AMIQ_ETH_IPV4_HEADER_DSCP_WIDTH + `AMIQ_ETH_IPV4_HEADER_ECN_WIDTH + \
`AMIQ_ETH_IPV4_HEADER_TOTAL_LENGTH_WIDTH + `AMIQ_ETH_IPV4_HEADER_IDENTIFICATION_WIDTH + \
`AMIQ_ETH_IPV4_HEADER_FLAGS_WIDTH + `AMIQ_ETH_IPV4_HEADER_FRAGMENT_OFFSET_WIDTH + \
`AMIQ_ETH_IPV4_HEADER_TTL_WIDTH + `AMIQ_ETH_IPV4_HEADER_PROTOCOL_WIDTH + \
`AMIQ_ETH_IPV4_HEADER_CHECKSUM_WIDTH + `AMIQ_ETH_IPV4_HEADER_SOURCE_IP_ADDRESS_WIDTH + \
`AMIQ_ETH_IPV4_HEADER_DESTINATION_IP_ADDRESS_WIDTH) \
//minimum header length in bytes of the Ethernet frame
`define AMIQ_ETH_MINIMUM_HEADER_LENGTH_IN_BYTES (`AMIQ_ETH_MINIMUM_HEADER_LENGTH_IN_BITS / 8) \
//minimum header length in words of the Ethernet frame
`define AMIQ_ETH_MINIMUM_HEADER_LENGTH_IN_WORDS (`AMIQ_ETH_MINIMUM_HEADER_LENGTH_IN_BITS / 32) \
`ifndef AMIQ_ETH_CRC32_CCITT_SEED
//seed for computing CRC32
`define AMIQ_ETH_CRC32_CCITT_SEED 32'hFFFFFFFF
`endif
`ifndef AMIQ_ETH_DEFAULT_MIN_FRAME_SIZE
//default minimum frame size
`define AMIQ_ETH_DEFAULT_MIN_FRAME_SIZE 64
`endif
`ifndef AMIQ_ETH_PTP_TRANSPORT_SPECIFIC_WIDTH
//PTP packet - width of the "Transport Specific" field
`define AMIQ_ETH_PTP_TRANSPORT_SPECIFIC_WIDTH 4
`endif
`ifndef AMIQ_ETH_PTP_IN_IEEE1588
//numerical value of "Transport Specific" field for literal "PTP_in_IEEE1588" value
`define AMIQ_ETH_PTP_IN_IEEE1588 0
`endif
`ifndef AMIQ_ETH_PTP_IN_802_1_AS
//numerical value of "Transport Specific" field for literal "PTP_in_802_1_as" value
`define AMIQ_ETH_PTP_IN_802_1_AS 1
`endif
`ifndef AMIQ_ETH_PTP_MESSAGE_TYPE_WIDTH
//PTP packet - width of the "Message Type" field
`define AMIQ_ETH_PTP_MESSAGE_TYPE_WIDTH 4
`endif
`ifndef AMIQ_ETH_PTP_SYNCMESSAGE
//numerical value of "Message Type" field for literal "PTP_SyncMessage" value
`define AMIQ_ETH_PTP_SYNCMESSAGE 0
`endif
`ifndef AMIQ_ETH_PTP_DELAY_REQMESSAGE
//numerical value of "Message Type" field for literal "PTP_Delay_ReqMessage" value
`define AMIQ_ETH_PTP_DELAY_REQMESSAGE 1
`endif
`ifndef AMIQ_ETH_PTP_PDELAY_REQMESSAGE
//numerical value of "Message Type" field for literal "PTP_Pdelay_ReqMessage" value
`define AMIQ_ETH_PTP_PDELAY_REQMESSAGE 2
`endif
`ifndef AMIQ_ETH_PTP_PDELAY_RESPMESSAGE
//numerical value of "Message Type" field for literal "PTP_Pdelay_RespMessage" value
`define AMIQ_ETH_PTP_PDELAY_RESPMESSAGE 3
`endif
`ifndef AMIQ_ETH_PTP_FOLLOW_UPMESSAGE
//numerical value of "Message Type" field for literal "PTP_Follow_UpMessage" value
`define AMIQ_ETH_PTP_FOLLOW_UPMESSAGE 8
`endif
`ifndef AMIQ_ETH_PTP_DELAY_RESPMESSAGE
//numerical value of "Message Type" field for literal "PTP_Delay_RespMessage" value
`define AMIQ_ETH_PTP_DELAY_RESPMESSAGE 9
`endif
`ifndef AMIQ_ETH_PTP_PDELAY_RESP_FOLLOW_UPMESSAGE
//numerical value of "Message Type" field for literal "PTP_Pdelay_Resp_Follow_UpMessage" value
`define AMIQ_ETH_PTP_PDELAY_RESP_FOLLOW_UPMESSAGE 10
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCEMESSAGE
//numerical value of "Message Type" field for literal "PTP_AnnounceMessage" value
`define AMIQ_ETH_PTP_ANNOUNCEMESSAGE 11
`endif
`ifndef AMIQ_ETH_PTP_SIGNALLINGMESSAGE
//numerical value of "Message Type" field for literal "PTP_SignallingMessage" value
`define AMIQ_ETH_PTP_SIGNALLINGMESSAGE 12
`endif
`ifndef AMIQ_ETH_PTP_MANAGEMENTMESSAGE
//numerical value of "Message Type" field for literal "PTP_ManagementMessage" value
`define AMIQ_ETH_PTP_MANAGEMENTMESSAGE 13
`endif
`ifndef AMIQ_ETH_PTP_SYNCMESSAGE_CTRL
//numerical value of "Control Field" field for literal "PTP_SyncMessage_ctrl" value
`define AMIQ_ETH_PTP_SYNCMESSAGE_CTRL 0
`endif
`ifndef AMIQ_ETH_PTP_DELAY_REQMESSAGE_CTRL
//numerical value of "Control Field" field for literal "PTP_Delay_ReqMessage_ctrl" value
`define AMIQ_ETH_PTP_DELAY_REQMESSAGE_CTRL 1
`endif
`ifndef AMIQ_ETH_PTP_FOLLOW_UPMESSAGE_CTRL
//numerical value of "Control Field" field for literal "PTP_Follow_UpMessage_ctrl" value
`define AMIQ_ETH_PTP_FOLLOW_UPMESSAGE_CTRL 2
`endif
`ifndef AMIQ_ETH_PTP_DELAY_RESPMESSAGE_CTRL
//numerical value of "Control Field" field for literal "PTP_Delay_RespMessage_ctrl" value
`define AMIQ_ETH_PTP_DELAY_RESPMESSAGE_CTRL 3
`endif
`ifndef AMIQ_ETH_PTP_MANAGEMENTMESSAGE_CTRL
//numerical value of "Control Field" field for literal "PTP_ManagementMessage_ctrl" value
`define AMIQ_ETH_PTP_MANAGEMENTMESSAGE_CTRL 4
`endif
`ifndef AMIQ_ETH_PTP_RESERVED_1_WIDTH
//PTP packet - width of the "Reserved " field
`define AMIQ_ETH_PTP_RESERVED_1_WIDTH 4
`endif
`ifndef AMIQ_ETH_PTP_VERSION_WIDTH
//PTP packet - width of the "Version" field
`define AMIQ_ETH_PTP_VERSION_WIDTH 4
`endif
`ifndef AMIQ_ETH_PTP_MESSAGE_LENGTH_WIDTH
//PTP packet - width of the "Message Length" field
`define AMIQ_ETH_PTP_MESSAGE_LENGTH_WIDTH 16
`endif
`ifndef AMIQ_ETH_PTP_DOMAIN_NUMBER_WIDTH
//PTP packet - width of the "Domain Number" field
`define AMIQ_ETH_PTP_DOMAIN_NUMBER_WIDTH 8
`endif
`ifndef AMIQ_ETH_PTP_RESERVED_2_WIDTH
//PTP packet - width of the "Reserved" field
`define AMIQ_ETH_PTP_RESERVED_2_WIDTH 8
`endif
`ifndef AMIQ_ETH_PTP_FLAGS_WIDTH
//PTP packet - width of the "Flags" field
`define AMIQ_ETH_PTP_FLAGS_WIDTH 16
`endif
`ifndef AMIQ_ETH_PTP_CORRECTION_FIELD_WIDTH
//PTP packet - width of the "Correction Field" field
`define AMIQ_ETH_PTP_CORRECTION_FIELD_WIDTH 64
`endif
`ifndef AMIQ_ETH_PTP_RESERVED_3_WIDTH
//PTP packet - width of the "Reserved" field
`define AMIQ_ETH_PTP_RESERVED_3_WIDTH 32
`endif
`ifndef AMIQ_ETH_PTP_SOURCE_PORT_IDENTITY_SIZE
//PTP packet - size of "Source Port Identity" field
`define AMIQ_ETH_PTP_SOURCE_PORT_IDENTITY_SIZE 10
`endif
`ifndef AMIQ_ETH_PTP_SEQUENCE_ID_WIDTH
//PTP packet - width of the "Sequence ID" field
`define AMIQ_ETH_PTP_SEQUENCE_ID_WIDTH 16
`endif
`ifndef AMIQ_ETH_PTP_CONTROL_FIELD_WIDTH
//PTP packet - width of the "Control Field" field
`define AMIQ_ETH_PTP_CONTROL_FIELD_WIDTH 8
`endif
`ifndef AMIQ_ETH_PTP_LOG_MESSAGE_WIDTH
//PTP packet - width of the "Log Message" field
`define AMIQ_ETH_PTP_LOG_MESSAGE_WIDTH 8
`endif
`ifndef AMIQ_ETH_PTP_ORIGIN_TIMESTAMP_SIZE
//PTP packet - size of "Origin Timestamp" field
`define AMIQ_ETH_PTP_ORIGIN_TIMESTAMP_SIZE 10
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_CURRENT_UTC_OFFSET_WIDTH
//PTP packet - width of the "Current UTC Offset" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_CURRENT_UTC_OFFSET_WIDTH 16
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_RESERVED_WIDTH
//PTP packet - width of the "Reserved" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_RESERVED_WIDTH 8
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_PRIORITY_1_WIDTH
//PTP packet - width of the "Priority 1" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_PRIORITY_1_WIDTH 8
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_CLOCK_QUALITY_WIDTH
//PTP packet - width of the "Clock Quality" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_CLOCK_QUALITY_WIDTH 32
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_PRIORITY_2_WIDTH
//PTP packet - width of the "Priority 2" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_PRIORITY_2_WIDTH 8
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_IDENTITY_WIDTH
//PTP packet - width of the "Grandmaster Identity" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_GRANDMASTER_IDENTITY_WIDTH 64
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_STEPS_REMOVED_WIDTH
//PTP packet - width of the "Steps Removed" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_STEPS_REMOVED_WIDTH 16
`endif
`ifndef AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_TIME_SOURCE_WIDTH
//PTP packet - width of the "Time Source" field from "Announce Message" body
`define AMIQ_ETH_PTP_ANNOUNCE_MESSAGE_TIME_SOURCE_WIDTH 8
`endif
`endif