Title: Reliable Data Delivery Protocol (RDDP) William Anderson MEI Technologies Inc.
1Reliable Data DeliveryProtocol(RDDP) William
AndersonMEI Technologies Inc.
- 2006 MAPLD International Conference
- Washington, D.C.
- September 25, 2006
2Reliable 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
3RDDP Modes
- Nominal Mode
- Reliable Delivery Acknowledge (ACK) every good
packet - Urgent Message Mode
- No ACKS No Retransmits, fire and forget
4How 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.
5How 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 Window Size packets ahead of
last ACK - After ACK timeout, retransmit up to Max Retries
number of times - After Max Retries is exhausted, notify host and
quit. Host may issue RESET
6How 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
7RDDP Features
- 2-Dword header.
- Programmable parameters sliding window size,
timeouts, and retries. - 8 Bit CRC.
8SpaceWire Protocol Identifier
Logical Address
Protocol ID
Rest of Packet
EOP
Logical Address and Protocol ID
Logical Address
Protocol ID
Rest of Packet
EOP
Path Address
Path Address and Protocol ID
Slide from SpaceWire RMAP Protocol, Steve
Parkes, University of Dundee
9RDDPPacket 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
10RDDPABI Data Model
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
GRDDP Packet CRC
EOP
CCSDS Source Packet 8
11Definitions (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
12Definitions (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
13Definitions (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
14Sliding 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.
15Nominal OperationNo Errors Fast ACKs
Source
Destination
Packet n1
ACK n1
Tx Window advances 1 (may send next new packet)
Packet n2
ACK n2
Tx Window advances 1 (may send next new packet)
. .
. .
Packet n8
ACK n8
Tx Window advances 1 (may send next new packet)
16Nominal 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
17Nominal Operation ACK Error, Ex. 1
Source
Destination
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
18GOES-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
19GOES-R Reliable Data DeliveryProtocol - SWTS
- The SWTS is a COTS card with FPGA image modified
for GOES-R.
20SPACEWIRE ASIC Block DiagramBAE Systems
SRAM SDRAM EEPROM
64
32
64
OCB Master
OCB Slave
OCB Master
PCI
RIF
Spacewire Router and Links
9 HP masters 6 HP slaves 1 LP master 6 LP slaves
Spacewire I/F
21GOES-R Reliable Data DeliveryProtocol ASIC
Test Card
22GOES-R Reliable Data DeliveryProtocol ITT/ABI
cPCI Card
- The ITT/ABI BAE ASIC proto flight with RAD750 and
connected to SWTS workstations.
23RDDP Team
Bill Anderson GOES-R CDH Lead Engineer Craig
Bearer GOES-R CDH 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