In compliance with the ANSI VITA 49.0 standard, this document outlines the ICE VRT packet lengths, fields, and contents which are supported for UDP Multicast transport over ethernet interfaces (1Gbit/sec and 10Gbit/sec) by the VITA 49-compliant I/O modules. In order to achieve the highest possible throughput on both dedicated hardware and commercial computing platforms, certain options within the VITA 49.0 standard have been specified as mandatory.
Ethernet Frame Description
The raw ethernet frame transmitted by the ICE VITA 49-compliant I/O modules is shown in Figure 1 – Ethernet Frame Description Primary Payload. The Primary payload size is 1440 Bytes. An Ethernet Frame Description for the Alternate Payload size (1024 Bytes) is shown in Figure 2 – Ethernet Frame Description Alternate Payload In order to allow commercial network switches to segregate, prioritize, and efficiently route VRT packets, IEEE 802.1Q (VLAN) tagging of packets is supported. Additionally, the total raw IP packet size is kept below the 1542 byte maximum (1500 byte payload MTU) in order to prevent packet fragmentation and orphaned payloads. Many COTS routers and switches cannot support jumbo frames and will fragment IP packets which exceed the 1542 byte length.
ICE VRT Packet Description
The bitwise definition of the ICE VRT packet is shown in Figure 3 – ICE VRT Packet Definition. The packet definition specifies a default fixed-length VRT packet size of 1472 bytes. Using the VITA 49.0 definition of 32-bit words, each VRT packet contains the following fields: Header (1 word), Stream Identifier (1 word), Class Identifier (2 words), Timestamp (3 words), Payload (360 words), Trailer (1 word). Each of these fields are mandatory for the ICE VRT packets. By requiring all eight words of the VRT header and trailer fields (Header, StreamID, ClassID, Timestamp, Trailer), and by carefully selecting the payload size to be 360 words, eight byte alignment is maintained. This alignment is critical to the throughput of network cards and DMA interfaces on modern COTS computers. (Non-aligned memory moves on modern CPU architectures are very inefficient and can introduce significant performance bottlenecks.)
BITS
|
Field
|
Value
|
Description
|
31-28
|
Type
|
0x0001
|
IF Data Packet Type containing a Stream Identifier
|
27
|
C
|
0x1
|
Packet contains a Class Identifier
|
26
|
T
|
0x1
|
Packet contains a Trailer
|
25-24
|
RSV
|
N/A
|
Reserved
|
23-22
|
TSI
|
0xX
|
Packet contains a timestamp of type = {0x01, 0x10, 0x11}
|
21-20
|
TSF
|
0xX
|
Fractional timestamp of type = {0x01, 0x10, 0x11}
|
19-16
|
PKTCNT
|
0xX
|
Modulo-16 packet sequence counter
|
15-0
|
PKTSIZE
|
0x0170
|
VRT Header + 360 word payload
|
ICE VRT Packet – Stream Identifier
BITS
|
Field
|
Value
|
Description
|
31-0
|
Stream ID
|
0xXXXXXXXX
|
Unique 32-bit stream identifier for each data stream
|
ICE VRT Packet – Class Identifier (Word 1)
BITS
|
Field
|
Value
|
Description
|
31-24
|
RSV
|
0x00
|
Reserved
|
23-0
|
OUI
|
0x104D77
|
IEEE Organizationally Unique Identifier for ICE
|
ICE VRT Packet – Class Identifier (Word 2)
BITS
|
Field
|
Value
|
Description
|
31-16
|
ICC
|
0x0000
|
Information Class Code
|
15-0
|
PCC
|
0xXXXX
|
Packet Class Code
|
ICE VRT Packet – Class Identifier (Word 2, PCC Breakout)
BITS
|
Field
|
Value
|
Description
|
15
|
Packing
|
0x1
|
Processor or link efficient packing
|
14-13
|
ComplexMode
|
0x0
|
Real, complex, polar data mode
|
12-8
|
DIF
|
0x0
|
Data Item Format (enumerated list from VITA 49.0 spec)
|
7-6
|
RSV
|
N/A
|
Reserved
|
5-0
|
DIS
|
0xX
|
Data Item Size (bits_per_item - 1)
|
Appendix: Figures
Figure 1 – Ethernet Frame Description Primary Payload
Figure 2 – Ethernet Frame Description Alternate Payload
Figure 3 – ICE VRT Packet Definition