Gigabit ethernet interface to synchronous optical network (SONET) ring
DCFirst Claim
1. A method for routing data packets at a transport node of a SONET network comprising:
- (a) receiving SONET payloads having data packets at said transport node;
(b) removing said data packets for said SONET payloads;
(c) for each data packet of said data packets;
(i) determining a destination address;
(ii) determining if an entry exists in a table associated with said transport node matching said destination address; and
(iii) if a matching entry does not exist, queuing said each data packet on a first queue for a first output path and a copy of said each data packet on a second queue for a second output path;
(d) transmitting selected data packets from said first queue onto said first output path; and
(e) transmitting selected data packets from said second queue into said second output path.
17 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A method and apparatus for routing data packets via a synchronous optical (SONET) network from devices connected to a local area network to devices connected to other local area networks. At each transport node in the SONET network the data packets are unloaded from SONET payloads and requeued for transmission on an output path. This allows for easy resolution of contention between devices transmitting at the same time and avoids pre-assigning SONET channels. Source and destination address information from the data packets can be used to route the data packets through the SONET network. A time-to-live indicator can be used to find the shortest path to a destination address in a SONET ring network or any bidirectional ring network.
104 Citations
22 Claims
-
1. A method for routing data packets at a transport node of a SONET network comprising:
-
(a) receiving SONET payloads having data packets at said transport node;
(b) removing said data packets for said SONET payloads;
(c) for each data packet of said data packets;
(i) determining a destination address;
(ii) determining if an entry exists in a table associated with said transport node matching said destination address; and
(iii) if a matching entry does not exist, queuing said each data packet on a first queue for a first output path and a copy of said each data packet on a second queue for a second output path;
(d) transmitting selected data packets from said first queue onto said first output path; and
(e) transmitting selected data packets from said second queue into said second output path. - View Dependent Claims (5, 6, 7, 8, 9, 10)
including said selected data packets in one or more SONET payloads prior to transmitting said data packets.
-
-
6. The method as claimed in claim 5 wherein each of said first output path and said second output path comprises an optical fibre.
-
7. The method claimed in claim 1 further comprising:
if said matching entry exists, reading from said associated table an identifier of a designated output path associated with said destination address, and queuing said each data packet on said designated output path.
-
8. The method claimed in claim 7 further comprising the steps of:
-
(a) receiving an indication an output path is not functional; and
(b) deleting any entries in said table containing an identifier of said non-functional output path.
-
-
9. The method as claimed in claim 1 wherein said second output path comprises an input to a local area network.
-
10. The method as claimed in claim 1 further comprising:
-
for each data packet;
determining a source address of said each data packet;
associating said each data packet with an identifier of an input path from which said each data packet was received;
determining if an entry exists in a table associated with said transport node matching said source address of said each data packet and, if said entry matching said source address does not exist, creating a new entry in said associated table containing (i) said source address of said each data packet, and (ii) said identifier.
-
-
2. A method for routing data packets at a transport node of a SONET network comprising:
-
(a) receiving SONET payloads having data packets at said transport node;
(b) removing said data packets from said SONET payloads;
for each data packet of said data packets;
(i) selecting an output path;
(ii) determining whether a current time-to-live “
TTL”
indicator having a current value has been appended to said each data packet;
(iii) if said current TTL indicator has not already been appended, appending a new TTL indicator having an initial value to said each data packet; and
(iv) if said current TTL indicator has already been appended to said each data packet, decrementing said current value of said current TTL indicator;
(v) where any said current value exceeds a threshold, queuing said each data packet on a queue associated with said selected output path;
(c) transmitting data packets from each said queue. - View Dependent Claims (3, 4, 16)
for said each data packet;
(i) associating said each data packet with an identifier of an input path from which said each data packet was received;
(ii) determining presence of an existing entry in a table associated with said transport node matching a source address of said each data packet;
(iii) if there is no said existing entry, creating a new entry in said associated table containing (I) said source address of said each data packet, (II) said identifier and (III) the current value of any said current TTL indicator; and
(iv) on finding said existing entry with said matching source address in said table, creating a new table entry based on said each data packet and deleting said existing entry if the current value of any said current TTL indicator of said each data packet is higher in said each data packet than that in said existing entry.
-
-
4. The method as claimed in claim 2 further comprising:
(a) dropping any said each data packet from said transport node if its TTL indicator has decremented to zero.
-
16. The method of claim 2 further comprising:
-
determining a destination address for said each data packet;
determining if an entry exists in a table associated with said transport node matching said destination address;
if said entry does not exist, creating at least one copy of said each data packet and selecting an output path for said at least one copy different from said output path selected for said each data packet.
-
-
11. A method for routing data packets at a transport node in a SONET network, said transport node capable of receiving packets from and transmitting packets to the north, west and east directions, said west and east directions transmitting to or receiving from said SONET network, said north direction for transmitting to or receiving from a data packet generating device, said method comprising:
-
(a) receiving a received data packet from one direction of the north, west or east directions;
(b) removing said received data packet from one or more SONET payloads when said received data packet is received from the east or west direction;
(c) determining a destination address for said received data packet;
(d) consulting a table for said destination address and if no matching entry exists, creating a copy of said received data packet;
(e) queuing said received data packet on a first queue associated with a first output path for a direction other then said one direction from which said received data packet was received;
(f) queuing said copy of said received data packet on a second queue associated with a second output path for a direction other than said direction from which said received data packet was received and other than a direction associated with said first output path;
(g) selecting a selected data packet from said first queue;
(h) including said selected data packet in one or more SONSET payloads if said first output path is in the east or west direction; and
,(i) transmitting said selected data packet on said first output path.
-
-
12. An apparatus for routing data packets in a SONET network comprising:
-
(a) a plurality of SONET packet receivers for receiving SONET payloads, each SONET payload containing at least part of a data packet;
(b) a plurality of data packet receivers for receiving data packets;
(c) a packet distributor, (i) said packet distributor connected to each of said plurality of SONET packet receivers and to each of said plurality of data packet receivers; and
(ii) said packet distributor for receiving data packets from said plurality of SONET packet receivers and data packet receivers;
(d) a plurality of output paths;
(e) (f) at least one queue associated with each of said plurality of output paths, said at least one queue for receiving routed data packets;
(f) in means for routing each data packet to a selected output path by;
determining a destination address for said each data packet;
determining if an entry exists in a table matching said destination address; and
if a matching entry does not exist, queuing said each data packet on a first queue associated with a first output path and a copy of said each data packet on a second queue associated with a second output path;
(g) a scheduler associated with each said at least one queue for selecting a data packet from one of said at least one queue;
(h) a transmitter for transmitting said selected data packet to an output path.
-
-
13. A method for selecting a shortest path to a destination address for data packets containing source and destination addresses in a bi-directional ring network comprising:
-
(a) receiving said data packets at a node;
(b) for each received data packet of the received data packets;
(i) appending a new Time-To-Live “
TTL”
indicator having an initial value to said each received data packet if a TTL indicator has not already been appended;
(ii) decrementing an existing value of an existing TTL indicator if said existing TTL indicator has already been appended to said each received data packet;
(iii) comparing said source address of said each received data packet with source address entries in an associated table and on not finding a source address match, (I) associating said each received data packet with an identifier of an output path associated with an input path from which said each data packet was received;
(II) creating an entry in said associated table containing;
(A) said source address of said each received data packet, (B) said identifier, and (C) the value of the TTL indicator appended to said each data received packet;
and on finding said source address march creating a new table entry based on said each received data packet and deleting an existing matching entry if a value of the TTL indicator appended to said each received data packet is higher tan that in said existing entry;
(iv) determining a destination address for said each received data packet;
(v) determining if an entry exists in said associated table matching said destination address for said each received data packet, (vi) if said entry matching said destination address exists, reading from said associated table an identifier of an associated output path, and selecting said associated output path for said each received data packet;
(vii) if said entry matching said destination address does not exist, (A) selecting a target output path for said each received data packet;
(B) creating at least one copy of said each received data packet;
(C) selecting a different output path for each said at least one copy of said each received data packet, each said different output path being other than said target output path.
-
-
14. An apparatus for routing data packets at a transport node of a SONET network comprising:
-
(a) means for receiving SONET payloads having data packets at said transport node;
(b) means for removing said data packets from said SONET payloads, (c) means for, for each of said data packets;
(i) determining a destination address;
(ii) determining if an entry exists in a table associated with said transport node matching said destination address;
(iii) if a matching entry does not exist, queuing said each of said data packets on a first queue for a first output path and a copy of said each of said data packets on a second queue for a second output path;
(d) means for transmitting selected data packets from said first queue onto said first output path and selected data packets from said second queue onto said second output path.
-
-
15. An apparatus for selecting a shortest path to a destination address for data packets containing source and destination addresses in a bi-directional ring network comprising:
-
(a) means for receiving said data packets at a node;
(b) means for, for each received data packet of the received data packets;
(i) appending a new Time-To-Live “
TTL”
indicator having an initial value to said each received data packet if a TTL indicator has not already been appended;
(ii) decrementing an existing value of an existing TTL indicator if said existing TTL indicator has already been appended to said each received data packet;
(iii) comparing said source address of said each received data packet with source address entries in an associated table and on not finding a source address match, (I) associating said each received data packet with an identifier of an output path associated with an input path from which said each received data packet was received;
(II) creating an entry in said associated table containing;
(A) said source address of said each received data packet, (B) said identifier and (C) the value of the new TTL indicator or the existing TTL indicator appended to said each received data packet;
and on finding said source address match, creating a new table entry based on said each received data packet and deleting an existing matching entry if a value of the new TTL indicator or the existing TTL indicator appended to said each received data packet is higher than that in said existing matching entry;
(iv) determining a destination address for said each received data packet;
(v) determining if an entry exists in said associated table matching said destination address for said each received data packet, (vi) if said destination matching entry exists, reading from said associated table an identifier of an associated output path, and selecting said associated output path for said each received data packet;
(vii) if said destination matching entry does not exist, (A) selecting a target output path for said each received data packet;
(B) creating at least one copy of said each received data packet;
(C) selecting a different output path for each said at least one copy, each said different output path being other than said target output path.
-
-
17. A method for routing data packets at a Transport node of a SONET network comprising:
-
(a) receiving SONET payloads having data packets at said transport node;
(b) removing said data packets from said SONET payloads;
(c) for each data packet of said data packets;
determining a destination address;
determining if an entry exists in a table associated with said transport node matching said destination address;
if an entry matching said destination address does not exist;
queuing said each data packet on a selected queue for a selected output path;
queuing a plurality of copies of said each data packet on a like plurality of remaining queues for remaining output paths, said remaining output paths comprising output paths other than said selected output path;
(d) transmitting data packets to said selected output path from said selected queue and to said remaining output paths from said remaining queues. - View Dependent Claims (18)
-
-
19. A method for routing data packets at a transport node of a SONET network comprising:
-
receiving SONET payloads having data packets at said transport node;
removing said data packets from said SONET payloads;
for each data packet of said data packets;
(i) determining whether a current time-to-live “
TTL”
indicator having a current value has been appended to said each data packet;
(ii) if said current TTL indicator has been appended to said each data packet, adjusting said current value of said current TTL indicator and where any said current value bears a pre-defined relationship to a threshold, outputing said each data packet. - View Dependent Claims (20, 21, 22)
(iii) if said current TTL indicator has not already been appended, appending a new TTL indicator having an initial value to said each data packet and outputting said each data packet.
-
-
21. The method of claim 20 further comprising,
for said each data packet: -
determining a destination address;
determining if an entry exists in a table associated with said transport node matching said destination address;
if a matching entry does not exist;
queuing said each data packet on a selected queue for a selected output path;
queuing a plurality of copies of said each data packet on a like plurality of remaining queues for remaining output paths, said remaining output paths comprising output paths other thad said selected output path;
transmitting data packets to said selected output path from said selected queue and to said remaining output paths from said remaining queues.
-
-
22. The method of claim 21 wherein said receiving SONET payloads having data packets comprises receiving SONET payloads on a first input path, said first input path being associated with an associated output path and wherein said selected output path, and said remaining output paths comprise output paths other than said associated output path.
Specification