![]() |
Architecture for transport of multiple services in connectionless packet-based communication networksNo:6647428 -Application no:09567555 -Filed date:2000-05-05 -Issue date:2003-11-11Abstract:An architecture for transport of multiple services in connectionless packet-based networks is described herein, along with the packet format used for data transport in this architecture. The architecture supports transport of both connectionless packetized data and framed data from synchronous leased lines. The architecture supports transparent packetization of incoming DS1 data. The architecture works for mesh architectures but is optimized for OSI Layer 1 (crossconnect) and Layer 2 (Virtual LAN, or VLAN) services and for ring topologies, since for these services in a ring no path setup is required using a label distribution protocol. In addition, it simultaneously supports OSI Layer 1, Layer 2, and Layer 3 services. US Classes:Inventors:Agents:Assignees:Claims:What is claimed is: 1. A method performed by a communications network, said network comprising nodes interconnected by communication links, said method comprising: attachment of a header to an incoming message identifying information required to deliver the message to a destination; routing of the message through the network to a destination based on information contained in the header, wherein the information comprises an address mode field, the address mode field identifying a type of addressing associated with a source and a destination address fields, wherein a first type of addressing comprises an M-bit address, wherein a second type of addressing comprises an N-bit address, N being significantly less than M. 2. The method of claim 1, wherein the header further comprises the source address field, the destination address field, and the address mode field. 3. The method of claim 2, wherein the header further comprises a version field to indicate a version of the header. 4. The method of claim 1, wherein the network comprises a ring topology, the header further comprising a tag field. 5. The method of claim 1, wherein the header further comprising: determining whether the incoming message is protected with a cyclic redundancy check (CRC); adding a payload frame check sequence to the incoming message if the incoming message is not protected with a CRC. 6. The method of claim 1, the header further comprising: the source address field, the destination address field, and the address mode field; a version field to indicate a version of the header; and a checksum field. 7. The method of claim 6, further comprising: determining whether the incoming message is protected with a cyclic redundancy check (CRC); adding a payload frame check sequence to the incoming message if the incoming message is not protected with a CRC. 8. The method of claim 1, wherein the incoming message comprises synchronous framed data, plesiochronous framed data, synchronous packet-based data, asynchronous packet-based data, asynchronous connection-oriented cell-based data, or frame-based data. 9. A method performed by a communications network, said network comprising nodes interconnected by communication links, said method comprising: receiving an incoming message at an ingress port; attaching a header to the incoming message, the header comprising: a field indicating which of a predetermined set of protection types is associated with the message, and an address mode field identifying a type of addressing associated with a source and a destination address fields, wherein a first type of addressing comprises an M-bit address, wherein a second type of addressing comprises an N-bit address, N being significantly less than M; and routing the incoming message according to the associated protection type. 10. The method of claim 9, wherein the communications network has a ring topology having first and second routing directions and wherein the protection type indicates whether the message is to be routed in the first routing direction or in the first and second routing directions. 11. The method of claim 9, wherein the protection type indicates whether the message will be re-routed in case of a device failure or a break in the network. 12. The method of claim 9, wherein the header further comprises at least one stream ID field to identify a stream associated with the message. 13. The method of claim 9, wherein the header further comprises a field representing an identity of the ingress port. 14. A method performed by a communications network, said network comprising nodes interconnected by communication links, said method comprising: receiving a payload to be transmitted from a node via an egress port of the node; attaching a header to the payload, the header comprising: a field identifying the egress port through which the payload is to be transmitted, and an address mode field identifying a type of addressing associated with a source and a destination address fields, wherein a first type of addressing comprises an M-bit address, wherein a second type of addressing comprises an N-bit address, N being significantly less than M; and transmitting the payload through the egress port identified in the header. 15. The method of claim 14, wherein the header further comprise a field containing a stream identifier associated with the payload. Text:FIELD OF THE INVENTIONThis invention relates to communication networks and, in particular, to a network architecture and corresponding packet header definition used for end-to-end transport through a connectionless packet-based network of multiple services originating at a variety of different types of tributary interfaces. BACKGROUNDMetropolitan access networks of the future must be able to carry packetized data traffic in a low-cost and efficient manner while at the same time providing a means for transport of synchronous or plesiochronous leased-line services. These networks must be flexible enough to offer a combination of Open Systems Interconnection (OSI) Layer Traditional connectionless, packetized data networks based on Internet Protocol (IP) routers or Ethernet switches are inherently closer to meeting the above requirements than connection-oriented asynchronous transfer mode (ATM) networks or time-division-multiplexed synchronous optical network (SONET) rings. However, neither type of network is sufficiently flexible to seamlessly transport data of other protocol types, such as synchronous leased lines, or to offer a combination of OSI Layer Ethernet with a multi-protocol label-switched (MPLS) label stack as defined in the Internet Engineering Task Force (IETF) Internet Draft âMPLS Label Stack Encodingâ by E. Rosen et al., draft-ietf-mpls-label-encaps-07.txt, incorporated herein by reference in its entirety, provides 8 classes of service and a 20-bit tag that can be used to switch packets via a label-based lookup at each hop through a network. It also provides an 8-bit time-to-live (TTL) field. Label-switched routers (LSRS) capable of performing a combination of IP routing, MPLS label-based lookups, and policy-based wild-card lookups are able to offer a combination of OSI Layer We have taken note of these ideas and built upon them in our architecture for transport of multiple services in connectionless packet-based networks, and in the formulation of the Optical Packet Transport Network (OPTNet) packet format used for data transport in this architecture. (This name is used to refer to the packet format in this specification purely for convenience and is not necessarily the permanent name associated with this packet format.) Part of the OPTNet packet format resembles the Ethernet with MPLS label stack packet format. Other portions of the OPTNet packet format differ to provide additional or different functionality or improved efficiency. Our architecture supports transport of both connectionless packetized data and framed data from synchronous leased lines. In addition, a fundamental premise of our architecture is simplicity in provisioning and management. Our architecture is optimized for OSI Layer SUMMARYAn architecture for transport of multiple services in connectionless packet-based networks is described herein, along with the packet format used for data transport in this architecture. The architecture supports transport of both connectionless packetized data and framed data from synchronous leased lines. The architecture supports transparent packetization of incoming DS1 data. The architecture works for mesh architectures but is optimized for OSI Layer BRIEF DESCRIPTION OF THE DRAWINGSDETAILED DESCRIPTION OF THE EMBODIMENTSThe inventions described herein provide an architecture for transport of multiple services in connectionless packet-based communication networks, and the packet formats and manipulations required for the delivery of services in networks based on this architecture. Certain aspects of the preferred embodiment are: a. The definition of the OPTNet packet format used for all packets transmitted between OPTNet interfaces of connected devices. b. The internal mechanisms and packet header manipulations internal to a device used to create OPTNet packets from incoming data on non-OPTNet interfaces, and to convert OPTNet packet to outbound data on non-OPTNet interfaces. c. The combination of destination address comparison and tag lookup performed for incoming packets on OPTNet interfaces. These aspects are described in detail below, after a description of the networks to which the inventions described herein are applicable. Description of the NetworkThis invention is applicable to devices in a defined virtual network topology. A device is considered to be part of the virtual network if it has at least one full-duplex interface connecting it to other devices in the virtual network, and if all data traveling over that interface is packetized in a connectionless manner and has a uniform packet format, known as the OPTNet packet format. At least some and usually all of the devices in the virtual network also have full-duplex interfaces connecting them to devices outside the virtual network. The devices within the virtual network are routing and/or multiplexing devices. The purpose of the virtual network is to deliver data from a variety of different kinds of external interfaces to corresponding compatible external interfaces elsewhere in the network. The traffic originating at any given device is packetized into OPTNet format and multiplexed. It is important to note that OPTNet packets corresponding to all types of services and data interfaces share the bandwidth of the OPTNet-compatible links as part of the same serial data stream. There is no need to segregate different types of services and data interfaces to different serial data streams, such as streams on different optical wavelengths. Description of OPTNet Packet FormatThe OPTNet address mode field is 4 bits wide. This field is used to indicate what type of addressing is used in the packet format, as described in the co-pending application entitled âDual-Mode Virtual Network Addressing,â by Jason Fan et al., Ser. No. 09/518957, filed Mar. 3, 2000, and incorporated herein by reference in its entirety. In the virtual networks described earlier to which this invention is applicable, there are two distinct settings for this field, one for a âshortâ addressing mode (in this case, 1 byte) for the source and destination addresses, and the other for a âlongâ addressing mode (in this case, 6 bytes corresponding to the Ethernet address length) for the source and destination addresses. This field is not used in the Ethernet with MPLS label stack packet format; that format is restricted to use of 6 byte Ethernet addresses. An original packet generated by a device external to the virtual network contains a conventional header with a source address of 48 bits and a destination address of 48 bits. At the interface between the external network and the virtual network, where the dual addressing conversion occurs, a processor in the interface node looks up, in a look-up table, a short address (e.g., 1 byte) corresponding to the long destination address in the header. A corresponding short address means that the destination device is within the virtual network associated with the interfacing device. The long addresses in the packet header are replaced by the corresponding short addresses, and the address type (long or short) is identified in the header in the address mode field. The packet with the shortened header is then forwarded to the destination node within the virtual address using the short address. An original packet generated at a node within the virtual network contains the long source and destination addresses. This original packet is typically output from a tributary interface card within a node. A packet processor within the node receives the original packet and, using a lookup table, identifies the corresponding short source address, replaces the long source address in the header with the short address, and identifies the address type in the address mode field. This also may be done with the destination address if appropriate. The packet with the short address in the header is then forwarded around the virtual network to the node that interface with the external network. At this point, the short address must be converted into the long address before transmitting the packet outside of the virtual network. To this end, a packet processor in the interface node looks up the corresponding long address and replaces the header containing the short address with a header containing the long address. For a packet generated internal to the virtual network destined for a device also within the virtual network, an original packet from a tributary interface card in a node with the virtual network will typically have a header with conventional long source and destination addresses. A packet processor in the node identifies a corresponding short address, if any, in a look-up table for each of the long addresses in the header and replaces the packet header with a header containing the short addresses and the address type in the address mode field. Both the source address and destination address can be reduced in this step. The packet with the shortened header is then forwarded in the virtual network to the destination node identified by the short address. The OPTNet version field is 4 bits wide. This field indicates the version number of the packet format header. Its use is optional unless there are multiple distinct versions of the OPTNet packet format in a future network. Then this field will be essential to enable interoperability between old devices able to understand only past versions of the header and new devices able to understand both past and current versions of the header. This field is not used in the Ethernet with MPLS label stack packet format, but a comparable field is used by protocols such as IPv4. The OPTNet header checksum is 8 bits wide. This field protects the entire OPTNet header through and including the time to live (TTL) field. There are a variety of algorithms that can be used to compute the header checksum. It can be an 8-bit cyclic redundancy check (CRC) such as that used in the ATM cell header. Or it can be a true 8-bit checksum such as that used in the IPv4 header. Algorithms that can be used to compute these are given in the book âAsynchronous Transfer Mode: Solution for Broadband ISDNâ by Martin de Prycker, second edition, Ellis Horwood, 1993, and the book âData and Computer Communicationsâ by William Stallings, fourth edition, Macmillan Publishing Company, 1994, both incorporated herein by reference in their entirety. A header checksum is used for one main reason: to decouple the header error detection from the payload error detection. A packet with an errored header must be discarded because it may end up being delivered to the wrong destination. A packet with an errored payload, however, sometimes should be delivered. For some service types, such as synchronous DS1 leased lines, it is desirable to deliver errored frames to the destination because it is preferable to transmit the errored frames on the DS1 rather than losing the frame entirely. In our architecture, therefore, the type of service and interface from which the packet payload originates determines whether the packet will be discarded based on a payload error. This field is not used in the Ethernet with MPLS label stack format. The destination and source addresses are either 6 bytes each or 1 byte each. These are dual-mode addresses, as referenced in the description of the address mode field above. Each address is used to identify the actual source and destination devices of the packet within the virtual network. These addresses do not change from hop to hop through the virtual network, and thus their usage is analogous to the use of Ethernet addresses in bridged networks. Broadcast is supported by setting the destination address to all 1's. Multicast is supported by using the broadcast destination address plus a special multicast tag so that each device can individually distinguish which ports of that device should receive the multicast packet. The destination and source address fields are used in the Ethernet with MPLS label stack format but are restricted to 6 bytes each. In addition, these addresses are swapped at each hop by MPLS devices such as LSRs. The type field may optionally be used to indicate the protocol type of the payload, as in the Ethernet with MPLS label stack header. The use of this field is well known and is described in detail in the book âGigabit Ethernetâ by Rich Seifert, first edition, Addison Wesley Longman, Inc., 1998, incorporated herein by reference in its entirety. It is present in the OPTNet header primarily to make the section of the OPTNet header following the header checksum byte-compatible with the Ethernet with MPLS label stack header. The class of service field is a 1 byte field that is optionally available to provide up to 256 class of service levels (priorities) for OPTNet packets. When packets traverse (âpassâ) a given device on the virtual network en route to a different device and there are simultaneously packets waiting to be transmitted (âaddedâ) onto the same OPTNet-compatible link as the pass traffic is taking, arbitration must take place to determine whether pass traffic or add traffic will take priority, and also which type of service (such as voice or best effort data) will take priority within the pass and add categories. In the event that the 8 classes of service available in the Ethernet with MPLS label stack format are enough for a given virtual network, the preceding 1 byte type field and the 1 byte class of service field can be combined to mirror the 2 byte length/protocol type field in the Ethernet with MPLS label stack format. The tag field is used for MPLS, just as in the Ethernet with MPLS label stack header. The function of the tag in MPLS is to enable switching of a packet to a given output port or ports of a device. The use of MPLS tags is well-known and is described in the Internet Engineering Task Force (IETF) Internet Draft âA Framework for MPLSâ by R. Callon et al., draft-ietf-mpls-framework-05.txt, incorporated herein by reference in its entirety. The reserved 4 bits are used for class of service (3 bits) and for indication of the bottom of the stack for stacked labels (1 bit), just as in the Ethernet with MPLS label stack header. The 1 bit for indication of the bottom of the stack for stacked labels is not set in the OPTNet header since there is no use of stacked labels in the OPTNet header. The use of these fields is described in more detail in âMPLS Stack Encodingâ, incorporated earlier in this specification by reference in its entirety. The time-to-live field is 1 byte and is decremented by one at the entry to a device from a OPTNet-compatible link. It is used primarily to prevent packets traversing the virtual network from living forever because the destination device is down. This field is used as in the Ethernet with MPLS label stack header. The payload contains the data to be delivered through the virtual network. Depending on whether the data is already protected with a CRC (as would be the case for transport of Ethernet frames through the virtual network as part of a port-to-port crossconnect application), the 4 byte payload frame check sequence is optional. This prevents the use of duplicate CRCs on a OPTNet packet. Delivery of Packets End-to-End in the Virtual NetworkTributary Interface Card to Switching Card InterfaceAny tributary interface card is responsible for providing all data to the switching card across the backplane in the form of packets having the packet format defined in FIG. There are up to four additional fields attached to the front of the packet. The ingress port ID is optionally attached to enable components such as a shaper application-specific integrated circuit (ASIC) to perform operations such as bandwidth policing on an aggregated packet stream from multiple ingress ports. Without the attachment of this ingress port ID, these types of operations could not be performed on the aggregated packet stream. Though this shaping function is performed on the tributary interface card, this field may remain on the packet as it crosses the backplane to the switching card due to the convenience of having a packet processor on the switching card remove the field. The protection type is attached to tell the switching card whether the packet is to receive path-switched protection, zero-bandwidth protection, or no protection. These protection types are described in detail in the co-pending application entitled âDynamically Allocated Ring Protection and Restoration Technique,â by R. Kalman et al., Ser. No. 09/519442, filed Mar. 3, 2000, and incorporated herein by reference in its entirety. The protection type is currently defined only for bi-directional ring topologies. Path-switched protection means that the packet is to be sent both directions around the ring. Zero-bandwidth protection means that the packet is to be sent only one direction around the ring, and that this direction may change based on whether there are device failures or fiber breaks on the ring. This direction is to be selected on the ring card. No protection means that the packet is to be sent only one pre-determined direction around the ring and will not be re-routed in the event of device failures or fiber breaks on the ring. An additional setting in the protection type field indicates that the packet is to be routed out a tributary interface card within the same device. When the protection type field is set to this value, there are an additional 4 bytes of stream ID information following it that are not present for any other scenario. The need for the protection type illustrates an important architectural decision made in the design of this equipment. Provisioning information such as the type of protection given to packets entering from a given port on a tributary interface card is stored on the tributary interface cards by the shelf controller. Information about the virtual network topology and the status of the OPTNet-compatible links making up the topology is determined and stored on the switching card, as described in the co-pending application entitled âAutomatic Network Topology Identification by Nodes in the Network,â by J. Fan et al., Ser. No. 09/518956, filed Mar. 3, 2000, and incorporated herein by reference in its entirety. The transfer of the protection type information is a single instance where the switching card needs to know provisioning-related information about each packet. The stream IDs for the switching card switch fabric and the tributary interface card switch fabric are included in the event that the packet is to be routed via the switching card out one of the tributary interface cards of the same device. These two stream ID fields are present only if the protection type field is set appropriately. Another mechanism is used to simplify operations performed on the switching card. As described in the co-pending application âAutomatic Network Topology Identification by Nodes in the Network,â incorporated earlier in this specification by reference in its entirety, the switching card has knowledge of the valid 1 byte and 6 byte device addresses that are to be used to deliver packets to their destination devices in the virtual network. The 1 byte addresses can change for any device based on addition or deletion of devices to/from the virtual network, while the 6 byte addresses are permanent. Another architectural decision made in the design of this equipment is to prevent perturbation of provisioning tables on the tributary interface cards due to virtual network topology changes. One way to do this is to use only 6 byte addresses on the tributary interface cards to refer to devices on the virtual network. However, this results in the need for a line-speed packet-by-packet hash lookup on data packets on the switching card when converting from 6 byte addresses to 1 byte addresses. Additional complexity is required to handle hash lookup collisions. We determined that another mechanism would remove the need for this hash lookup. Rather than using 6 byte addresses to refer to devices on the virtual network, the tributary interface cards use permanent 1 byte lookup keys. These 1 byte lookup keys are consistent in meaning across all tributary interface cards in a given device, but need not be consistent between devices since they have only local meaning. These 1 byte lookup keys may be assigned by the switching card or the shelf controller, since both have knowledge of the 6 byte addresses of all devices in the virtual topology. (The correspondence between the lookup keys and the actual addresses must also be known on both the switching card and the shelf controller.) These 1 byte lookup keys must be permanent and are therefore distinct from the 1 byte addresses, e.g. once a 1 byte lookup key is assigned to a device, it is only freed up for use by another device if the original device has been permanently removed from the virtual network. Since the 1 byte lookup key is permanent and known, all lookups on the switching card can be organized so that the lookup key directly accesses a location in memory or a hardware register that contains all relevant 6 byte and 1 byte address information for the device. This is why Switching Card to Tributary Interface Card InterfaceThe switching card is responsible for providing all data to any tributary interface card across the backplane in the form of packets having the packet format defined in FIG. There are two additional fields attached to the front of the packet. The egress port ID is attached to enable tributary interface cards that do not contain a switch fabric to easily determine which output port on which to send the data within the packet. The port ID may represent not only a distinct physical port, but also a distinct slot within a physical port, e.g. a distinct DS1 slot within a DS3 output port. It can also be optionally used to enable components such as a shaper application-specific integrated circuit (ASIC) on the tributary interface card to perform operations such as rate shaping on egress ports on an aggregated packet stream originating from the switching card. Without the attachment of this egress port ID, these types of operations could not be performed on the aggregated packet stream. The stream ID for the tributary interface card switch fabric is required for tributary interface cards that do contain a switch fabric. This stream ID is directly used to route the relevant packet through the switch fabric to the desired tributary output port(s). The actual perturbations of the values in the header fields as packets travel through the network as well as the different sets of values used for different interface and/or service types are described in the sections below. Detailed Description of Tributary Interface Card for Packetized DataThis embodiment of the tributary interface card has multiple 10BaseT or 100BaseT Ethernet interfaces to devices outside the virtual network. Ethernet is a well-known connectionless Layer A packet processor or multiple packet processors There are several different types of packet classification that can be supported at each 10/100 BaseT port. A port may transparently forward its data based on pre-configured provisioning information to another port or ports. This may occur directly to another port on the same card (known as a type I crossconnect), another port on a different tributary interface card within the same device (known as a type II crossconnect), or to another port on a tributary interface card within a different device on the virtual network (known as a type III crossconnect). A port may perform a packet-by-packet lookup based on an Ethernet VLAN ID, described in the book âInterconnections Second Editionâ by Radia Perlman, Addison Wesley Longman, Inc., 2000, incorporated herein by reference in its entirety. Again based on pre-configured provisioning information, a port may transparently forward data with a given VLAN ID to another port or ports within the same device or in a different device on the virtual network. A port may also perform a packet-by-packet lookup based on an MPLS tag within the packet, or on an IP address if an IP packet is encapsulated within the Ethernet frame. Examples of suitable packet processors The packet processor The header added to the front of the packet by the packet processor Ingress port ID: 1 to N, where N is the total number of physical ports on the tributary interface card. Protection type: 0 for zero-bandwidth protection, 1 for path-switched protection, 2 for no protection, 3 for additional stream ID fields immediately following the protection type field. 0 is not supported on this tributary interface card. Stream ID for switching card switch fabric: This contains the stream ID for the packet to use when passing through the switching card switch fabric on the way out one of the tributary interface cards of the same device. This field is inserted only for packets that will travel from one tributary interface card to a different tributary interface card within the same device. Stream ID for tributary interface card switch fabric: This contains the stream ID for the packet to use when passing out the egress tributary interface card of the same device. This field is inserted only for packets that will travel from one tributary interface card to a different tributary interface card within the same device. Address mode: 0 for 1 byte addressing mode, 1 for 6 byte addressing mode. Version: 0 for current version. Header checksum: 8-bit one's complement addition of all 8 bit words in the header (excluding the checksum byte itself). Destination lookup key: Destination device in virtual network. Type of lookup used to determine this is based on packet classification type. Destination lookup key for each destination assigned to tributary interface card by shelf controller. A destination lookup key of all 1's is reserved for broadcast messages. Source lookup key: Value assigned to tributary interface card by shelf controller. Type: Set to 0 for standard tag. It may be used for encapsulated protocol types other than IP (SNA, IPX, DECnet, etc.) or for other future needs. Class of Service: May be set to 0 for control traffic, 1 for toll-quality voice traffic, 2 for video traffic, 3 for best effort provisioned traffic, and 4 for best effort unprovisioned traffic. Or may be set based on 0 for expedited forwarding (EF) traffic, 1 for assured forwarding (AF) traffic, and 2 for best-effort (BE) traffic. These classes are defined in the Internet Engineering Task Force (IETF) RFC 2598 âAn Expedited Forwarding Per-Hop Forwarding Behaviorâ by V. Jacobson et al., and by RFC 2597 âAssured Forwarding Per-Hop Forwarding Behavior Groupâ by J. Heinanen et al., both incorporated herein by reference in their entirety. The class of service value may be provisioned on a port basis or may be mapped from the contents of header fields in the incoming packet (such as the type of service field in the IP header). Tag: Filled in based on the value found by a tag lookup. Reserved: The most significant three bits mirror the class of service value set in the above class of service field. The least significant bit is set to zero (not used). Time to live: Set to 255 (maximum possible value). The TTL should only reach 0 in the event of a malfunctioning device or devices. For non-broadcast packets, the destination will pull the packet off the network in normal operation. For broadcast packets, the source will pull the packet off the network if it is a bi-directional ring. In a mesh network, each device must ensure that it does not forward a broadcast packet received from a given interface more than once, as in the Open Shortest Path First (OSPF) link state protocol. This is described in âInterconnections Second Editionâ by Radia Perlman, incorporated earlier in this specification by reference in its entirety. Payload frame check sequence: Whether a payload FCS (CRC) is added at the end of the packet may optionally be determined at the MAC If the port is configured to behave as a transparent crossconnect or Ethernet VLAN port, then the packet processor Optionally, if the port is configured to behave as a transparent Ethernet stack encoding port, then the packet processor Optionally, if the port is configured to behave as a normal Ethernet stack encoding port, the packet processor Optionally, if the port is configured to behave as an IP router port, then the packet processor The packet processor One suitable packet switch is the MMC Networks model nP5400 Packet Switch Module, whose data sheet is incorporated herein by reference. The switch provides packet buffering, multicast and broadcast capability, four classes of service priority, and scheduling based on strict priority or weighted fair queueing. A memory The CPU The packet processor A media access controller (MAC) The parallel output of the MAC On the reverse path through the tributary interface card, the only difference from the above description is that the packet format of Packet processor Detailed Description of Tributary Interface Card for Synchronous/Plesiochronous Framed DataThis embodiment of the tributary interface card has multiple DS1 interfaces to devices outside the virtual network. DS1 is a well-known synchronous framed interface and is defined in the Telcordia GR-499-CORE specification, incorporated herein by reference in its entirety. The physical interface is handled by a DS1 Phy device Following the framer is a packetizer/depacketizer The packetizer/depacketizer may be implemented as an FPGA or as an ASIC. The preferred embodiment is divided into two parts, a transmit FPGA and a receive FPGA. The transmit FPGA The input to the transmit FPGA is over a time division multiplexed (TDM) data bus from the framer It is assumed that there are no DS1 crossconnects that connect two DS1 ports within the same physical device. The packet header is a simplified version of that described for the tributary interface card for packetized data: Ingress port ID: 1 to N, where N is the total number of physical ports on the tributary interface card. Protection type: 0 for zero-bandwidth protection, 1 for path-switched protection, 2 for no protection. Stream ID for switching card switch fabric: Never present. Stream ID for tributary interface card switch fabric: Never present. Address mode: 0 for 1 byte addressing mode, 1 for 6 byte addressing mode. Version: 0 for current version. Header checksum: 8-bit one's complement addition of all 8 bit words in the header (excluding the checksum byte itself). Destination lookup key: Destination device in virtual network. Destination lookup key for each destination assigned to tributary interface card by shelf controller. Multicast is not supported in the fashion as for packetized data interfaces. Source lookup key: Value assigned to tributary interface card by shelf controller. Type: Set to 0 for standard tag. Class of Service: May be set to 1 for toll-quality voice traffic. Or may be set based on 0 for expedited forwarding (EF) traffic. (DS1 ports specifically get these classes of service because they are synchronous/plesiochronous framed interfaces.) Tag: Filled in based on the value found by a tag lookup. Reserved: The most significant three bits mirror the class of service value set in the above class of service field. The least significant bit is set to zero (not used). Time to live: Set to 255 (maximum possible value). Payload frame check sequence: A payload FCS (CRC) is always added at the MAC A DS1 port is always configured to behave as a transparent crossconnect. As described above, module The receive FPGA The above FPGA modules have been broken down into functional blocks simple enough for one of ordinary skill in the art to fabricate the FPGA since the programmable logic required to implement is block is well-known. The description for components The CPU The DS1, as a synchronous interface, must have an 8 kHz clock source available for distribution to the framer and to the packetizer/depacketizer. This clock source may be provided via an external Building Integrated Timing Source (BITS) clock connected to the device, or via an internal timing source located within the device that can distribute timing over the backplane. Both external BITS clocks and internal timing sources are well-known. These types of timing sources are described in the book âSONETâ by Walter Goralski, McGraw-Hill, 1997, incorporated herein by reference in its entirety. For this embodiment, the timing source is obtained from an external BITS clock connected to a DS1 data port. A multiplexer A DS3 card channelized into 28 DS1s would have the same overall architecture as in Detailed Description of Switching CardIncoming packets to the switching card from the backplane interface to the tributary interface cards pass through a SERDES The output of packet processor The CPU The packet processor The first step is to decrement the TTL field. If the TTL value before decrementing is greater than 0, then it must be decreased by 1. If it is 0, then the packet is immediately dropped. The second step is to determine whether a packet is destined for the device itself. To determine this, the destination address in the OPTNet header is compared to the address of the device itself. The destination address may be in either 1 byte form or 6 byte form, as indicated by the address mode field. The CPU If the virtual network topology is a mesh, then the above method for simple destination address comparisons without an LDP does not work. To route packets through a mesh requires the defined formalism of LDP. The third step is to compare the source address of the packet to that of the device itself. If the addresses match, then the packet is immediately dropped. If the packet is destined for the device, then the next step is to perform a tag lookup using the external search machine/memory of the packet processor Optionally, if the tag corresponds to one used for a transparent Ethernet stack encoding port, then the packet processor Optionally, if the tag corresponds to one used for a normal Ethernet stack encoding port, the packet processor Optionally, if the tag corresponds to one used for an IP router port, then the packet processor To minimize jitter for high-priority, e.g. EF, traffic as it is added onto a OPTNet-compatible link from a device then passes through multiple devices in the virtual network, it is necessary to prioritize this traffic over other types of traffic. In addition, it is necessary to arbitrate between pass traffic and add traffic at a given device. The MMC 5400 switch supports prioritization of different classes of service using either the well-known mechanisms of strict priority or weighted fair queueing. In addition, a simple approach for dealing with prioritization of pass traffic of a given class and add traffic of a given class is to arbitrate between them within the switching fabric using weighted fair queueing. More complicated approaches require additional hardware and/or microcode functionality in the packet processor In one embodiment, the above-described hardware processes bits at a rate greater than 1 Gbps. Mechanisms to Provide Provisioning and Routing Information to Tributary Interface CardsA memory The CPU is connected to a PCI bridge Ethernet controllers An Ethernet switch The output of the Ethernet switch must pass through the Ethernet Phy block The output of the Ethernet controller Information is delivered between applications running on the shelf controller CPU and applications running on the other cards via well-known mechanisms including remote procedure calls (RPCs) and event-based notification. Reliability is provided via TCP/IP or via UDP/IP with retransmissions. Provisioning of cards and ports via an external management system is via the NMS Ethernet port. Using a well-known network management protocol such as the Simple Network Management Protocol (SNMP), the NMS can control a device via the placement of an SNMP agent application on the shelf controller CPU. The SNMP agent interfaces with a shelf manager application. The shelf manager application is primarily responsible for the provisioning of cards and ports. It interfaces with a tag generation application to obtain tags that it needs for provisioning lookup tables on the tributary interface cards and switching cards. For provisioned connections such as crossconnects and Ethernet VLANs, the tag generation application generates a tag corresponding to either an output card and port (for a crossconnect) or to a VLAN identifier. This tag can be generated using arbitrary assignment, so long as tags that are in use are not re-used for other connections. Note that the tag generated for a given crossconnect or VLAN at shelf controller Communication from the shelf controller onto the ring is via the switching card CPU. This type of communication is important both for tag distribution and for sending SNMP messages to remote devices on the virtual network from an external management system physically connected to device The header attached to the outgoing control packet by CPU Address mode: 0 for 1 byte addressing mode, 1 for 6 byte addressing mode. Version: 0 for current version. Header checksum: 8-bit one's complement addition of all 8 bit words in the header (excluding the checksum byte itself). Destination address: Destination device in virtual network. Destination address for each destination known on switching card based on topology discovery application described in the co-pending application âAutomatic Network Topology Identification by Nodes in the Network,â incorporated earlier in this specification by reference in its entirety. Source address: Source address set on switching card by shelf controller. Type: Set to 0 for standard tag. Class of Service: Set to 0 for highest-priority traffic. Tag: Filled in using a hard-coded value corresponding to the specific type of control communication. Reserved: The most significant three bits mirror the class of service value set in the above class of service field. The least significant bit is set to zero (not used). Time to live: Set to 255 (maximum possible value). Payload frame check sequence: A payload FCS (CRC) is always added at the MAC The direction that the control packet will take around the ring is determined by the stream ID used to route the packet through the switch fabric The provisioned information is conveyed to the CPU on the tributary interface cards and on the switching cards via the backplane. The CPU For IP router ports and MPLS ports, the setting of lookup table entries on the tributary interface cards and the switching cards may be the responsibility of the shelf manager or of the routing/label distribution software stacks. Routing stacks for BGP and/or other protocols such as OSPF are well-known and are available from a variety of vendors such as GateD. Tag/label distribution (LDP) stacks are currently under development following the âLDP Specificationâ, incorporated earlier in this specification by reference in its entirety. These routing and label distribution stacks receive routing messages entering the device from interfaces on the tributary interface cards and from interfaces on the virtual network. Based on these routing messages, information about new IP prefixes (address groupings) or MPLS labels used externally to the device are made known to the routing and label distribution stacks. A tag is then generated for each newly received IP prefix or MPLS label. If the routing message is received from a given port on a tributary interface card for packetized data, then the correspondence of the tag to the IP prefix or to the MPLS label is set in the lookup table of packet processor The above description of the hardware used to implement one embodiment of the invention is sufficient for one of ordinary skill in the art to fabricate the invention since the general hardware for packet switching and routing is very well known. One skilled in the art could easily program the MACs, packet processors, CPUs, and other functional units to carry out the steps describe herein. Firmware or software may be used to implement the steps described herein. While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that changes and modifications may be made without departing from this invention in its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as fall within the true spirit and scope of this invention. Field of search:References: |
Browse by classes
Agriculture
Animals Automotives and Transportation Business and Commerce Chemistry Communications Construction Containers Electricity Energy Engineering Entertainment Fashion and Accessories Food Hardware and Tools Health and Medicine Home Industrial Information Technology Machines Materials and Material Science Miscellaneous Optics Outdoors Paper and Office Materials Physics Sanitation Technology Textiles Weaponry
Advertisements
|
