US 12,212,502 B2
Reliable transport architecture
Mark Debbage, Santa Clara, CA (US); Robert Southworth, Chatsworth, CA (US); Arvind Srinivasan, San Jose, CA (US); Cheolmin Park, Shrewsbury, MA (US); Todd Rimmer, Exton, PA (US); and Brian S. Hausauer, Austin, TX (US)
Assigned to Intel Corporation, Santa Clara, CA (US)
Filed by Intel Corporation, Santa Clara, CA (US)
Filed on Oct. 29, 2020, as Appl. No. 17/084,526.
Claims priority of provisional application 62/929,001, filed on Oct. 31, 2019.
Prior Publication US 2021/0119930 A1, Apr. 22, 2021
Int. Cl. H04L 47/34 (2022.01); H04L 1/1607 (2023.01); H04L 47/125 (2022.01)
CPC H04L 47/34 (2013.01) [H04L 1/1642 (2013.01); H04L 47/125 (2013.01)] 19 Claims
OG exemplary drawing
 
1. An apparatus comprising:
an endpoint sender network interface comprising:
a physical layer interface and
circuitry coupled to the physical layer interface, the circuitry to:
receive a request to transmit a packet to a destination device,
select a path for the packet,
provide a path identifier identifying one of multiple paths from the network interface to a destination and Path Sequence Number (PSN) for the packet in the selected path, wherein the PSN is to identify a packet transmission order over the selected path,
include the PSN in a reliability layer (RL) header of the packet,
determine a second sequence number of the packet, wherein the second sequence number is to identify a packet transmission order of the packet relative to previously transmitted packets over the multiple paths,
include the second sequence number in the RL header of the packet,
store data for the packet comprising: the second sequence number, the path identifier, and the PSN, and
transmit the packet, wherein
the packet is to include an Ethernet header, Internet Protocol (IP) header, transport layer header, and reliable transport packet,
the reliable transport packet comprises the RL header and RL data integrity value,
the RL header is separate from the transport layer header,
the RL data integrity value comprises a cyclic redundancy check (CRC) value, and
if the packet is a re-transmit of a previously transmitted packet, the circuitry is to:
 select a path for the re-transmit packet, and
 set a PSN of the re-transmit packet that is a current packet transmission number for the selected path for the re-transmit packet.
 
10. A network interface apparatus comprising:
a physical layer interface and
circuitry coupled to the physical layer interface, wherein the circuitry is to:
process a received packet to at least determine a Path Sequence Number (PSN) and a second sequence number of the received packet, wherein
the PSN is to provide an order of packet transmissions for a path associated with the received packet,
the received packet is to include an Ethernet header, Internet Protocol (IP) header, transport layer header, and reliable transport packet,
the reliable transport packet comprises a reliability layer (RL) header and RL data integrity value,
the RL header is separate from the transport layer header,
the RL header includes the PSN,
the RL data integrity value comprises a cyclic redundancy check (CRC) value,
the second sequence number is to identify a packet transmission order of the received packet relative to packets previously transmitted over multiple paths;
process a second received packet to at least determine its PSN,
based on the PSN of the second received packet not being a next sequential value after the PSN of the received packet, cause transmission of a re-transmit request to a sender of the packet and the second packet; and
based on a third received packet being a re-transmit of a previously transmitted packet, the re-transmit packet includes a PSN that is a then-current packet transmission number for a selected path for the re-transmit packet.
 
14. A method comprising:
at a network interface:
receiving a request to transmit a packet to a destination device;
selecting a path, among multiple paths, for the packet;
providing a Path Sequence Number (PSN) for the packet, wherein the PSN is to provide a packet transmission number for the packet using the selected path;
including the PSN in the packet;
including a second sequence number in the packet;
based on the packet comprising a re-transmit of a previously transmitted packet:
selecting a path for the re-transmit packet and setting a PSN of the re-transmit packet that is a current packet transmission number for the selected path for the re-transmit packet; and
transmitting the packet, wherein:
the packet includes an Ethernet header, Internet Protocol (IP) header, transport layer header, and reliable transport packet,
the reliable transport packet comprises a reliability layer (RL) header and RL data integrity value,
the RL header is separate from the transport layer header,
the RL header includes the PSN,
the second sequence number identifies a packet transmission order of a received packet relative to packets previously transmitted over the multiple paths, and
the RL data integrity value comprises a cyclic redundancy check (CRC) value.
 
17. A method comprising:
at a network interface:
processing a received packet to at least determine a Path Sequence Number (PSN) and second sequence number of the received packet, wherein
the PSN is to provide an order of packet transmissions for a path associated with the received packet,
the received packet is to include an Ethernet header, Internet Protocol (IP) header, transport layer header, and reliable transport packet,
the reliable transport packet comprises a reliability layer (RL) header and RL data integrity value,
the RL header is separate from the transport layer header,
the RL header includes the PSN,
the second sequence number identifies a packet transmission order of the packet relative to previously transmitted packets over multiple paths, and
the RL data integrity value comprises a cyclic redundancy check (CRC) value;
processing a second received packet to at least determine a PSN,
based on the PSN of the second received packet not being a next sequential value after the PSN of the received packet, transmitting a re-transmit request to a sender of the packet and the second packet; and
based on a third received packet being a re-transmit of a previously transmitted packet, the re-transmit packet includes a PSN that is a then-current packet transmission number for a selected path for the re-transmit packet.