240 likes | 734 Views
Reliable Data Delivery Protocol (RDDP) William Anderson MEI Technologies Inc. 2006 MAPLD International Conference Washington, D.C. September 25, 2006. Reliable Data Delivery Protocol (RDDP) Introduction. Purpose
E N D
Reliable Data DeliveryProtocol(RDDP)William AndersonMEI Technologies Inc. 2006 MAPLD International Conference Washington, D.C. September 25, 2006
Reliable Data Delivery Protocol (RDDP) Introduction • Purpose • Provide a means of ensuring correct packet delivery from source to destination by • Acknowledgement from receiver • Selective Retransmit based on ACK timeout • Used over SpaceWire (SpW) • Minimize packet overhead • Be generic in nature • Developed to use Protocol ID (PID) standardized by ECSS-E-50-11 • Permanent Protocol ID request pending • Developed by Geostationary Environmental Satellite (GOES) -R series project • Protocol developed to meet project data loss requirement
RDDP Modes • Nominal Mode • Reliable Delivery – Acknowledge (ACK) every good packet • Urgent Message Mode • No ACKS & No Retransmits, fire and forget
How It Works • The protocol provides multiple virtual channels multiplexed • over a single SpaceWire connection. • Each virtual channel is independent of all other channels. • Channels should have allocated buffer space, and parameters • set for each channel. • After ACK timeout, selective retransmit can occur.
How It WorksTransmitter • XMTR establishes link by sending a RESET to the receiver • RCVR never sends RESET, XMTR never receives RESET • XMTR may send up to WindowSize packets ahead of last ACK • After ACK timeout, retransmit up to MaxRetries number of times • After MaxRetries is exhausted, notify host and quit. Host may issue RESET
How It WorksReceiver • Receiver sends ACK for every error free packet • No EOP, no CRC error, valid header • Receiver orders Reliable Delivery packets and eliminates duplicates • Receiver does not close or RESET a channel • Receiver may wait forever to receive opening RESET or next valid packet
RDDP Features • 2-Dword header. • Programmable parameters – sliding window size, timeouts, and retries. • 8 Bit CRC.
SpaceWire Protocol Identifier* Logical Address Protocol ID Rest of Packet EOP Logical Address and Protocol ID Path Address Logical Address Protocol ID Rest of Packet EOP Path Address and Protocol ID * Slide from SpaceWire RMAP Protocol, Steve Parkes, University of Dundee
RDDPPacket Format First byte transmitted Destination Logical Address Protocol ID Source Logical Address Packet Control** Packet Length (MSB) Packet Length (LSB) Channel Number Sequence Number Data Data Data Data Data Data Data Data Data* GRDDP Packet CRC EOP Last byte transmitted * Data length is 0 to 6553 bytes ** Bits in Packet Control – User Defined / Packet Type: 0 0 0 0 Packet (expect ACK) 0 0 0 1 Acknowledgement (ACK) 0 0 1 0 Reset Command 0 0 1 1 Urgent Message (No ACK) MSB LSB MSB LSB User defined Packet Type 4 bits 4 bits
RDDPABI Data Model • Imager Science Data GRDDP Header CCSDS Source Packet 1 CCSDS Source Packet 2 CCSDS Source Packet 3 CCSDS Source Packet 4 CCSDS Source Packet 5 CCSDS Source Packet 6 CCSDS Source Packet 7 CCSDS Source Packet 8 GRDDP Packet CRC EOP
Definitions (1) • Logical Address - defined in the SpaceWire standard • Identifies the destination of the packet • Range of 32 to 255 decimal • Used by SpW router look-up table to associate an output port number • If destination is unknown than default value of 254 used • May or may not be used for routing purposes • Node may reject or accept packet with logical address 254 • Path Address • Identifies PATH to destination • May be physical or logical (range is 1..253) • Specifies the SLA to route packet • Will NEED to be deleted by intermediate routers so that only destination logical address remains when delivered to protocol destination • Destination Logical Address • Destination virtual channel identifier • Source Logical Address • Logical address from which packet was transmitted • May be used to send back acknowledgements
Definitions (2) • Protocol Identifier (ID) • Specifies the packet format • PID requested for RDDP • Currently in experimental range • Packet Control • Packet Type • Packet to be acknowledged • Packet not to be acknowledged • Urgent message • Acknowledgement Packet • Reset Command • User defined • For example: could be a sub-protocol ID used to identify different packet cargo types using RDDP • Packet Length • 2 bytes • Used to indicate packet cargo length (bytes) • May be from 0 to 65535 bytes
Definitions (3) • Channel Number • 1 byte • Allows sub-addressing within a source destination pair (1553) • Sequence Number • 1 byte • Used to associate a packet and acknowledgement pair • Current protocol has a fixed range of 0 to 255 • Data • 0 to 65535 bytes • Data to be transferred using RDDP • CRC • 8 bit CRC • Same as ATM (HEC) • Used to confirm that header and data were received correctly
Sliding WindowThe RDDP Utilizes Selective Retransmit • The sliding window allows users to improve bandwidth • efficiency. • -- Gets around send and wait for ACK. • -- Window size, timeouts, and number of retries can • be tuned for maximum efficiency • --- Window size should be half sequence number. • Allows reordering packets if received out of sequence. • Detects duplicate packets.
Nominal OperationNo Errors – Fast ACKs Source Destination Packet n+1 ACK n+1 Tx Window advances 1 (may send next new packet) Packet n+2 ACK n+2 Tx Window advances 1 (may send next new packet) . . . . Packet n+8 ACK n+8 Tx Window advances 1 (may send next new packet)
Nominal OperationNo Errors – Burst Packets & or Slow ACKs Source Destination Packet 1 Packet 2 Packet 3 Packet 4 ACK 1 Tx Window advances 1 ACK 2 Tx Window advances 1 ACK 3 Tx Window advances 1 ACK 4 Tx Window advances 1 Transmitter can send up to window size number of packets before having to wait to receive an ACK
Source Destination Nominal Operation – ACK Error, Ex. 1 Packet 1 • Ex. window size 4 • Tx window may only be advanced by number of contiguous ACKed packet received from start of Tx window • Tx window must wait to send packets until ACK 1 received ACK 1 Packet 2 ACK 2 Packet 3 ACK 3 Packet 4 ACK 4 Time-Out Resend Packet 1 Rx Window discards duplicate packet 1 The next packet for window entry #1 will be Sequence #5 with new data packet content ACK 1 Tx Window advances 4 (may now send 4 new packets) Next New Packet
GOES-R Reliable Data DeliveryProtocol - Platforms • The GOES-R RDDP is now running on 3 hardware configurations • Development and testing has been SWTS to SWTS and SWTS to BAE ASIC • FPGA based SpaceWire Test Set (SWTS) • NASA SpW core • Windows PCI workstation • BAE Systems SpW ASIC integrated onto commercial PC board • NASA SpW core • PCI Windows workstation • BAE Systems SpW ASIC integrated onto flight board (ITT/ABI Rev A.) • cPCI form factor • Uses RAD750 over cPCI • VxWorks
GOES-R Reliable Data DeliveryProtocol - SWTS • The SWTS is a COTS card with FPGA image modified for GOES-R.
External Memory I/F Clocks/Reset DMA PLL SRAM 16K bytes MCTL SRAM 16K bytes EMC CAT OCB Master OCB Slave OCB Master OCB Master OCB Slave OCB Slave OCB Slave OCB Slave OCB Slave 64 64 32 64 64 64 64 64 32 OCB Connection Medium 32 32 64 64 64 64 32 64 64 32 OCB Master OCB Slave OCB Master OCB Master OCB Slave OCB Master OCB Slave OCB Slave OCB Slave OCB Master JTAG Slave (JTAG) PCI MISC UART RIF FIFO FIFO FIFO FIFO PCI 2.2 PCI 2.2 PID’s UART JTAG Reused New or Modified SPACEWIRE ASIC Block DiagramBAE Systems SRAM SDRAM EEPROM 64 64 32 OCB Master OCB Master OCB Slave PCI RIF Spacewire Router and Links 9 HP masters 6 HP slaves 1 LP master 6 LP slaves Spacewire I/F
GOES-R Reliable Data DeliveryProtocol – ITT/ABI cPCI Card • The ITT/ABI BAE ASIC proto flight with RAD750 and connected to SWTS workstations.
RDDP Team Bill Anderson – GOES-R C&DH Lead Engineer Craig Bearer – GOES-R C&DH Engineer – Software Marco Figueiredo – GOES-R Senior Hardware Engineer Eric Lynum – GOES-R Electrical Design Engineer Dan May – GOES-R Test Engineer Glenn Rakow – GSFC SpaceWire Consultant Jeffrey A. Kronenwetter– GOES-R ABI System Engineer Alexander Krimchansky – GOES-R Systems Manager