IP Library Granted Patent US 7,586,925
Granted Patent B2
US 7,586,925 · App. 10/658,352 · Granted Sep 8, 2009

Data adaptation protocol

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,586,925
App. No.
10/658,352
Granted
Sep 8, 2009
Kind
B2
Abstract

A gateway apparatus includes multiple network server cards which are synchronized with each other to allow time slot switching of synchronous data across an asynchronous medium between source and destination server cards. The gateway includes synchronization logic and a data adaptation layer which implements a protocol for formatting of synchronous serial data. The data undergoes serial to parallel conversion and is formed into per time slot subpackets which are further packetized along with context and synchronization data. The packet is transmitted through an asynchronous switch after which the packet is disassembled into its constituent subpackets and queued into play-out buffers according to each subpackets' associated context and synchronization data. The apparatus allows synchronous data to be switched from a source time slot to a destination time slot across the asynchronous switch with a known, fixed delay. The gateway apparatus requires only a single asynchronous switch to transmit data between and among both the synchronous and asynchronous domains.

Claims (62)

1. A method for processing data comprising:

(a) converting streams of synchronous serial data associated with a plurality of source time slots in a time-division multiplexing frame into a plurality of parallel data units;

(b) constructing, during a synchronization interval, subpackets in memory from the plurality of parallel data units;

(c) storing memory context information, including a destination time slot identifier, for each subpacket associated with each of a plurality of different source time slots in a time-division multiplexing frame;

(d) constructing a data packet in memory, the data packet including at least one synchronization tag identifying the synchronization interval, a plurality of subpackets, and the respective memory context information associated with each of the subpackets;

(e) providing the data packet to a receiving mechanism comprising an asynchronous switch; and

(f) transmitting from the asynchronous switch the data packet, including a plurality of subpackets, to a destination to disassemble the data packet into subpackets, each subpacket being associated with a corresponding destination time slot identifier.

2. The method of claim 1 wherein (f) comprises:

(f1) directing a subpacket into a play-out memory buffer based on the destination time slot identifier associated with the subpacket.

3. The method of claim 1 wherein (f) comprises:

(f1) directing a subpacket into a location within a play-out memory buffer based on the synchronization tag associated with the subpacket.

4. The method of claim 1 wherein (f) comprises:

(f1) determining a number of subpackets contained within the packet.

5. The method of claim 1 wherein the memory context comprises time slot identification data.

6. The method of claim 1 wherein the memory context comprises destination queue identification data.

7. The method of claim 1 wherein the memory context comprises enable data for enabling a data stream.

8. The method of claim 1 wherein the packet further comprises data, identifying the number of subpackets contained therein.

9. The method of claim 1 wherein the asynchronous switch comprises a plurality of destination ports and the packet further comprises data identifying to which of the destination ports the packet will be supplied.

10. The method of claim 1 wherein (c) comprises:

(c1) maintaining associations between a plurality of source time slot identifiers and a plurality of destination time slot identifiers.

11. A method for processing data comprising:

(a) converting a plurality of synchronous serial data streams, each associated with a source time slot, into parallel data units;

(b) constructing, in ingress memory, subpackets from the parallel data units associated with one of the source time slots,

(c) retrieving ingress context data associated with each subpacket associated with each of a plurality of different source time slots, the ingress context data comprising a destination time slot identifier, a queue identifier, and an enable variable;

(d) constructing, in each of a plurality of queues, a data packet from subpackets and ingress context data associated with multiple source time slots, the subpackets within the data packet completed within a synchronization interval, the data packet further comprising i) at least one synchronization tag identifying the synchronization interval, and ii) data identifying the number of subpackets contained in the packet;

(e) upon completion of a data packet, providing the data packet to the receiving mechanism comprising an asynchronous switch; and

(f) transmitting from the asynchronous switch the data packet to a destination to disassemble the data packet into subpackets, each subpacket being associated with a corresponding destination time slot identifier.

12. The method of claim 11 wherein (c) comprises:

(c1) upon completion of a subpacket, reading from an ingress context memory the ingress context data.

13. A method for processing data comprising:

(a) providing an apparatus having synchronization logic and an asynchronous switch for routing synchronous signals among a synchronous network interface and an asynchronous network interface and synchronization logic;

(b) receiving a plurality synchronous serial data streams each from a different source time slot in a time-division multiplexing frame;

(c) constructing a data packet from a plurality of subpackets each derived from one the synchronous serial data streams and a respective memory context stored with each subpacket, wherein the respective memory context includes a destination time slot identifier for each subpacket associated with each of the different source time slots in the time-division multiplexing frame;

(d) routing the data packet through the asynchronous switch to one of the asynchronous network interface and the synchronous network interface; and

(e) transmitting from the asynchronous switch the data packet to disassemble the data packet into the plurality of subpackets, each subpacket being associated with a corresponding destination time slot identifier.

14. A method for processing data comprising:

(a) receiving a data packet from an asynchronous switch, the data packet comprising:

a plurality of subpackets associated with a plurality of source time slots in a time-division multiplexing frame, the subpackets within the data packet completed within a synchronization interval; and

ingress context data associated with the plurality of source time slots, the ingress context data comprising a destination time slot identifier for each subpacket associated with each of a plurality of different source time slots, the data packet further comprising

i) at least one synchronization tag identifying the synchronization interval, and

ii) data identifying the number of subpackets contained in the packet;

(b) writing a subpackets into one of a plurality of playout buffers within an egress memory based on context data associated with the subpacket;

(c) writing the subpacket to a position within one of the plurality of playout buffers in accordance with the synchronization interval identified by the synchronization tag plus a fixed address offset; and

(d) sequentially reading the subpackets from the playout buffer.

15. The method of claim 14 further comprising:

(e) converting the data in the subpacket into serial synchronous data.

16. The method of claim 14 wherein the context data associated with a subpacket comprises a destination time slot identifier and wherein (b) comprises:

(b1) writing a subpackets into one of a plurality of playout buffers within the egress memory in accordance with the destination time slot identifier.

17. A communications system comprising:

a network server device configured to:

convert streams of synchronous serial data associated with a plurality of source time slots in a time-division multiplexing frame into a plurality of parallel data units;

construct, during a synchronization interval, subpackets in memory from the plurality of parallel data units;

store memory context information, including a destination time slot identifier, for each subpacket associated with each of a plurality of different source time slots in a time-division multiplexing frame;

construct a data packet in memory, the data packet including at least one synchronization tag identifying the synchronization interval, a plurality of subpackets, and the respective memory context information associated with each of the subpackets; and

provide the data packet to a receiving mechanism comprising an asynchronous switch, so that the receiving mechanism can transmit the data packet, including a plurality of subpackets, to a second network server device that disassembles the data packet into subpackets, each subpacket being associated with a corresponding destination time slot identifier.

18. A computer program product, tangibly embodied in a computer-readable storage device, the computer program product including instructions being operable to cause a computing device to:

convert streams of synchronous serial data associated with a plurality of source time slots in a time-division multiplexing frame into a plurality of parallel data units;

construct, during a synchronization interval, subpackets in memory from the plurality of parallel data units;

store memory context information, including a destination time slot identifier, for each subpacket associated with each of a plurality of different source time slots in a time-division multiplexing frame;

construct a data packet in memory, the data packet including at least one synchronization tag identifying the synchronization interval, a plurality of subpackets, and the respective memory context information associated with each of the subpackets;

provide the data packet to a receiving mechanism comprising an asynchronous switch; and

transmit from the asynchronous switch the data packet, including a plurality of subpackets, to a destination to disassemble the data packet into subpackets, each subpacket being associated with a corresponding destination time slot identifier.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2024
From: CITIZENS BANK, N.A.
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 067822/0433 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 044978/0801 Recorded Dec 6, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 058949/0497 →
SECURITY INTEREST Recorded Mar 3, 2020
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052076/0905 →
CHANGE OF NAME Recorded Jan 16, 2019
From: SONUS NETWORKS, INC.
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
Reel/Frame 048078/0036 →
SECURITY INTEREST Recorded Jan 2, 2018
From: GENBAND US LLC; SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 044978/0801 →
CHANGE OF NAME Recorded Dec 24, 2017
From: SONUS, INC.
To: SONUS NETWORKS, INC.
Reel/Frame 044957/0213 →
MERGER AND CHANGE OF NAME Recorded Dec 24, 2017
From: SOLSTICE SAPPHIRE, INC.; SONUS NETWORKS, INC.; SONUS NETWORKS, INC.
To: SONUS, INC.
Reel/Frame 044957/0243 →
RELEASE OF SECURITY INTEREST Recorded Oct 24, 2017
From: BANK OF AMERICA, N.A.
To: SONUS NETWORKS, INC.; SONUS FEDERAL, INC.; NETWORK EQUIPMENT TECHNOLOGIES, INC.; PERFORMANCE TECHNOLOGIES, INCORPORATED; SONUS INTERNATIONAL, INC.; TAQUA, INC.
Reel/Frame 044283/0361 →
SECURITY INTEREST Recorded Sep 12, 2014
From: SONUS NETWORKS, INC.; SONUS FEDERAL, INC.; NETWORK EQUIPMENT TECHNOLOGIES, INC.; PERFORMANCE TECHNOLOGIES, INCORPORATED; SONUS INTERNATIONAL, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033728/0409 →