Method for forming a virtual network
Through virtual network devices across fiber optic cables, it realizes flexible transmission and forwarding of data frames, solves the problem of increasing port demand for traditional network equipment, improves the flexibility and efficiency of network equipment, and reduces the upgrade cost.
Patent Information
- Application Number
- CN202180043253.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-06-19
- Filing Date
- 2021-03-19
- Publication Date
- 2025-07-22
- Estimated Expiration
- 2041-03-19
AI Technical Summary
Traditional network devices require more physical ports to meet the growing demand for ports, resulting in reduced services or high cost of upgrading.
By passing data frames at frame rate across fiber optic cables, the virtual forwarding device is used to flexibly allocate and forward frame rates, including a combination of virtual inlet equipment, virtual forwarding equipment and virtual exit equipment, to achieve flexible transmission and forwarding of data frames.
It realizes meeting the multi-source data transmission needs without adding physical ports, improves the flexibility and efficiency of network equipment, and reduces the upgrade cost.
Smart Images

Figure CN115699669B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer networks, and more particularly to a method for forming a virtual network. Background Art
[0002] A wide area network (WAN) is an interconnected web of network devices that typically interconnect local area networks or metropolitan area networks over a large geographic area, such as across states or countries. A WAN allows remote computers to communicate with each other via network devices.
[0003] Traditional network devices typically include one or more physical network ports that operate at a predetermined fixed data rate, such as, for example, 10 / 100 / 1000 Mbps (megabits per second), 10 Gbps (gigabits per second), 40 Gbps, and 100 Gbps connections. As part of enabling communication between computer systems over a network, traditional network devices negotiate the transmission speed of the network ports, and in the process, the transmission speed of the network ports is fixed.
[0004] One of the disadvantages of traditional network devices is that they typically require more physical ports than are available, which can result in reduced service or expensive upgrades. Accordingly, there is a need for a method to meet the growing port demand. Summary of the Invention
[0005] The present invention provides a virtual network that provides data and frame rate flexibility. The present invention includes a method for forming a virtual network that includes: transmitting data frames at a frame rate across one or more fiber optic cables, each of the one or more fiber optic cables having two or more physical optical fibers. When the frame rate of the data frames is greater than the maximum frame rate of a first physical optical fiber in the fiber optic cable, the transmitting includes: transmitting a first number of data frames at a first data rate that is equal to or less than the maximum data rate of the first physical optical fiber over the first physical optical fiber, and transmitting a second number of data frames at a second data rate that is equal to or less than the maximum data rate of a second physical optical fiber over the second physical optical fiber. And when the frame rate of the data frames is equal to or less than the frame rate of the first physical optical fiber in the fiber optic cable, the transmitting includes: transmitting data frame pairs sequentially over the first physical optical fiber such that the frame pairs include data from multiple sources.
[0006] The present invention further includes a virtual forwarding device. When the primary path forwards frames at a rate lower than the rate at which frames can be received, the virtual forwarding device forwards frames to the virtual egress device via an alternative path. The virtual forwarding device of the present invention includes a receiving physical port for receiving a second encapsulated frame, a transmitting physical port for coupling to a next-hop device, an alternative physical port for coupling to an alternative-hop device, and a virtual port coupled to the receiving physical port, the transmitting physical port, and the alternative physical port. The virtual port is configured to receive the second encapsulated frame from the receiving physical port, unpack the second encapsulated frame to extract a first encapsulated frame, and extract an identifier of the virtual egress device from the first encapsulated frame. The virtual port further determines the next-hop device and the alternative-hop device from the identifier, and determines whether the transmitting physical port can accept frames for forwarding. When the transmitting physical port can accept frames for forwarding, the first encapsulated frame is encapsulated to form a third encapsulated frame, and the third encapsulated frame is forwarded to the transmitting physical port. The third encapsulated frame has a header identifying the next-hop device. When the transmitting physical port cannot accept frames for forwarding, it is determined whether the alternative physical port can accept frames for forwarding.
[0007] The present invention further includes a method for operating a virtual forwarding device. The method includes: receiving a second encapsulated frame; unpacking the second encapsulated frame to extract a first encapsulated frame; and extracting an identifier of the virtual egress device from the first encapsulated frame. The method further includes: determining the next-hop device and the alternative-hop device from the identifier, and determining whether the transmitting physical port coupled to the next-hop device can accept frames for forwarding. The method further includes: when the transmitting physical port coupled to the next-hop device can accept frames for forwarding, encapsulating the first encapsulated frame to form a third encapsulated frame, and forwarding the third encapsulated frame to the transmitting physical port coupled to the next-hop device. The third encapsulated frame has a header identifying the next-hop device. The method further includes: when the transmitting physical port coupled to the next-hop device cannot accept frames for forwarding, determining whether the transmitting physical port coupled to the alternative-hop device can accept frames for forwarding.
[0008] The present invention also provides a non-transitory computer-readable storage medium in which program instructions are embedded, which, when executed by a processor, cause the processor to perform a method of operating a virtual forwarding device. The method includes: receiving a second encapsulated frame; unpacking the second encapsulated frame to extract a first encapsulated frame; and extracting an identifier of a virtual egress device from the first encapsulated frame. The method further includes: determining a next-hop device and an alternative-hop device from the identifier, and determining whether a transmission physical port coupled to the next-hop device can accept a frame for forwarding. The method further includes: when the transmission physical port coupled to the next-hop device can accept a frame for forwarding, encapsulating the first encapsulated frame to form a third encapsulated frame, and forwarding the third encapsulated frame to the transmission physical port coupled to the next-hop device. The third encapsulated frame has a header identifying the next-hop device. The method further includes: when the transmission physical port coupled to the next-hop device cannot accept a frame for forwarding, determining whether a transmission physical port coupled to the alternative-hop device can accept a frame for forwarding.
[0009] The features and advantages of the present invention can be better understood by reference to the following detailed description and the accompanying drawings, which illustrate illustrative embodiments in which the principles of the present invention are utilized. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1A is a block diagram showing an example of a virtual network 100 according to the present invention.
[0011] Figures 1B1 to 1B2 is a flowchart showing a method 150 of operating a virtual network 100 according to the present invention.
[0012] Figure 1C is an illustration showing an example of a frame according to the present invention.
[0013] Figure 2A is a block diagram showing an example of a transmission circuit 200 according to the present invention.
[0014] Figure 2B is a block diagram showing an example of a transmission circuit 250 according to the present invention.
[0015] Figure 2C is a block diagram showing an example of a transmission circuit 270 according to the present invention.
[0016] Figure 2D is a timing diagram showing an example of the operation of a combiner 274 according to the present invention.
[0017] Figure 3A is a flowchart showing an example of a method 300 of operating a transmission circuit 200 according to the present invention.
[0018] Figure 3BIt is a flowchart showing an example of a method 350 for operating a transmission circuit 200 according to the present invention.
[0019] Figure 4 It is a block diagram showing an example of a transmission circuit 400 according to an alternative embodiment of the present invention.
[0020] Figure 5 A block diagram showing an example of a transmission circuit 500 according to an alternative embodiment of the present invention is shown.
[0021] Figure 6 It is a block diagram showing an example of a receiving circuit 600 of a virtual egress device according to the present invention.
[0022] Figure 7 It is a flowchart showing an example of a method 700 for operating the receiving circuit 600 according to the present invention.
[0023] Figure 8 It is a block diagram showing an example of a receiving circuit 800 according to an alternative embodiment of the present invention.
[0024] Figure 9 It is a block diagram showing an example of a receiving circuit 900 according to an alternative embodiment of the present invention.
[0025] Figure 10A It is a block diagram showing an example of a virtual forwarding device 1000 according to the present invention.
[0026] Figure 10B It is a flowchart showing an example of a method 1050 for operating the virtual forwarding device 1000 according to the present invention.
[0027] Figure 11 It is a block diagram showing an example of a virtual forwarding device 1100 according to the present invention.
[0028] Figure 12 It is a flowchart showing an example of a method 1200 for forming a virtual network according to the present invention.
[0029] The features and advantages of the present invention can be better understood by referring to the following detailed description and the accompanying drawings, which illustrate illustrative embodiments in which the principles of the present invention are utilized. Detailed Description
[0030] Figure 1A A block diagram showing an example of a virtual network 100 according to the present invention is shown. As Figure 1AAs shown, the virtual network 100 includes a plurality of virtual entry devices VED1 to VEDr, a plurality of virtual forwarding devices VFD1 to VFDs coupled to the virtual entry devices VED1 to VEDr via fiber optic cables, and a plurality of virtual exit devices VXD1 to VXDt coupled to the virtual forwarding devices VFD1 to VFDs via fiber optic cables to form an interconnected device web.
[0031] The virtual network 100 interconnects a plurality of local devices (e.g., local routers / switches LRS1 to LRSx) with a plurality of remote devices (e.g., remote routers / switches RRS1 to RRSy). In this example, the local router / switch LRS is coupled to a plurality of user devices, such as set-top boxes (STBs), personal computers (PCs), and video devices (VIDs), while the remote router / switch RRS is similarly coupled to a plurality of user devices.
[0032] Figures 1B1 to 1B2 A flowchart of a method 150 for operating the virtual network 100 in accordance with the present invention is shown. As Figure 1B1 shown, the method 150 begins at 152, where the virtual entry device VED receives a stream of input frames from a local router / switch, such as STB, PC, and video frames. Each input frame in turn has a header identifying a remote device, such as a remote router / switch RRS. For example, the virtual entry device VED1 may receive a stream of input frames from the local router / switch LRS1, where each input frame has a header identifying the remote router / switch RRS1.
[0033] Figure 1C An illustration showing an example of a frame in accordance with the present invention is shown. As Figure 1C shown, the input frame has a header that includes a Src MAC A field identifying the MAC address of a local router / switch, such as local router / switch LRS1, and a Dst MAC B field identifying the MAC address of a remote router / switch, such as remote router / switch RRS1. The input frame also includes other fields, such as a type field, a data field, and an error correction (CRC) field.
[0034] Referring again to Figure 1B1 , the method 150 then moves to 154, where the virtual entry device VED determines the remote router / switch from the header of the input frame. Thereafter, the method 150 moves to 156 to determine the virtual exit device VXD coupled to the remote router / switch RRS from the identity of the remote router / switch RRS. For example, the MAC address of the remote router / switch RRS1 obtained from the Dst MAC B field can be used to identify the MAC address of the virtual exit device VXD1 coupled to the remote router / switch RRS1 via a lookup table.
[0035] After determining the virtual egress device VXD, method 150 moves to 158, where the virtual ingress device VED encapsulates the input frame to form a first encapsulated (FE) frame. The FE frame in turn has a field identifying the virtual egress device and a field including the input frame, which in this example is the virtual egress device VXD1. Encapsulation can be performed using traditional protocols such as the Provider Backbone Bridge Traffic Engineering (PBB-TE) protocol or the Transport Multi-Protocol Label Switching (T-MPLS) protocol.
[0036] As Figure 1C shown, the FE frame has a Dst MAC X field identifying the MAC address of the virtual egress device VXD such as virtual egress device VXD1, and a SrcMAC N field identifying the MAC address of the virtual ingress device VED such as virtual ingress device VED1. The FE frame also includes other fields such as an I-tag field, a payload field including the input frame, and a CRC field.
[0037] Referring again to Figure 1B1 , method 150 then moves to 160, where the virtual ingress device determines the first-hop device for the FE frame from the identity of the virtual egress device. The first-hop device can be the virtual egress device VXD or the virtual forwarding device VFD. For example, the virtual ingress device VED1 can input the MAC address of the virtual egress device VXD1 into a lookup table to determine the MAC address of the first-hop device in the virtual network 100. Thereafter, method 150 moves to 162, where the virtual ingress device encapsulates the FE frame to form a second encapsulated (SE) frame. Each SE frame in turn has a field identifying the first-hop device and a field including the FE frame.
[0038] As Figure 1C shown, the SE frame has a Src MAC C field identifying the MAC address of the current device, which in this example is the virtual ingress device VED1, and a Dst MAC H field identifying the MAC address of the first-hop in the virtual network 100, which in this example is the virtual forwarding device VFD1. The SE frame also includes a Dst vID field identifying the virtual port of the virtual ingress device, and a Src vID field identifying the corresponding virtual port in the virtual egress device.
[0039] Referring again to Figure 1B1 , method 150 then moves to 164, where the virtual ingress device VED transmits the SE frame to the first-hop device, which in this example is the virtual forwarding device VFD. For example, the virtual ingress device VED1 can transmit the SE frame to the virtual forwarding device VFD1.
[0040] Method 150 then moves to 166, where the first-hop device receives the SE frame and determines from the SE frame whether the first-hop device is a virtual egress device. When the first-hop device is not a virtual egress device, method 150 moves to 168 to determine the next-hop device and the alternative-hop device. For example, virtual forwarding device VFD1 can receive the SE frame and determine that virtual forwarding device VFD1 is not a virtual egress device.
[0041] Next, method 150 moves to 170 to determine whether the physical port coupled to the next-hop device can accept a frame for transmission. When the physical port coupled to the next-hop device can accept a frame for transmission, method 150 moves to 172 to output the SE frame to the physical port coupled to the next-hop device, and then moves to 174 to transmit the SE frame to the next-hop device.
[0042] When the physical port coupled to the next-hop device in 170 cannot accept a frame for transmission, method 150 moves to 176 to determine whether the physical port coupled to the alternative-hop device can accept a frame for transmission. When the physical port coupled to the alternative-hop device can accept a frame for transmission, method 150 moves to 178 to output the SE frame to the physical port coupled to the alternative-hop device, and then moves to 174 to transmit the SE frame to the alternative-hop device. Thereafter, method 150 returns to 166.
[0043] In this example, the alternative-hop device is virtual forwarding device VFD2, which then performs Figure 1B1 elements 166 to 178 to forward the second encapsulated frame to virtual egress device VXD1 or another virtual forwarding device VFD.
[0044] As Figure 1B2 shown, when the first-hop device in 166 is a virtual egress device, method 150 moves to 182 to unpack the SE frame to extract the FE frame, and then moves to 184 to unpack the FE frame to extract the input frame. Method 150 then moves to 186 to determine the remote router / switch from the input frame, and then moves to 188 to transmit the input frame to the remote router / switch.
[0045] One advantage of the present invention is that frames can be forwarded across virtual network 100 without referring to the MAC address of the remote router / switch.
[0046] Referring again to Figure 1A, the virtual entry device VED, the virtual forwarding device VFD, and the virtual exit device VXD have static forwarding tables that are administratively assigned. For example, each input frame, such as an STB, a PC, and a video, includes the MAC address of the remote router / switch RR. The identity of the virtual exit device VXD coupled to the remote router / switch RRS can be administratively assigned and provided to the virtual entry device VED and the virtual exit device, such that the number of hops for the pre-assigned frames through the virtual network 100 is determined.
[0047] Figure 2A A block diagram showing an example of the transmission circuit 200 of the virtual entry device according to the present invention is shown. As Figure 2A shown, the transmission circuit 200 includes a local physical port 210, a framing circuit 212 coupled to the local physical port 210, and a plurality of transmission virtual ports vPORTa1 to vPORTan coupled to the framing circuit 212.
[0048] Each transmission virtual port vPORTa further includes a transmission queue and a transmission frame formatting circuit. In addition, the transmission circuit 200 further includes a transmission virtual switch 214 coupled to each of the transmission virtual ports in the transmission virtual ports vPORTa, and a network physical port 216 coupled to the transmission virtual switch 214 and the fiber optic cable.
[0049] Figure 3A A flowchart showing an example of a method 300 for operating the transmission circuit 200 according to the present invention is shown. As Figure 3A shown, the method 300 starts at 310, where the framing circuit 212 receives a series of input frames from the local physical port 210. The method 300 then moves to 312 to check the series of input frames to determine the frame type of each input frame (e.g., STB, PC, video), and then moves to 314 to determine the virtual exit device associated with each input frame based on the frame type. Each virtual exit device further has a plurality of receiving virtual ports.
[0050] Thereafter, the method 300 moves to 316, where the framing circuit 212 encapsulates the series of input frames to form a plurality of first encapsulated (FE) frames. The FE frames have headers that identify the virtual exit device associated with the series of input frames.
[0051] Thereafter, method 300 moves to 318, where the transmission virtual ports vPORTa1 to vPORTan determine the first hop in the virtual network for the FE frame based on the virtual egress device in the header of the FE frame. Next, method 300 moves to 320, where the transmission virtual ports vPORTa1 to vPORTan encapsulate the FE frame to form a second encapsulation (SE) frame. Each SE frame has a header that identifies the first hop of the SE frame. The header also identifies the receiving virtual port of the associated virtual egress device of the input frame. Additionally, the transmission virtual ports occupy a first portion of the shared memory.
[0052] Thereafter, method 300 moves to 322, where the transmission virtual switch 214 cycles through the transmission virtual ports vPORTa1 to vPORTan in a fixed repeating order to sequentially forward the SE frames from each transmission virtual port vPORTa for outputting a sequence of SE frames. For example, the transmission virtual switch 214 may output a sequence of SE frames where the first SE frame is from vPORT1, the second frame is from vPORT2, the third frame is from vPORT3, and the fourth frame is also from vPORT1.
[0053] If the transmission virtual port vPORTa is empty or partially full, no frames are generated. For example, if the transmission virtual port vPORT2 is empty, the network physical port 216 outputs a sequence of frames including frame 1, no frame, and frame 3. Method 300 then moves to 324, where the network physical port 216 transmits the SE frames onto the virtual network.
[0054] FIG. 3b shows a flowchart of an example of a method 350 for operating the transmission circuit 200 according to an alternative embodiment of the present invention. Method 350 is similar to method 300, and thus the same reference numerals are used to designate elements common to both methods.
[0055] As Figure 3B shown, method 350 first diverges from method 300 at 352, where the transmission virtual switch 214 determines whether a complete signal has been received from any of the transmission virtual ports vPORTa. The complete signal indicates that the SE frames in the transmission virtual port vPORTa are ready for transmission. When the transmission virtual switch 214 detects a complete signal from a transmission virtual port vPORTa, method 350 moves to 354, where the transmission virtual switch 214 forwards the SE frame from the transmission virtual port vPORTa that output the complete signal to the network physical port 216.
[0056] For example, the virtual switch 214 can receive complete signals from the transport virtual ports vPORTa1, vPORTa2, and vPORTa3 in sequence. In this case, the virtual switch 214 outputs a sequence of SE frames, where the first SE frame is from the transport virtual port vPORT1, the second frame is from the transport virtual port vPORT2, and the third frame is from the transport virtual port vPORT3.
[0057] Alternatively, one of the sources (e.g., STB, PC, video source) can have a much faster data rate than the other sources (e.g., STB, PC, video source), which in turn causes one transport virtual port vPORTa to output complete signals more frequently than the other transport virtual ports vPORTa.
[0058] For example, if the network physical port 216 transmits frames at a frame rate of five frames per second, the transport virtual port vPORTa2 outputs frames at a rate three times faster than the frame rate of each of the transport virtual ports vPORTa1 and vPORTa3, the transport virtual port vPORTa2 signal sends a complete signal three times before the other ports, and the transport virtual port vPORTa1 signal is transmitted before the vPORTa3 signal, then the virtual switch 214 forwards a frame sequence that includes the first frame from the transport virtual port vPORT2, the second frame from the transport virtual port vPORT2, the third frame from the transport virtual port vPORT2, the fourth frame from the transport virtual port vPORT1, and the fifth frame from the transport virtual port vPORT3.
[0059] In addition to the first-in, first-out method, where the order of receiving complete signals determines the order in which the virtual switch 214 outputs SE frames from the transport virtual ports vPORTa, the transport virtual ports vPORTa - vPORTan can alternatively include a priority scheme that allows frames to be forwarded from the transport virtual ports vPORTa to the network physical port in any number and in any order.
[0060] Return reference Figure 3B , after the virtual switch 214 forwards the SE frame from the transport virtual port vPORTa that outputs a complete signal to the network physical port 216, method 350 moves to 356, where the network physical port 216 transmits the SE frame. In method 300, the frames to be output are predictable, while in method 350 the frames to be output are unpredictable, although the priority scheme provides a level of predictability.
[0061] Refer again to Figure 2AIn an example, the framing circuit 212 includes a virtual switch 220 and a framer 222 coupled to the virtual switch 220. The virtual switch 220 detects the type of an input frame (e.g., STB, PC, video), determines a route of the frame to a transmission virtual port vPORTa corresponding to the type of the frame from a static forwarding table, and outputs the frame to the transmission virtual port vPORTa.
[0062] In this example, the virtual switch 220 receives an STB frame transmitted by a local source router / switch such as router / switch 120, and detects from the source and / or destination MAC addresses in the STB frame that the received frame is an STB frame. Then, the switch 220 outputs the STB frame on a first virtual port line P1, and the first virtual port line P1 is routed to a transmission virtual port vPORTa1 preselected to receive STB frames.
[0063] Similarly, the virtual switch 220 receives a PC frame transmitted by a local source router / switch, and detects from the source and / or destination MAC addresses in the PC frame that the received frame is a PC frame. Then, the switch 220 outputs the PC frame on a second virtual port line P2, and the second virtual port line P2 is routed to a virtual port vPORTa2 preselected to receive PC frames.
[0064] The virtual switch 220 also receives a video frame transmitted by a local router / switch, detects from the source and / or destination MAC addresses in the video frame that the received frame is a video frame, and then outputs the video frame on a third virtual port line P3, and the third virtual port line P3 is routed to a transmission virtual port vPORTa3 preselected to receive video frames.
[0065] The framer 222 receives an STB frame on the virtual port line P1, encapsulates the STB frame to form a first encapsulated (FE) STB frame, and then forwards the FE STB frame to the transmission queue of the transmission virtual port vPORTa1. Similarly, the framer 222 receives a PC frame on the virtual port line P2, encapsulates the PC frame to form a first encapsulated (FE) PC frame, and then forwards the FE PC frame to the transmission queue of the transmission virtual port vPORTa2. The framer 222 also receives a video frame on the virtual port line P3, encapsulates the video frame to form a first encapsulated (FE) video frame, and then forwards the FE video frame to the transmission queue of the transmission virtual port vPORTa3.
[0066] The framer 222 can generate encapsulated frames by using traditional protocols such as the Provider Backbone Bridge Traffic Engineering (PBB-TE) protocol or the Transport Multi-Protocol Label Switching (T-MPLS) protocol. In addition, each of the FE STB frame, the FE PC frame, and the FE video frame has a header that has multiple fields including the identity of the virtual egress device.
[0067] For example, the header of the FE frame can include an egress address field for the MAC address of the virtual egress device, an I-Tag field, or a similar field. The header can also include other fields, such as the MAC address of the virtual ingress device. In this example, the MAC address of the virtual egress device is administratively provided to the virtual ingress device.
[0068] For the transport virtual port vPORTa, the frame formatting circuit in the transport virtual port vPORTa1 of the transport circuit 200 receives the FE STB frame, determines the first hop of the FE STB frame in the virtual network from the static forwarding table based on the identity of the virtual egress device (e.g., the MAC address of the virtual egress device) in the FE STB frame header, and encapsulates the FE STB frame to form a second encapsulated (SE) STB frame.
[0069] Similarly, the frame formatting circuit in the transport virtual port vPORTa2 of the transport circuit 200 receives the FE PC frame, determines the first hop of the FE PC frame in the virtual network from the static forwarding table based on the identity of the virtual egress device (e.g., the MAC address of the virtual egress device) in the FE PC frame header, and encapsulates the FE PC frame to form a second encapsulated (SE) PC frame.
[0070] In addition, the frame formatting circuit in the transport virtual port vPORTa3 of the transport circuit 200 receives the FE video frame, determines the first hop of the FE video frame in the virtual network from the static forwarding table based on the identity of the virtual egress device, such as the MAC address of the virtual egress device, in the FE video frame header, and encapsulates the FE video frame to form a second encapsulated (SE) video frame.
[0071] Each of the SE STB frame, the SE PC frame, and the SE video frame includes a header that has a first hop field identifying the MAC address of the first hop device in the virtual network, a source field Src_vID identifying the virtual port number of the virtual ingress device, and a destination field Dst_vID identifying the virtual port number of the virtual egress device corresponding to the virtual port number of the virtual ingress device. In this example, the source field Src_vID of the SE STB frame is the transport virtual port vPORTa1. Other fields can also be included.
[0072] In addition, the virtual switch 214 cycles through the transmission virtual ports vPORTa1 to vPORTan of the second encapsulation (SE) frames from each virtual port vPORTa in sequence to output a series of SE frames to the physical port 216. In this example, the switch 214 forwards the SE STB frame from the transmission virtual port vPORTa1 to the physical port 216, then forwards the SE PC frame from the transmission virtual port vPORTa2 to the physical port 216, then forwards the SE video frame from the transmission virtual port vPORTa3 to the physical port 216, then forwards the SE STB frame from the virtual port vPORTa1 to the physical port 216, and continues in the same manner, and the physical port 216 outputs the frame. Although FIG. 2 shows the transmission circuit 200 receiving an input from a single local router / switch and operating using that input, the transmission circuit 200 may alternatively receive inputs from multiple routers / switches and operate using those inputs.
[0073] Figure 2B FIG. shows a block diagram illustrating an example of a transmission circuit 250 according to the present invention. The transmission circuit 250 is similar to the transmission circuit 200, and thus the same reference numerals are used to designate elements common to the transmission circuit 200 and the transmission circuit 250.
[0074] As Figure 2B shown, the transmission circuit 250 differs from the transmission circuit 200 in that the transmission circuit 250 includes a first network physical port 216A and a second network physical port 216B, both of which are coupled to the virtual switch 214. In addition, the virtual switch 214 provides a continuous connection between the transmission virtual port vPORTa1 and the network physical port 216A. In addition, an additional transmission virtual port vPORTa4 is shown.
[0075] The transmission circuit 250 is substantially the same as the transmission circuit 200 except that one or more sources (e.g., STB, PC, or video source) output data frames at a frame rate greater than the maximum frame rate of the network physical ports 216A and 216B. For example, each of the network physical ports 216A and 216B may have a maximum frame rate of five frames per second.
[0076] In Figure 2B the example, the set-top box outputs seven STB frames per second, while the personal computer outputs two PC frames per second, and the video device outputs one video frame per second. (The numbers cited are for illustrative purposes only.) As Figure 2BAs shown, five out of the seven STB frames are transmitted from the network physical port 216A, while the remaining two STB frames, two PC frames, and one video frame are transmitted from the network physical port 216B in the manner shown in methods 300 and 350. One advantage of the transmission circuit 250 is that the transmission circuit 250 can handle an incoming frame rate that is greater than the maximum frame rate of the network physical port.
[0077] Figure 2C A block diagram showing an example of a transmission circuit 270 according to the present invention is shown. The transmission circuit 270 is similar to the transmission circuit 200, and thus the same reference numerals are used to designate the structures common to the transmission circuit 200 and the transmission circuit 270.
[0078] As Figure 2C shown, the transmission circuit 270 differs from the transmission circuit 200 in that the transmission circuit 270 uses a framing circuit 272 instead of the framing circuit 212. The framing circuit 272 is in turn the same as the framing circuit 212, except that the framing circuit 272 includes a combiner 274 that combines data from STB frames, PC frames, and video frames into a single combined frame.
[0079] The combiner 274 includes a plurality of framing virtual ports corresponding to the number of frame types, such as framing virtual ports VP1 to VP3, and a combining engine CE that combines data from different framing virtual ports VP1 to VP3 to generate a combined frame output to the framer 222. The combining engine CE can be implemented in logic or software.
[0080] In operation, the combiner 274 receives a plurality of incoming data frames from a plurality of sources at a plurality of non-standard data rates, such as STB frames from a first source at 20 Mbps, PC frames from a second source at 32 Mbps, and video frames from a third source at 48 Mbps, and stores the incoming frames in the framing virtual ports VP1 to VP3, which correspond to the sources of the frames, such as STB, PC, video.
[0081] The combiner 274 combines the data from the STB, PC, and video frames stored in the framing virtual ports VP1 to VP3 and outputs the combined frame at a data rate equal to or less than a predetermined fixed data rate of the network physical port 216 (e.g., 100 Mbps). For example, the data from the 20 Mbps STB frame, the data from the 32 Mbps PC frame, and the data from the 48 Mbps video frame are combined to generate a 100 Mbps combined frame, which in this example is equal to the predetermined fixed data rate of 100 Mbps.
[0082] Figure 2D A timing diagram showing an example of the operation of the combiner 274 according to the present invention is shown. InFigure 2D In the example, the transmission clock signal 280 operates at a predetermined fixed rate of 10 cycles per second. Along with data from three framed virtual ports VP1, VP2, and VP3, this data is timed to selected pulses within the transmission clock signal 280.
[0083] If the combiner 274 receives a first data stream of STB frames from a first source with a non - predetermined data rate of 2 cycles per second, a second data stream of PC frames from a second source with a non - predetermined data rate of 3 cycles per second, and a third data stream of video frames from a third source with a non - predetermined data rate of 4 cycles per second, then as shown by line 282, the combiner 274 times the data from the first data stream to the first two clock cycles of 10 predetermined fixed cycles per second, times the data from the second data stream to the third, fourth, and fifth clock cycles of 10 predetermined fixed cycles per second, and times the data from the third data stream to the sixth, seventh, eighth, and ninth clock cycles of 10 predetermined fixed cycles per second. The last cycle in this example is empty. Ideally, incoming frames are grouped such that all the predetermined fixed clock cycles are utilized.
[0084] In addition, as Figure 2D shown by line 284 in, the data from the first data stream, the data from the second data stream, and the data from the third data stream can be timed to the clock cycles of 10 predetermined fixed cycles of any transmission clock signal 610. Any type of data (e.g., header, payload) and any amount of data (e.g., bits, bytes, words, types) can be timed to each pulse of the transmission clock signal 280. Figure 2D The example is a simplified example showing the timing.
[0085] Referring again to Figure 2C , the framer 222 identifies a remote device, such as a remote router / switch, from the header of the combined frame and identifies a virtual egress device from the identity of the remote device. The combined frame is encapsulated by the framer 222 to generate an FE combined frame with a header identifying the virtual egress device.
[0086] The FE combined frame is forwarded to the transmission virtual port vPORTa1 to determine the first hop in the virtual network for the FE frame based on the virtual egress device in the FE frame header. The transmission virtual port vPORTa1 also encapsulates the FE combined frame to form a second encapsulated (SE) frame with a header identifying the first hop of the SE frame. The transmission virtual port vPORTa1 forwards the SE frame to the physical port 216, which outputs the SE combined frame.
[0087] Figure 4A block diagram showing an example of a transmission circuit 400 according to an alternative embodiment of the present invention is shown. The transmission circuit 400 is similar to the transmission circuit 200, and thus the same reference numerals are used to designate the structures common to the two circuits.
[0088] As Figure 4 shown, the transmission circuit 400 differs from the transmission circuit 200 in that the framing circuit 212 of the transmission circuit 400 utilizes a serial-to-serial framer 410, followed by a serial-to-parallel virtual switch 412, which is coupled to virtual ports vPORTa1 to vPORTan, rather than a virtual switch 220 followed by a framer 222. In another alternative embodiment, the framer 410 and the virtual switch 412 of the transmission circuit 400 may be physically separated, where the framer 410 is incorporated into a local router / switch.
[0089] Figure 5 A block diagram showing an example of a transmission circuit 500 according to the present invention is shown. The transmission circuit 500 is similar to the transmission circuit 400, and thus the same reference numerals are used to designate the structures common to both the circuit 400 and the circuit 500. As Figure 5 shown in the example shown, a local framing router / switch 510 is utilized with the transmission circuit 500 instead of the local router / switch that receives and outputs STB, PC, and video frames.
[0090] Figure 6 A block diagram showing an example of a receiving circuit 600 of a virtual egress device according to the present invention is shown. (The virtual ingress device also includes a receiving circuit, and the virtual egress device also includes a transmission circuit.) As Figure 6 shown, the receiving circuit 600 includes a network physical port 610 and a receiving virtual switch 612 coupled to the network physical port 610. The receiving circuit 600 also includes a plurality of receiving virtual ports vPORTb1 to vPORTbn coupled to the switch 612. Each receiving virtual port vPORTb in turn includes a receiving queue and a receiving frame formatting circuit. The receiving circuit 600 also includes a deframing circuit 614 coupled to each receiving virtual port vPORTb and a local physical port 616 coupled to the deframing circuit 614.
[0091] Figure 7 A flowchart showing an example of a method 700 for operating the receiving circuit 600 according to the present invention is shown. As Figure 7 shown, the method 700 begins at 710, where the network physical port 610 receives double-encapsulated (DE) frames, such as SE frames, each having a header including a first / next-hop address and a receiving virtual port identifier.
[0092] Next, method 700 moves to 712, where network physical port 610 examines the DE frame to determine the first / next-hop address and compares the first / next-hop address with the stored address. Thereafter, method 700 moves to 714, where network physical port 610 forwards the DE frame with a matching first / next-hop address and discards the DE frame with a first / next-hop address that does not match the stored address.
[0093] Thereafter, method 700 moves to 716, where receiving virtual switch 612 switchably forwards the forwarded DE frame based on the receiving virtual port identifier in the header of the DE frame. Method 700 then moves to 718, where receiving virtual ports vPORTb1 to vPORTbn unpack the DE frame to extract a single encapsulated (1E) frame, such as an FE frame, from the DE frame, such that each receiving virtual port vPORTb unpacks the DE frame to extract the 1E frame.
[0094] Thereafter, method 700 moves to 720, where deframing circuit 614 unpacks the 1E frame to extract the original STB, PC, and video input frames from the 1E frame. The original STB, PC, and video input frames have multiple frame types. In addition, each input frame has a header identifying the destination router / switch. Then, method 700 moves to 722, where deframing circuit 614 forwards the STB, PC, and video frames to local physical port 616, which outputs the original STB, PC, and video frames to a remote router / switch, such as remote router / switch 122.
[0095] In this example, virtual switch 612 receives a DE STB frame from network physical port 610 and determines that the destination virtual port is virtual port vPORTb1 from the destination virtual port number Dst_vID in the header of the DE STB frame. In addition, switch 612 determines the route to virtual port vPORTb1 from the static forwarding table and then outputs the DE STB frame on the first virtual port line routing to virtual port vPORTb1.
[0096] Similarly, virtual switch 612 receives a DE PC frame from network physical port 610 and determines that the destination virtual port is virtual port vPORTb2 from the destination virtual port number Dst_vID in the header of the ME PC frame. In addition, switch 612 determines the route to virtual port vPORTb2 from the static forwarding table and then outputs the DE PC frame on the second virtual port line routing to virtual port vPORTb2.
[0097] In addition, the virtual switch 612 receives the DE video frames from the network physical port 610, and determines that the destination virtual port is the virtual port vPORTb3 from the destination virtual port number Dst_vID in the header of the ME video frames. The switch 612 determines the route to the virtual port vPORTb3 from the static forwarding table, and then outputs the DE video frames on the third virtual port line routed to the virtual port vPORTb3.
[0098] The virtual ports vPORTb1 to vPORTbn receive the DE frames, and unpack the DE frames to extract the 1E frames from the DE frames, such as FE STB frames, FE PC frames, and FE video frames. In Figure 6 the example, the receive queue of the first virtual port vPORTb1 receives the DE STB frames, and the frame formatting circuit of the virtual port vPORTb1 unpacks the DE STB frames to extract the 1E STB frames, which have a header including the identity of the virtual egress device.
[0099] Similarly, the receive queue of the second virtual port vPORTb2 receives the DE PC frames, and the frame formatting circuit of the virtual port vPORTb2 unpacks the DE PC frames to extract the 1E PC frames, which have a header including the identity of the virtual egress device. In addition, the receive queue of the third virtual port vPORTb3 receives the DE video frames, and the frame formatting circuit of the virtual port vPORTb3 unpacks the DE video frames to extract the 1E video frames, which have a header including the identity of the virtual egress device.
[0100] The deframing circuit 614 receives multiple 1E frames, such as FE frames, and extracts the original STB, PC, and video input frames from the 1E frames. The input frames have multiple frame types, such as STB, PC, video. Each input frame has a header, which includes the identity of the remote router / switch. For each received FE frame, the deframing circuit 614 unpacks the 1E frame to extract the input frame, determines the identity of the remote router / switch from the header of the input frame, and outputs the input frame to the local physical port 616, which outputs the input frame to the remote router / switch, such as the remote router / switch 122.
[0101] As Figure 6 shown, the deframing circuit 614 includes a deframer 620 and a virtual switch 622 coupled to the deframer 620. In operation, the deframer 620 receives the 1E frames from multiple receive virtual ports vPORTb1 to vPORTbn, and unpacks the 1E frames to extract the original input frames, such as STB frames, PC frames, and video frames, and forwards the STB frames, PC frames, and video frames to the virtual switch 622.
[0102] In Figure 6In the example, the deframer 620 receives 1E STB frames from the receiving virtual port vPORTb1, unpacks the 1E frames to extract the STB frames, and forwards the STB frames to the virtual switch 622. Similarly, the deframer 620 receives 1E PC frames from the receiving virtual port vPORTb2, unpacks the 1E frames to extract the PC frames, and forwards the PC frames to the virtual switch 622. In addition, the deframer 620 receives 1E video frames from the receiving virtual port vPORTb3, unpacks the 1E frames to extract the video frames, and forwards the video frames to the virtual switch 622. The deframer 620 may utilize the same or a different protocol as the framer 222.
[0103] The virtual switch 622 cycles through the output of the deframer 620 by sequentially receiving the output frames and forwarding the output frames to the local physical port 616. In this example, the virtual switch 622 receives the STB frames from the deframer 620, detects the MAC address of the remote router / switch, and outputs the STB frames to the local physical port 616. Similarly, the virtual switch 622 receives the PC frames from the deframer 620, detects the MAC address of the remote router / switch, and outputs the PC frames to the local physical port 616. In addition, the virtual switch 622 receives the video frames from the deframer 620, detects the MAC address of the remote router / switch, and outputs the video frames to the local physical port 616. The local physical port 616 in turn outputs the frames to the remote router / switch.
[0104] Figure 6 The example shows a deframing circuit 614 having a parallel-to-parallel deframer 620 followed by a parallel-to-serial virtual switch 622. The deframing circuit 614 may alternatively be implemented using other circuit arrangements. For example, the deframing circuit 614 may be implemented using a serial-to-parallel virtual switch that is coupled to the virtual ports vPORTb1 - vPORTbn, followed by a serial-to-parallel framer.
[0105] Figure 8 A block diagram of an example of a receiving circuit 800 according to an alternative embodiment of the present invention is shown. The receiving circuit 800 is similar to the receiving circuit 600, and thus the same reference numerals are used to designate the structures common to both devices.
[0106] As Figure 8As shown, the difference between the receiving circuit 800 and the receiving circuit 600 is that the framing circuit 614 of the receiving circuit 800 includes a parallel-to-serial virtual switch 810 coupled to virtual ports vPORTb1 to vPORTbn, followed by a serial-to-serial deframing device 812. The implementation of the framing circuit 212 and the deframing circuit 614 can be interchanged. For example, a virtual ingress device VED can utilize the framing circuit 212 implemented by the virtual switch 220 and the framer 222, while a virtual egress device VED can utilize the deframing circuit 614 implemented by the virtual switch 810 and the deframer 812.
[0107] In another alternative embodiment, the virtual switch 810 and the deframer 812 can be physically separated, where the deframer 812 is incorporated into a local router / switch.
[0108] Figure 9 A block diagram showing an example of a receiving circuit 900 according to the present invention is shown. The receiving circuit 900 is similar to the receiving circuit 800, and thus the same reference numerals are used to designate the structures common to both the circuit 800 and the circuit 900. As Figure 9 shown in the example shown, a local deframing router / switch 910 is used in the receiving circuit 900 instead of the local router switch.
[0109] In addition to transmitting data frames across a virtual network, hops across the virtual network can also be tested by generating test SE frames. The transmitting virtual port vPORTa determines the next hop to the virtual egress device at the end of the link to be tested in the virtual network. Thereafter, the transmitting virtual port vPORTa generates a test SE frame having a header that identifies the frame as a test frame, and the virtual egress device at the end of the link to be tested.
[0110] The virtual switch 214 passes the test SE frame to the network physical port in the above manner, and the network physical port transmits the test SE frame. The test SE frame reaches the virtual egress device in the above manner, where the receiving virtual port vPORTb unpacks the test SE frame in the above manner to extract test information. Then, the receiving virtual port vPORTb can determine the frame delay, frame loss rate, and active / inactive status from the test SE frame, which in turn can be used to determine the quality of service (QoS) measurement.
[0111] Figure 10A A block diagram showing an example of a virtual forwarding device 1000 according to the present invention is shown. As Figure 10AAs shown, the virtual forwarding device 1000 includes a plurality of receiving physical ports RP1 to RPm, and a plurality of forwarding virtual ports vPORTc1 to vPORTcn coupled to the receiving physical ports RP1 to RPm. Each forwarding virtual port vPORTc in turn includes a forwarding frame formatting circuit for packing and unpacking frames, and a forwarding queue for storing frame data during packing and unpacking. The virtual forwarding device 1000 further includes a virtual switch 1010 coupled to each of the forwarding virtual ports in the forwarding virtual ports vPORTc, and a plurality of transmitting physical ports TP1 to TPz coupled to the virtual switch 1010.
[0112] Figure 10B FIG. shows a flowchart of an example of a method 1050 for operating a virtual forwarding device 1000 in accordance with the present invention. As Figure 10B shown, the method 1050 begins at 1052, where a second encapsulation (SE) frame is received. For example, the forwarding virtual port vPORTc1 may receive an SE frame from the virtual ingress device VED1 via the receiving physical port RP1.
[0113] Next, the method 1050 moves to 1054 to unpack the SE frame to extract a first encapsulation frame (FE), and then moves to 1056 to extract an identifier from the FE frame. For example, the forwarding virtual port vPORTc1 may extract the FE frame from the unpacked SE frame, and then extract the identifier as the MAC address of the virtual egress device.
[0114] Thereafter, the method 1050 moves to 1058 to determine a next-hop device and alternative hop devices from the identifier. For example, the forwarding virtual port vPORTc1 may input the MAC address (identifier) of the virtual egress device VXD1 into a lookup table. As shown in the lookup table, when the virtual egress device VXD1 is input into the table, the MAC address of the next-hop device and the MAC addresses of alternative hop devices can be determined. (The lookup table may alternatively include the MAC addresses of a plurality of additional alternative hop devices.)
[0115] MAC address VXD device MAC address Next-hop device MAC address Alternative hop device
[0116] VXD1 VXD1 VFD2 VXD2 VXD2 VXD
[0117] Lookup table
[0118] Thereafter, method 1050 moves to 1060 to determine whether the transmission physical port coupled to the next-hop device can accept the frame for forwarding. When the rate at which the frame is forwarded to the transmission physical port is greater than the rate at which the transmission physical port can physically output the frame to the next-hop device, the transmission physical port signals a hold, which prevents the transmission physical port from receiving additional frames. For example, forwarding virtual port vPORTc1 can determine whether the transmission physical port TP1 coupled to the next-hop (virtual egress) device VXD1 can accept the frame for forwarding.
[0119] When the transmission physical port can accept the frame for forwarding, method 1050 moves to 1062, where virtual forwarding vPORTc wraps or encapsulates the FE frame to form a double-encapsulated (DE) frame, where the next-hop MAC address replaces the first-hop MAC address. The DE frame in turn has a field identifying the next hop and a field including the FE frame. For example, when forwarding virtual port vPORTc1 determines that the transmission physical port TP1 can accept the frame for transmission, forwarding virtual port vPORTc1 wraps or encapsulates the FE frame to form a DE frame that has a field identifying the virtual egress device VXD1.
[0120] Thereafter, method 1050 moves to 1064, where virtual switch 272 forwards the DE frame with the next-hop MAC address to the transmission physical port coupled to the next-hop device, and then moves to 1066, where the transmission physical port outputs the DE frame. For example, virtual switch 272 can forward the DE frame from forwarding virtual port vPORTc to transmission physical port TP1, and then transmission physical port TP1 transmits the DE frame to virtual egress device VXD1.
[0121] On the other hand, when the transmission physical port cannot accept the frame for forwarding, method 1050 moves to 1070 to determine whether the transmission physical port coupled to the alternative-hop device can accept the frame for forwarding. For example, forwarding virtual port vPORTc1 can determine whether the transmission physical port TP2 coupled to virtual forwarding device VFD2 can accept the frame for forwarding.
[0122] When the transmission physical port can accept the frame for forwarding, method 1050 moves to 1072, where forwarding virtual port vPORTc wraps or encapsulates the FE frame to form a DE frame that has an alternative-hop MAC address replacing the first-hop MAC address. The DE frame in turn has a field identifying the alternative hop and a field including the FE frame. For example, when forwarding virtual port vPORTc1 determines that the transmission physical port TP1 can accept the frame for transmission, forwarding virtual port vPORTc1 wraps or encapsulates the FE frame to form a DE frame that has a field identifying virtual forwarding device VFD1.
[0123] The DE frame then has a field identifying an alternative hop and a field including the FE frame. For example, when the forwarding virtual port vPORTc1 determines that the transmission physical port TP2 can accept the frame for transmission, the forwarding virtual port vPORTc1 wraps or encapsulates the FE frame to form a DE frame that has a field identifying the virtual forwarding device VFD2 as the next hop.
[0124] Thereafter, method 1050 moves to 1074 where the virtual switch 272 forwards the DE frame with the alternative MAC address to the transmission physical port coupled to the alternative hop device, and then moves to 1076 where the transmission physical port outputs the DE frame to the alternative hop device. For example, the virtual switch 272 can forward the DE frame from the forwarding virtual port vPORTc to the transmission physical port TP2, and then the transmission physical port TP2 transmits the DE frame to the virtual forwarding device VFD2. When the transmission physical port cannot accept the frame for forwarding, method 1050 moves to 1078 where the forwarding virtual port vPORTc discards the frame. (When the lookup table provides additional alternative devices, method 360 evaluates other devices before discarding the frame.)
[0125] The virtual forwarding device VFD2 operates in the same manner as the virtual forwarding device VFD1. The virtual forwarding device VFD2 receives the SE frame, unpacks the frame, identifies the next hop device and the alternative hop device, and determines whether the transmission physical port associated with the next hop device can accept the frame for transmission.
[0126] When the transmission physical port associated with the next hop can accept the frame for transmission, the virtual forwarding device VFD2 wraps the FE frame to form a DE frame, and the virtual switch forwards the DE frame to the transmission physical port in the virtual forwarding device VFD2. When the physical port associated with the next hop cannot accept the frame for transmission, the virtual forwarding device VFD2 determines whether the transmission physical port associated with the device identified by the alternative MAC address can accept the frame for transmission.
[0127] When the transmission physical port associated with the device identified by the alternative MAC address can accept the frame for transmission, the virtual forwarding device VFD2 wraps the FE frame to form a DE frame, and the virtual switch forwards the DE frame to the transmission physical port. For example, when the transmission physical port TP2 coupled to the virtual forwarding device VFD can accept the frame for transmission, the virtual forwarding device VFD2 wraps the FE frame to form a DE frame, and the virtual switch forwards the DE frame to the transmission physical port TP2.
[0128] When the transmission physical port associated with the device identified by the alternative MAC address cannot accept the frame for transmission, the method discards the frame, or can continue to check the second, third, etc. alternative MAC addresses according to the content provided in the lookup table until a transmission physical port that accepts the frame for transmission is found or the frame is discarded.
[0129] Figure 11 FIG. shows a block diagram of an example of a virtual forwarding device 1100 according to the present invention. The virtual forwarding device 1100 is similar to the virtual forwarding device 1000, and thus the same reference numerals are used to designate the structures common to the two devices.
[0130] As Figure 11 shown, the virtual forwarding device 1100 differs from the virtual forwarding device 1000 in that the forwarding frame formatting circuit of the forwarding virtual port vPORTcn allows an unpacked FE frame to be forwarded via the transmission physical port TPz to a third-party network-to-network (NNI) device for transmission across the third-party network if necessary. The forwarding virtual port vPORTcn provides a traditional format, such as the PBB-TE format, to the unpacked FE frame.
[0131] In addition to transmitting data frames over the virtual network, the hops across the virtual network can also be tested by generating test SE frames. The transmission virtual port vPORTa determines the first hop in the virtual network to the virtual egress device at the end of the link to be tested. Thereafter, the transmission virtual port vPORTa generates a test SE frame that has a header identifying the frame as a test frame and the virtual egress device at the end of the link to be tested.
[0132] The test SE frame is delivered to the network physical port in the above manner, and the network physical port transmits the test SE frame. The test SE frame arrives at the virtual egress device in the above manner, where the receiving virtual port vPORTb unpacks the test SE frame in the above manner to extract the test information. Then, the receiving virtual port vPORTb can determine the frame delay, frame loss rate, and active / inactive status from the test SE frame, which in turn can be used to determine the quality of service (QoS) measurements.
[0133] Figure 12 is a flowchart showing an example of a method 1200 for forming a virtual network according to the present invention. As Figure 12 the example of shows, the method 1200 begins at 1210, where data frames are passed at a frame rate across one or more fiber optic cables, each of the one or more fiber optic cables having two or more physical fibers.
[0134] When the frame rate of a data frame is greater than the maximum frame rate of a first physical optical fiber in an optical fiber cable, the transmission includes transmitting a first number of data frames on the first physical optical fiber at a first data rate that is equal to or less than the maximum data rate of the first physical optical fiber. The transmission also includes transmitting a second number of data frames on a second physical optical fiber at a second data rate that is equal to or less than the maximum data rate of the second physical optical fiber.
[0135] When the frame rate of a data frame is equal to or less than the frame rate of a first physical optical fiber in an optical fiber cable, the transmission includes serially transmitting pairs of data frames through the first physical optical fiber such that the pair of frames includes data from multiple sources.
[0136] Method 1200 then moves to 1212 to generate data frames to be transmitted across an optical fiber network. In a first embodiment, data frames are generated by receiving data frames from a source device at a frame rate greater than the maximum frame rate to form received data frames, and then splitting the received data frames and the frame rate greater than the maximum frame rate into a first number of received data frames and a second number of received data frames, where the first number of received data frames has a first data rate that is equal to or less than the maximum data rate of the first physical optical fiber, and the second number of received data frames has a data rate that is equal to or less than the maximum data rate of the second physical optical fiber.
[0137] For example, if two physical optical fibers each have a maximum data rate of 100 Gbps and customer data is operating at 200 Gbps, an optical fiber cable can be formed to split the customer data and the 200 Gbps data rate by transmitting 100 Gbps on both the first physical optical fiber and the second physical optical fiber, where the 200 Gbps data rate is greater than the highest maximum data rate of 100 Gbps of two or more physical optical fibers.
[0138] Thereafter, data frames are generated by determining a remote device from the received data frames, determining a virtual egress device from the remote device, and performing a first encapsulation on the received data frames to form a first encapsulated frame having a header identifying the virtual egress device.
[0139] Next, data frames are generated by determining the virtual egress device from the first encapsulated frame, determining a first hop device from the virtual egress device, and performing a second encapsulation on the first encapsulated frame to form a second encapsulated frame having a header identifying the first hop device.
[0140] In a second embodiment, data frames are generated by receiving a first data frame from a first source at a first frame rate and receiving a second data frame from a second source at a second frame rate. Thereafter, data frames are generated by combining the data of the first frame from the first source and the data of the second frame from the second source to form a combined data frame.
[0141] Thereafter, a data frame is generated by determining a remote device from a first frame from a first source, determining a virtual egress device from the remote device, and performing a first encapsulation on the combined data frame to form a first encapsulated frame having a header identifying the virtual egress device.
[0142] Next, a data frame is generated by determining a virtual egress device from the first encapsulated frame, determining a first hop device from the virtual egress device, and performing a second encapsulation on the first encapsulated frame to form a second encapsulated frame having a header identifying the first hop device.
[0143] In a third embodiment, a data frame is generated by receiving a first data frame from a first source at a first frame rate and a second data frame from a second source at a second frame rate, and determining a remote device from the first data frame from the first source and determining a virtual egress device from the remote device.
[0144] Thereafter, a data frame is generated by encapsulating the first data frame from the first source to form a first encapsulated frame having a header identifying the virtual egress device and encapsulating the second data frame from the second source to form a second encapsulated frame having a header identifying the virtual egress device.
[0145] Next, a data frame is generated by determining a virtual egress device from the first encapsulated frame, determining a first hop device from the virtual egress device, encapsulating the first encapsulated frame to form a third encapsulated frame having a header identifying the first hop device, and encapsulating the second encapsulated frame to form a fourth encapsulated frame having a header identifying the first hop device.
[0146] Thereafter, a data frame is generated by outputting a plurality of third encapsulated frames and a plurality of fourth encapsulated frames such that the combined frame rate of the third encapsulated frames and the fourth encapsulated frames is equal to or less than the maximum frame rate of the first optical fiber.
[0147] Referring again to Figure 12 , method 1200 then moves to 1214 to receive data frames transmitted across an optical fiber cable. In a first embodiment, a data frame is received by unpacking the second encapsulated frame to extract the first encapsulated frame and the identity of the virtual egress device and determining whether the first hop device is the virtual egress device. Thereafter, when the first hop device is the virtual egress device, the frame is received by unpacking the first encapsulated frame to extract the received data frame, and when the first hop device is not the virtual egress device, the next hop device is determined from the identity of the virtual egress device.
[0148] When the next hop device is a virtual forwarding device, the first encapsulated frame is encapsulated to form a third encapsulated frame having a header identifying the virtual forwarding hop device. When the next hop device is a network-to-network interface device, the first encapsulated frame is forwarded to the network-to-network interface device.
[0149] Reference will now be made in detail to various embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. While the present disclosure has been described in conjunction with various embodiments, it is to be understood that these various embodiments are not intended to limit the present disclosure. On the contrary, the present disclosure is intended to cover alternatives, modifications, and equivalent forms that may be included within the scope of the present disclosure as defined by the claims.
[0150] In addition, in the foregoing detailed description of various embodiments of the present disclosure, numerous specific details have been set forth in order to provide a thorough understanding of the present disclosure. However, one of ordinary skill in the art will recognize that the present disclosure may be practiced without these specific details or with their equivalents. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the various embodiments of the present disclosure.
[0151] Note that although, for clarity, a method may be described herein as a sequence of numbered operations, the numbering does not necessarily prescribe the order of the operations. It should be understood that some operations may be skipped, performed in parallel, or performed without maintaining a strict sequential order.
[0152] The accompanying drawings, which illustrate various embodiments of the present disclosure, are semi-schematic and not to scale, and in particular, some of the sizes are exaggerated for clarity and are shown in the drawings. Similarly, although for ease of description, the views in the accompanying drawings generally show similar orientations, this description in the drawings is arbitrary in most cases. In general, the various embodiments according to the present disclosure can be operated in any orientation.
[0153] Certain portions of the detailed description are presented in terms of processes, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. Those skilled in the art of data processing use these descriptions and representations to effectively convey the substance of their work to others skilled in the art.
[0154] In the present disclosure, a process, a logic block, a process, etc. are considered to be a self-consistent sequence of operations or instructions that result in a desired outcome. These operations are those that utilize physical manipulations of physical quantities. Typically, although not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transferred, combined, compared, and otherwise manipulated in a computing system. For reasons of general use, it has proven convenient at times to refer to these signals as transactions, bits, values, elements, symbols, characters, samples, pixels, etc.
[0155] However, it should be remembered that all these and similar terms are associated with appropriate physical quantities and are merely convenient labels applied to these quantities. Unless otherwise specifically stated, it is apparent from the following discussion that throughout this disclosure, discussions using terms such as "generate", "determine", "allocate", "aggregate", "utilize", "virtualize", "process", "access", "execute", "store", etc., refer to the actions and processes of a computer system or similar electronic computing device or processor.
[0156] A computing system or similar electronic computing device or processor manipulates data represented as physical (electronic) quantities within a computer system memory, registers, other such information storage devices, and / or other computer-readable media, and converts it into other data similarly represented as physical quantities within a computer system memory or register or other such information storage device, transmission, or display device.
[0157] The technical solutions in the embodiments of this application have been clearly and completely described in the previous sections with reference to the accompanying drawings of the embodiments of this application. It should be noted that in the specification and claims of the present invention and in the above-mentioned drawings, terms such as "first", "second", etc. are used to distinguish similar objects and do not necessarily describe a specific sequence or order. It should be understood that these numbers can be interchanged at appropriate places so that the embodiments of the present invention described herein can be implemented in an order different from that shown or described herein.
[0158] If the functions described in the method of this embodiment are implemented in the form of software function units and sold or used as independent products, they can be stored in a storage medium readable by a computing device. Based on this understanding, a part of the embodiments of this application that contributes to the prior art or a part of the technical solution can be implemented in the form of a software product stored in a storage medium, including multiple instructions for causing a computing device (which can be a personal computer, server, mobile computing device, or network device, etc.) to execute all or part of the steps of the methods described in various embodiments of this application. The aforementioned storage medium includes: USB drives, portable hard disks, read-only memories (ROMs), random access memories (RAMs), magnetic disks, optical disks, etc., which can store program codes.
[0159] The various embodiments in the specification of this application are described in a progressive manner, and each embodiment focuses on its differences from other embodiments, and the same or similar parts between the various embodiments can be referred to in another case. The described embodiments are only part of the embodiments and not all the embodiments of this application. All other embodiments obtained by those of ordinary skill in the art from the embodiments of this application are within the scope of this application without departing from the technical invention.
[0160] The above description of the disclosed embodiments enables those skilled in the art to make or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Thus, the present application is not limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method for forming a virtual network, the method comprising: Transmitting data frames across one or more optical fiber cables at a frame rate, each of the one or more optical fiber cables having two or more physical optical fibers, When the frame rate of the data frames is greater than the maximum frame rate of a first physical optical fiber in the optical fiber cable, the method further comprises: Transmitting a first number of the data frames on the first physical optical fiber at a first data rate equal to or less than the maximum data rate of the first physical optical fiber; and Transmitting a second number of the data frames on the second physical optical fiber at a second data rate equal to or less than the maximum data rate of the second physical optical fiber; and When the frame rate of the data frames is equal to or less than the maximum frame rate of the first physical optical fiber in the optical fiber cable, the method comprises: Sequentially transmitting data frame pairs through the first physical optical fiber such that the frame pairs include data from multiple sources; Generating a test frame having a header identifying a virtual egress device to be tested, and transmitting the test frame to the virtual egress device to be tested; and Receiving the test frame by the virtual egress device, unpacking the test frame, and determining one or more status measurements from the unpacked test frame.
2. The method according to claim 1 further comprises: Generating the data frames to be transmitted across the optical fiber cable.
3. The method according to claim 2, wherein generating the data frames comprises: Receiving the data frames from a source device at a frame rate greater than the maximum frame rate; And Splitting the received data frames at a frame rate greater than the maximum frame rate into: a first number of received data frames having a first data rate equal to or less than the maximum data rate of the first physical optical fiber, and a second number of received data frames having a second data rate equal to or less than the maximum data rate of the second physical optical fiber.
4. The method according to claim 3, wherein generating the data frames further comprises: Determining a remote device from the received data frames; Determining a virtual egress device from the remote device; And Performing a first encapsulation on the received data frames to form a first encapsulated frame having a header identifying the virtual egress device.
5. The method according to claim 4, wherein generating the data frames further comprises: Determining the virtual egress device from the first encapsulated frame; Determining a first-hop device from the virtual egress device; And Performing a second encapsulation on the first encapsulated frame to form a second encapsulated frame having a header identifying the first-hop device.
6. The method according to claim 5, further comprising: Receiving the data frames transmitted across the optical fiber cable; Unpacking the second encapsulated frame to extract the first encapsulated frame and the identity of the virtual egress device; Determining whether the first-hop device is the virtual egress device; When the first-hop device is the virtual egress device, unpacking the first encapsulated frame to extract the received data frames; And When the first-hop device is not the virtual egress device, determine the next-hop device from the identity of the virtual egress device.
7. The method according to claim 6, further comprising: When the next-hop device is a virtual forwarding device, encapsulate the first encapsulated frame to form a third encapsulated frame having a header identifying the virtual forwarding device; And When the next-hop device is a network-to-network interface device, forward the first encapsulated frame to the network-to-network interface device.
8. The method according to claim 2, wherein generating the data frame comprises: Receiving a first data frame from a first source at a first frame rate and receiving a second data frame from a second source at a second frame rate; And Combining the data of the first frame from the first source with the data of the second frame from the second source to form a combined data frame.
9. The method according to claim 8, wherein generating the data frame further comprises: Determining a remote device from the first frame from the first source; Determining a virtual egress device from the remote device; And Performing a first encapsulation on the combined data frame to form a first encapsulated frame having a header identifying the virtual egress device.
10. The method according to claim 9, wherein generating the data frame further comprises: Determining the virtual egress device from the first encapsulated frame; Determining a first-hop device from the virtual egress device; And Performing a second encapsulation on the first encapsulated frame to form a second encapsulated frame having a header identifying the first-hop device.
11. The method according to claim 10, further comprising: Receiving the data frame transmitted across the fiber optic cable; Unpacking the second encapsulated frame to extract the first encapsulated frame and the identity of the virtual egress device; Determining whether the first-hop device is the virtual egress device; When the first-hop device is the virtual egress device, unpacking the first encapsulated frame to extract the combined data frame; And When the first-hop device is not the virtual egress device, determining the next-hop device from the identity of the virtual egress device.
12. The method according to claim 11, further comprising: When the next-hop device is a virtual forwarding device, encapsulating the first encapsulated frame to form a third encapsulated frame having a header identifying the virtual forwarding device; And When the next-hop device is a network-to-network interface device, forwarding the first encapsulated frame to the network-to-network interface device.
13. The method according to claim 2, wherein generating the data frame comprises: Receiving a first data frame from a first source at a first frame rate and receiving a second data frame from a second source at a second frame rate; Determining a remote device from the first data frame from the first source; Determining a virtual egress device from the remote device; Encapsulating the first data frame from the first source to form a first encapsulated frame having a header identifying the virtual egress device; And Encapsulating the second data frame from the second source to form a second encapsulated frame having a header identifying the virtual egress device.
14. The method according to claim 13, wherein generating the data frame further comprises: determining the virtual egress device from the first encapsulated frame; determining a first-hop device from the virtual egress device; encapsulating the first encapsulated frame to form a third encapsulated frame having a header identifying the first-hop device; and encapsulating the second encapsulated frame to form a fourth encapsulated frame having a header identifying the first-hop device.
15. The method according to claim 14, wherein generating the data frame further comprises: Outputting a plurality of third encapsulated frames and a plurality of fourth encapsulated frames such that a combined frame rate of the third encapsulated frame and the fourth encapsulated frame is equal to or less than the maximum frame rate of the first physical optical fiber.
16. The method according to claim 15, further comprising: receiving the data frame transmitted across the fiber optic cable; unpacking the third encapsulated frame to extract the first encapsulated frame and the identity of the virtual egress device; determining whether the first-hop device is the virtual egress device; when the first-hop device is the virtual egress device, unpacking the first encapsulated frame to extract the first frame data from the first source; when the first-hop device is not the virtual egress device, determining a next-hop device from the identity of the virtual egress device; when the next-hop device is a virtual forwarding device, encapsulating the first encapsulated frame to form a fifth encapsulated frame having a header identifying the virtual forwarding device; and when the next-hop device is a network-to-network interface device, forwarding the first encapsulated frame to the network-to-network interface device.
Citation Information
Patent Citations
Router with routing processors and methods for virtualization
US20030189930A1
Systems and methods for multi-stream image processing
US20040218099A1