Virtual network device
Patent Information
- Application Number
- KR1020247025875
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-05-06
- Filing Date
- 2021-03-10
- Publication Date
- 2026-09-02
- Estimated Expiration
- 2041-03-10
Smart Images

Figure 112024083368772-PAT00002_ABST
Abstract
Description
Technology Field
[0001] This application relates to the field of computer networks, and in particular to virtual network devices. Background Technology
[0002] A WAN (wide area network) is an interconnected web of network devices that typically interconnects local area networks or metropolitan area networks across a large geographical area, such as across a state or a country. WANs allow remotely located computers to communicate with each other through network devices.
[0003] Conventional network devices typically include one or more physical network ports operating at predetermined fixed data rates, 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, conventional network devices negotiate the transmission speed of the network port, during which the transmission speed of the network port is fixed.
[0004] One of the drawbacks of conventional network devices is that there is often a requirement for more physical ports than are available, which leads to reduced service or expensive upgrades. As a result, an approach is needed to accommodate the increasing demand for ports.
[0005] The present invention provides a virtual network device having virtual ports that effectively increase the number of available physical ports. The virtual network device includes a framing circuit that receives a plurality of input frames, examines the plurality of input frames to determine a frame type for each input frame, and determines a virtual exit device associated with each input frame based on the frame type. The framing circuit also encapsulates the plurality of input frames to form a plurality of first encapsulated frames. Each virtual exit device has a receiving virtual port. The plurality of first encapsulated frames have a plurality of headers. The plurality of headers identify a plurality of virtual exit devices associated with the plurality of input frames. Additionally, the virtual network device includes a plurality of transmitting virtual ports coupled to the framing circuit. The plurality of transmitting virtual ports determine a plurality of next hops in the virtual network for the plurality of first encapsulated frames based on the virtual exit devices in the headers of the plurality of first encapsulated frames. The plurality of transmitting virtual ports further encapsulate the plurality of first encapsulated frames to form a plurality of second encapsulated frames. Each second encapsulated frame has a header. The header of the second encapsulated frame identifies the next hop of the second encapsulated frame based on the next hop of the first encapsulated frame, and the receiving virtual port of the associated virtual exit device of the input frame. The transmitting virtual ports include a first portion of memory. Additionally, the virtual network device includes a transmitting virtual switch coupled to a plurality of transmitting virtual ports. The transmitting virtual switch optionally couples the transmitting virtual ports to network physical ports.
[0006] The present invention also includes a method for operating a virtual network device. The method includes receiving a plurality of input frames, examining the plurality of input frames to determine a frame type for each input frame, and determining a virtual exit device associated with each input frame based on the frame type. Each virtual exit device has a receiving virtual port. The method also includes encapsulating a plurality of input frames to form a plurality of first encapsulated frames. The plurality of first encapsulated frames have a plurality of headers. The plurality of headers identify a plurality of virtual exit devices associated with the plurality of input frames. Additionally, the method includes determining a plurality of next hops in a virtual network for the plurality of first encapsulated frames based on the virtual exit devices in the headers of the plurality of first encapsulated frames. Furthermore, the method includes encapsulating a plurality of first encapsulated frames at a plurality of transmitting virtual ports to form a plurality of second encapsulated frames. Each second encapsulated frame has a header. The header of the second encapsulated frame identifies the next hop of the second encapsulated frame based on the next hop of the first encapsulated frame, and the receiving virtual port of the virtual exit device associated with the input frame. The transmitting virtual ports include a first portion of shared memory. The method further includes the step of optionally combining the transmitting virtual ports to a network physical port.
[0007] The present invention also provides a non-transient computer-readable storage medium containing program instructions that, when executed by a processor, cause the processor to execute a method of operating a virtual network device. The method comprises receiving a plurality of input frames, examining the plurality of input frames to determine a frame type for each input frame, and determining a virtual exit device associated with each input frame based on the frame type. Each virtual exit device has a receiving virtual port. The method also comprises encapsulating a plurality of input frames to form a plurality of first encapsulated frames. The plurality of first encapsulated frames have a plurality of headers. The plurality of headers identify a plurality of virtual exit devices associated with the plurality of input frames. Additionally, the method comprises determining a plurality of next hops in a virtual network for the plurality of first encapsulated frames based on the virtual exit devices in the headers of the plurality of first encapsulated frames. Additionally, the method comprises encapsulating a plurality of first encapsulated frames within a plurality of transmitting virtual ports to form a plurality of second encapsulated frames. Each second encapsulated frame has a header. The header of the second encapsulated frame identifies the next hop of the second encapsulated frame based on the next hop of the first encapsulated frame, and the receiving virtual port of the associated virtual exit device of the input frame. The method further includes the step of optionally coupling the transmitting virtual ports to network physical ports.
[0008] A better understanding of the features and advantages of the present invention will be achieved by referring to the following detailed description and accompanying drawings, which present exemplary embodiments in which the principles of the present invention are utilized. Brief explanation of the drawing
[0009] FIG. 1 is a block diagram showing an example of a virtual network device (100) according to the present invention. FIG. 2a is a block diagram showing an example of a transmission circuit (200) according to the present invention. FIG. 2b is a block diagram showing an example of a transmission circuit (250) according to the present invention. FIG. 3a is a flowchart illustrating an example of a method (300) for operating a transmission circuit (200) according to the present invention. FIG. 3b is a flowchart illustrating an example of a method (350) for operating a transmission circuit (200) according to the present invention. FIG. 4 is a block diagram showing an example of a transmission circuit (400) according to an alternative embodiment of the present invention. FIG. 5 illustrates a block diagram showing an example of a transmission circuit (500) according to an alternative embodiment of the present invention. FIG. 6 is a block diagram showing an example of a receiving circuit (600) according to the present invention. FIG. 7 illustrates a flowchart showing an example of a method (700) for operating a receiving circuit (600) according to the present invention. FIG. 8 is a block diagram showing an example of a receiving circuit (800) according to an alternative embodiment of the present invention. FIG. 9 is a block diagram showing an example of a receiving circuit (900) according to an alternative embodiment of the present invention. A better understanding of the features and advantages of the present invention will be achieved by referring to the following detailed description and accompanying drawings, which present exemplary embodiments in which the principles of the present invention are utilized. Specific details for implementing the invention
[0010] FIG. 1 illustrates a block diagram showing an example of a virtual network device (100) according to the present invention. As described in more detail below, the effective number of local physical ports within the virtual network device (100) is increased by converting one or more of the local physical ports into a plurality of virtual local physical ports, and the effective number of network physical ports is increased by converting one or more of the network physical ports into a plurality of virtual network physical ports.
[0011] A virtual network device (100) is a component in a virtual network that interconnects a local router / switch with a remote router / switch. The virtual network includes a virtual network device (100) that functions as a virtual entry device into the virtual network coupled to a local router / switch, and a virtual network device (100) that functions as a virtual exit device from the virtual network coupled to a remote router / switch.
[0012] As illustrated in FIG. 1, a virtual network device (100) includes a plurality of local physical ports (112) that receive frames of data, such as video frames of data, from a local network device such as a router / switch, a set-top box (STB), a personal computer (PC), and a plurality of network physical ports (114) that output frames of data to a virtual network.
[0013] As further illustrated in FIG. 1, the virtual network device (100) also includes a receiving circuit (120) having a plurality of local physical ports (122) that output frames of data to local network devices such as routers / switches, respectively, and a plurality of network physical ports (124) that receive frames of data from the virtual network, respectively. In one embodiment, one or more of the local physical ports (112 and 122) may be shared between the transmitting and receiving circuits (110 and 120), and one or more of the network physical ports (114 and 124) may be shared between the transmitting and receiving circuits (110 and 120).
[0014] Additionally, the virtual network device (100) includes a shared memory (130) coupled to both the transmitting circuit (110) and the receiving circuit (120). The shared memory (130) includes a transmitting queue that temporarily stores frames of data to be output to the virtual network, and a receiving queue that temporarily stores frames of data received from the virtual network.
[0015] FIG. 2a illustrates a block diagram showing an example of a transmission circuit (200) according to the present invention. As shown in FIG. 2a, 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-vPORTan) coupled to the framing circuit (212).
[0016] Each transmit virtual port vPORTa includes, in turn, a transmit queue and a transmit frame formatting circuit. Additionally, the transmit circuit (200) also includes a transmit virtual switch (214) coupled to each of the transmit virtual ports (vPORTa), and a network physical port (216) coupled to the transmit virtual switch (214).
[0017] FIG. 3a illustrates a flowchart illustrating an example of a method (300) for operating a transmission circuit (200) according to the present invention. As illustrated in FIG. 3a, the method (300) begins at (310), where a framing circuit (212) receives a series of input frames from a local physical port (210). The method (300) then proceeds to (312) to examine the series of input frames and determine a frame type (e.g., STB, PC, video) for each input frame, and then proceeds to (314) to determine a virtual exit device associated with each input frame based on the frame type. Each virtual exit device has a plurality of receiving virtual ports in turn.
[0018] Subsequently, the method (300) moves to (316), where a framing circuit (212) encapsulates a series of input frames to form a plurality of first encapsulated (FE) frames. The FE frames have headers that identify virtual exit devices associated with the series of input frames.
[0019] After this, the method (300) moves to (318), where the transmitting virtual ports (vPORTa1-vPORTan) determine the next hops in the virtual network for the FE frames based on the virtual exit devices in the headers of the FE frames. Next, the method (300) moves to (320), where the transmitting virtual ports (vPORTa1-vPORTan) encapsulate the FE frames to form second encapsulated (SE) frames. Each SE frame has a header identifying the next hop of the SE frame based on the next hop of the FE frame. The header also identifies the receiving virtual port of the associated virtual exit device of the input frame. Additionally, the transmitting virtual ports occupy a first portion of shared memory.
[0020] Subsequently, the method (300) moves to (322) where the transmitting virtual switch (214) cycles through the transmitting virtual ports vPORTa1-vPORTan to sequentially forward SE frames from each transmitting virtual port vPORTa in a fixed repeating order to output a sequence of SE frames. For example, the virtual switch (214) may output a sequence of SE frames, wherein the first SE frame is from vPORT1, the second frame is from vPORT2, the third frame is from vPORT3, and the fourth frame is again from vPORT1.
[0021] If the sending virtual port vPORTa is empty or partially full, no frames are generated. For example, if the sending virtual port vPORT2 is empty, the network physical port (216) outputs a sequence of frames including frame 1, no frame, and frame 3. Next, the method (300) moves to (324) where the network physical port (216) transmits a sequence of SE frames over the virtual network.
[0022] FIG. 3b illustrates a flowchart illustrating an example of a method (350) for operating a transmission circuit (200) according to an alternative embodiment of the present invention. The method (350) is similar to the method (300) and, as a result, utilizes the same reference numbers to designate elements common to both methods.
[0023] As illustrated in FIG. 3b, method (350) first branches off from method (300) at (352), where a virtual switch (214) determines whether the entire signal has been received from any of the transmitting virtual ports vPORTa. The entire signal indicates that an SE frame from the transmitting virtual port vPORTa is ready to be transmitted. When the virtual switch (214) detects the entire signal from the transmitting virtual port vPORTa, method (350) moves to (354), where the virtual switch (214) forwards the SE frame from the transmitting virtual port vPORTa, which outputs the entire signal, to a network physical port (216).
[0024] For example, the virtual switch (214) can sequentially receive the entire signal from the transmitting virtual port vPORTa1, the transmitting virtual port vPORTa2, and the transmitting virtual port vPORTa3. In this case, the virtual switch (214) outputs a sequence of SE frames, wherein the first SE frame is from the transmitting virtual port vPORT1, the second frame is from the transmitting virtual port vPORT2, and the third frame is from the transmitting virtual port vPORT3.
[0025] Alternatively, one of the sources (e.g., STB, PC, video source) may have a data rate much faster than the data rate of the other sources (e.g., STB, PC, video source), which, in turn, causes one transmitting virtual port vPORTa to output the entire signal much more frequently than the other transmitting virtual ports vPORTa.
[0026] For example, if a network physical port (216) transmits frames at a frame rate of 5 frames per second, and a transmitting virtual port vPORTa2 outputs frames at a rate 3X faster than the frame rates of each of the transmitting virtual ports vPORTa1 and vPORTa3, and the transmitting virtual port vPORTa2 signals completely three times faster before other ports, and the transmitting virtual port vPORTa1 signals before vPORTa3 signals, the virtual switch (214) forwards a sequence of frames including a first frame from the transmitting virtual port vPORT2, a second frame from the transmitting virtual port vPORT2, a third frame from the transmitting virtual port vPORT2, a fourth frame from the transmitting virtual port vPORT1, and a fifth frame from the transmitting virtual port vPORT3.
[0027] In addition to the first-in first-out approach in which the order of receiving all signals determines the order in which SE frames are output from the sending virtual port vPORTa by the virtual switch (214), the sending virtual ports vPORTa-vPORTan may, as an alternative, include a priority method that allows frames to be forwarded from the sending virtual port vPORTa to network physical ports in any amount and any order.
[0028] Referring again to FIG. 3b, after the virtual switch (214) forwards an SE frame from the transmitting virtual port vPORTa, which outputs the entire signal to the network physical port (216), the method (350) moves to (356), where the network physical port (216) transmits the SE frame. In method (300), the frame to be output is predictable, whereas in method (350), the frame to be output is not predictable, but the priority method provides a level of predictability.
[0029] Referring again to the example of FIG. 2a, 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 input frame (e.g., STB, PC, video), determines a path for the frame from a static forwarding table to a virtual port vPORTa corresponding to the type of frame, and outputs the frame toward the virtual port vPORTa.
[0030] In this example, the virtual switch (220) receives an STB frame transmitted by a local source router / switch and detects that the received frame is an STB frame from the source and / or destination MAC address in the STB frame. Then, the switch (220) outputs the STB frame on a first virtual port line P1 that is routed toward a virtual port vPORTa1 that has been pre-selected to receive STB frames.
[0031] Similarly, the virtual switch (220) receives a PC frame transmitted by a local source router / switch and detects that the received frame is a PC frame from the source and / or destination MAC address in the PC frame. Then, the switch (220) outputs the PC frame on a second virtual port line P2 that is routed toward a virtual port vPORTa2 pre-selected to receive PC frames.
[0032] The virtual switch (220) also receives a video frame transmitted by a local router / switch, detects that the received frame is a video frame from a source and / or destination MAC address in the video frame, and then outputs the video frame on a third virtual port line P3 that is routed toward a pre-selected virtual port vPORTa3 to receive the video frames.
[0033] The framer (222) receives an STB frame on 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 transmit queue of virtual port vPORTa1. Similarly, the framer (222) receives a PC frame on 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 transmit queue of virtual port vPORTa2. The framer (222) also receives a video frame on 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 transmit queue of virtual port vPORTa3.
[0034] The framer (222) can generate encapsulated frames by utilizing conventional protocols such as the PBB-TE (provider backbone bridge-traffic engineering) protocol or the T-MPLS (transport multiprotocol label switching) protocol. Additionally, each of the FE STB frame, FE PC frame, and FE video frame has a header having multiple fields including identification of a virtual exit device.
[0035] For example, the header of the FE frame may include an exit address field, an I-Tag field, or a similar field for the MAC address of the virtual exit device. The header may also include other fields, such as the MAC address of the virtual input device. In this example, the MAC address of the virtual exit device is administratively provided to the virtual input device.
[0036] A frame formatting circuit within the virtual port vPORTa1 of the transmitting circuit (200) receives an FE STB frame, determines the next hop in the virtual network for the FE STB frame from a static forwarding table based on the identification of the virtual exit device, such as the MAC address of the virtual exit device in the header of the FE STB frame, and encapsulates the FE STB frame to form a second encapsulated (SE) STB frame.
[0037] Similarly, a frame formatting circuit within the virtual port vPORTa2 of the transmitting circuit (200) receives an FE PC frame, determines the next hop in the virtual network for the FE PC frame from a static forwarding table based on the identification of the virtual exit device, such as the MAC address of the virtual exit device in the header of the FE PC frame, and encapsulates the FE PC frame to form a second encapsulated (SE) PC frame.
[0038] Additionally, a frame formatting circuit within the virtual port vPORTa3 of the transmitting circuit (200) receives an FE video frame, determines the next hop in the virtual network for the FE video frame from a static forwarding table based on the identification of the virtual exit device, such as the MAC address of the virtual exit device in the header of the FE video frame, and encapsulates the FE video frame to form a second encapsulated (SE) video frame.
[0039] Each of the SE STB frame, SE PC frame, and SE video frame includes a header having a next hop field identifying the MAC address of the next hop in the virtual network, a source field Src_vID identifying the virtual port number of the virtual entry device, and a destination field Dst_vID identifying the virtual port number of the virtual exit device corresponding to the virtual port number of the virtual entry device. In this example, the source field Src_vID for the SE STB frame is virtual port vPORTa1. Other fields, such as the last hop field, may also be included.
[0040] Additionally, the virtual switch (214) cycles through the virtual ports vPORTa1-vPORTan to sequentially forward SE (second encapsulated) frames from each virtual port vPORTa and outputs a series of SE frames to the physical port (216). In this example, the switch (214) forwards SE STB frames from virtual port vPORTa1 to the physical port (216), then forwards SE PC frames from virtual port vPORTa2 to the physical port (216), then forwards SE video frames from virtual port vPORTa3 to the physical port (216), then forwards SE STB frames from virtual port vPORTa1 to the physical port (216), and continues in the same manner, the physical port (216) outputs frames. Although FIG. 2 illustrates a transmitting circuit (200) receiving input from a single local router / switch and operating accordingly, the transmitting circuit (200) may alternatively receive input from multiple routers / switches and operate accordingly.
[0041] FIG. 2b illustrates a block diagram showing an example of a transmission circuit (250) according to the present invention. The transmission circuit (250) is similar to the transmission circuit (200), and as a result, the same reference numbers are used to designate elements that are common to both the transmission circuit (200) and the transmission circuit (250).
[0042] As illustrated in FIG. 2b, the transmitting circuit (250) differs from the transmitting circuit (200) in that the transmitting circuit (250) includes a first network physical port (216A) and a second network physical port (216B), both of which are coupled to a virtual switch (214). Additionally, the virtual switch (214) provides a continuous connection between the transmitting virtual port vPORTa1 and the network physical port (216A). Additionally, an additional transmitting virtual port vPORTa4 is illustrated.
[0043] The transmitting circuit (250) operates substantially the same as the transmitting circuit (200), except that one or more of the sources (e.g., STB, PC, or video source) output frames of data at a frame rate greater than the maximum frame rate of the network physical ports (216A, 216B). For example, each of the network physical ports (216A, 216B) may have a maximum frame rate of 5 frames per second.
[0044] In the example of FIG. 2b, the set-top box outputs 7 STB frames per second, while the personal computer outputs 2 PC frames per second, and the video device outputs 1 video frame per second. (The numbers cited are for illustrative purposes only. As illustrated in FIG. 2b, 5 of the 7 STB frames are transmitted from the network physical port (216A), while the remaining 2 STB frames, 2 PC frames, and 1 video frame are transmitted from the network physical port (216B) in the manner exemplified by the methods (300 and 350). One of the advantages of the transmitting circuit (250) is that the transmitting circuit (250) can handle incoming frame rates greater than the maximum frame rate of the network physical ports.
[0045] FIG. 4 illustrates a block diagram showing an example of a transmission circuit (400) according to an alternative embodiment of the present invention. The transmission circuit (400) is similar to the transmission circuit (200), and as a result, the same reference numbers are used to designate structures common to both circuits.
[0046] As illustrated in FIG. 4, the transmitting circuit (400) differs from the transmitting circuit (200) in that the framing circuit (212) of the transmitting circuit (400) utilizes a serial-to-serial framer (410) followed by a serial-to-parallel virtual switch (412) coupled to virtual ports vPORTa1-vPORTan instead of a virtual switch (220) followed by a framer (222).
[0047] In an additional alternative embodiment, the framer (410) and virtual switch (412) of the transmission circuit (400) may be physically separated, and the framer (410) is integrated within a local router / switch.
[0048] FIG. 5 illustrates a block diagram showing an example of a transmission circuit (500) according to the present invention. The transmission circuit (500) is similar to the transmission circuit (400), and as a result, the same reference numbers are used to designate structures common to both the circuit (400) and the circuit (500). As illustrated in the example shown in FIG. 5, a local framer router / switch (510) is used with the transmission circuit (500) instead of the local router / switch that receives and outputs video frames from the STB, PC, and video frames.
[0049] FIG. 6 illustrates a block diagram showing an example of a receiving circuit (600) according to the present invention. As shown in FIG. 6, 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-vPORTbn coupled to the switch (612). Each receiving virtual port vPORTb includes, in turn, a receiving queue and a receiving frame formatting circuit. The receiving circuit (600) further includes a de-framing circuit (614) coupled to each of the receiving virtual ports vPORTb, and a local physical port (616) coupled to the de-framing circuit (614).
[0050] FIG. 7 illustrates a flowchart illustrating an example of a method (700) for operating a receiving circuit (600) according to the present invention. As illustrated in FIG. 7, the method (700) begins with a network physical port (610) receiving a series of third encapsulated (TE) frames from a virtual network (710). The TE frames have headers containing next-hop addresses and receiving virtual port identifiers.
[0051] Next, the method (700) moves to (712), where the network physical port (610) examines the TE frames to determine next-hop addresses and compares the next-hop addresses with stored addresses. After that, the method (700) moves to (714), where the network physical port (610) forwards the TE frames having the matched next-hop addresses as ME (matching encapsulated) frames. Additionally, the port (610) drops the received TE frame when the identity of the next-hop address does not match the stored address.
[0052] After that, the method (700) moves to (716), where the receiving virtual switch (612) switchesably passes ME frames based on the receiving virtual port identifiers in the headers of the ME frames. Then the method (700) moves to (718), where the receiving virtual ports vPORTb1-vPORTbn unpack the switchingly passed ME frames to extract the fourth encapsulated frame from the switchingly passed ME frames, so that each receiving virtual port vPORTb unpacks the ME frame to extract the fourth encapsulated frame. The receiving virtual ports occupy a second portion of the shared memory.
[0053] Subsequently, the method (700) moves to (720), where the deframing circuit (614) unpacks the fourth encapsulated frames to extract the original STB, PC, and video input frames from the fourth encapsulated frames. The original STB, PC, and video input frames from the remote router / switch have multiple frame types. Additionally, each input frame has a header identifying the destination router / switch. Then, the method (700) moves to (722), where the deframing circuit (614) forwards the STB, PC, and video frames to a local physical port (616), and the local physical port (616) outputs the original STB, PC, and video frames to a local router / switch.
[0054] In this example, the virtual switch (612) receives an ME STB frame from a 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 ME STB frame. Additionally, the switch (612) determines a route to virtual port vPORTb1 from a static forwarding table and then outputs the ME STB frame on a first virtual port line routed toward virtual port vPORTb1.
[0055] Similarly, the virtual switch (612) receives an ME PC frame from a 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. Additionally, the switch (612) determines a route to virtual port vPORTb2 from a static forwarding table and then outputs an ME PC frame on a second virtual port line routed toward virtual port vPORTb2.
[0056] Additionally, the virtual switch (612) receives an ME video frame from a network physical port (610) and determines that the destination virtual port is virtual port vPORTb3 from the destination virtual port number Dst_vID in the header of the ME video frame. The switch (612) determines a route to virtual port vPORTb3 from a static forwarding table and then outputs the ME video frame on a third virtual port line routed toward virtual port vPORTb3.
[0057] Virtual ports vPORTb1-vPORTbn receive ME frames and unpack the ME frames to extract fourth encapsulated frames, such as a fourth encapsulated STB frame, a fourth encapsulated PC frame, and a fourth encapsulated video frame, from the ME frames. In the example of FIG. 6, the receive queue of the first virtual port vPORTb1 receives the ME STB frame, while the frame formatting circuit of the virtual port vPORTb1 unpacks the ME STB frame to extract a fourth encapsulated STB frame having a header containing the identity of the virtual exit device.
[0058] Similarly, the receive queue of the second virtual port vPORTb2 receives an ME PC frame, while the frame formatting circuit of the virtual port vPORTb2 unpacks the ME PC frame to extract a fourth encapsulated PC frame having a header containing the identity of the virtual exit device. Additionally, the receive queue of the third virtual port vPORTb3 receives an ME video frame, while the frame formatting circuit of the virtual port vPORTb3 unpacks the ME video frame to extract a fourth encapsulated video frame having a header containing the identity of the virtual exit device.
[0059] The deframing circuit (614) receives a plurality of fourth encapsulated frames and extracts the original STB, PC, and video input frames from the fourth encapsulated frames. The input frames have a plurality of frame types, e.g., STB, PC, and video. Each input frame has a header containing the identity of the destination router / switch. For each received fourth encapsulated frame, the deframing circuit (614) unpacks the fourth encapsulated frame to extract the input frame, determines the identity of the destination router / switch from the header of the input frame, outputs the input frame to a local physical port (616), and the local physical port (616) outputs the input frame to the destination router / switch.
[0060] As illustrated in FIG. 6, the de-framing circuit (614) includes a de-framer (620) and a virtual switch (622) coupled to the de-framer (620). When operating, the de-framer (620) receives fourth encapsulated frames from a plurality of receiving virtual ports vPORTb1-vPORTbn, unpacks the fourth encapsulated frames to extract original input frames, e.g., an STB frame, a PC frame, and a video frame, and forwards the STB frame, a PC frame, and a video frame to the virtual switch (622).
[0061] In the example of FIG. 6, the deframer (620) receives a fourth encapsulated STB frame from the receiving virtual port vPORTb1, unpacks the fourth encapsulated frame to extract the STB frame, and forwards the STB frame to the virtual switch (622). Similarly, the deframer (620) receives a fourth encapsulated PC frame from the receiving virtual port vPORTb2, unpacks the fourth encapsulated frame to extract the PC frame, and forwards the PC frame to the virtual switch (622). Additionally, the deframer (620) receives a fourth encapsulated video frame from the receiving virtual port vPORTb3, unpacks the fourth encapsulated frame to extract the video frame, and forwards the video frame to the virtual switch (622). The deframer (620) may utilize the same or different protocol as the framer (222).
[0062] The virtual switch (622) receives output frames sequentially by circulating through the outputs of the deframer (620) and forwards the output frames to the local physical port (616). In this example, the virtual switch (622) receives an STB frame from the deframer (620), detects the MAC address of the destination router / switch, and outputs the STB frame to the local physical port (616). Similarly, the virtual switch (622) receives a PC frame from the deframer (620), detects the MAC address of the destination router / switch, and outputs the PC frame to the local physical port (616). Additionally, the virtual switch (622) receives a video frame from the deframer (620), detects the MAC address of the destination router / switch, and outputs the video frame to the local physical port (616). The local physical port (616) then outputs the frames to the local router / switch in sequence.
[0063] An example of FIG. 6 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) can alternatively be realized in other circuit arrangements. For example, the deframing circuit (614) can be implemented as a serial-to-parallel virtual switch coupled to virtual ports vPORTb1-vPORTbn followed by a serial-to-serial framer.
[0064] FIG. 8 illustrates a block diagram showing an example of a receiving circuit (800) according to an alternative embodiment of the present invention. The receiving circuit (800) is similar to the receiving circuit (600), and as a result, the same reference numbers are used to designate structures common to both circuits.
[0065] As illustrated in FIG. 8, the receiving circuit (800) differs from the receiving circuit (600) in that the framing circuit (614) of the receiving circuit (800) includes a parallel-to-serial virtual switch (810) coupled to virtual ports vPORTb1-vPORTbn and a serial-to-serial deframer (812) following it. Implementations of the framing circuit (212) and the deframing circuit (614) can be interchangeable. For example, the virtual network device (100) may utilize a framing circuit (212) implemented with a virtual switch (220) and a framer (222), while the deframing circuit (614) may be implemented with a virtual switch (810) and a deframer (812).
[0066] In an additional alternative embodiment, the virtual switch (810) and the deframer (812) may be physically separated, and the deframer (812) may be included within a local router / switch.
[0067] FIG. 9 illustrates a block diagram showing an example of a receiving circuit (900) according to the present invention. The receiving circuit (900) is similar to the receiving circuit (800), and as a result, the same reference numbers are used to designate structures common to both the circuit (800) and the circuit (900). As illustrated in the example shown in FIG. 9, a local deframer router / switch (910) is utilized in the receiving circuit (900) instead of a local router switch.
[0068] One of the advantages of the present invention is that it combines multiple streams of STBs, PCs, and video frames through multiple virtual ports into a single virtual frame stream, which subsequently effectively increases the number of available physical ports.
[0069] Now, reference has been made to various embodiments of the present disclosure, and examples are illustrated in the accompanying drawings. While described in conjunction with various embodiments, it will 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 equivalents that may be included within the scope of the present disclosure as interpreted in accordance with the claims.
[0070] Furthermore, in the preceding detailed description of the various embodiments of the present disclosure, numerous specific details have been provided to provide a thorough understanding of the present disclosure. However, it will be recognized by those skilled in the art 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 the aspects of the various embodiments of the present disclosure.
[0071] It should be noted that while the method may be described herein as a numbered sequence of operations for clarity, the numbering does not necessarily define the order of the operations. It should be understood that some of the operations may be skipped, performed in parallel, or performed without the need to maintain a strict sequence order.
[0072] The drawings illustrating various embodiments according to the present disclosure are semi-diagrammatic and not to scale, and in particular, some of the dimensions are exaggerated in the drawings for clarity of presentation. Similarly, for ease of explanation, views in the drawings generally represent similar orientations, but such depiction in the drawings is, in most cases, arbitrary. Generally, various embodiments according to the present disclosure may operate in any orientation.
[0073] Some parts of the detailed descriptions are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within computer memory. These descriptions and representations are used by those skilled in the art of data processing to effectively convey the nature of their work to other skilled in the art.
[0074] In the present disclosure, a procedure, logic block, process, or similar is recognized as a self-consistent sequence of operations or instructions leading to a desired result. The operations are those that utilize physical manipulations of physical quantities. These quantities usually take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared, and otherwise manipulated in a computer system. It has been found to sometimes be convenient to refer to these signals as transactions, bits, values, elements, symbols, characters, samples, pixels, or similar terms, mainly because they are commonly used.
[0075] However, it should be noted that all these and similar terms are associated with appropriate physical quantities and are merely convenient labels to be applied to these quantities. Unless specifically stated otherwise, as will be apparent from the discussion below, throughout this disclosure, any discussion utilizing terms such as “occur,” “determine,” “allocate,” “aggregate,” “utilize,” “virtualize,” “process,” “access,” “execute,” “store,” or similar terms will refer to actions and processes of a computer system or similar electronic computing device or processor.
[0076] A computing system, or a similar electronic computing device or processor, manipulates and converts data represented as physical (electronic) quantities within computer system memories, registers, other such information storage, and / or other computer-readable media into other data similarly represented as physical quantities within computer system memories or registers or other such information storage, transmitting or display devices.
[0077] The technical solutions in the embodiments of this application have been clearly and sufficiently described in the preceding sections with reference to the drawings of the embodiments of this application. It should be noted that the terms “first,” “second,” and similar terms in the description and claims of the invention and in the drawings are used to distinguish similar objects and are not necessarily used to describe a specific sequence or order. It should be understood that these numbers may be interchanged where appropriate so that the embodiments of the invention described herein may be implemented in a different order than that shown or described herein.
[0078] The functions described in the method of the present embodiment may be stored on a computing device readable storage medium when implemented in the form of a software function unit and sold or used as a standalone product. Based on this understanding, some of the embodiments of the present application or some of the technical solutions contributing to the prior art may be embodied in the form of a software product stored on a storage medium comprising a plurality of instructions to cause a computing device (which may be a personal computer, a server, a mobile computing device, or a network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present application. The aforementioned storage medium includes: a USB drive, a portable hard disk, read-only memory (ROM), random access memory (RAM), a magnetic disk, an optical disk, and similar ones capable of storing program code.
[0079] The various embodiments in the specification of this application are described in a progressive manner, with each embodiment focusing on its differences from other embodiments, and identical or similar parts between the various embodiments may be referred to as otherwise. The described embodiments are only a part of the embodiments of this application, not all of them. All other embodiments obtained by a person skilled in the art based on the embodiments of this application without departing from the art are within the scope of this application.
[0080] The above description of the disclosed embodiments enables a person skilled in the art to make or use this application. Various modifications to these embodiments are apparent to a person skilled in the art, and general principles defined in this specification may be implemented in other embodiments without departing from the spirit or scope of this application. Accordingly, this application is not limited to the embodiments shown in this specification but has the broadest scope consistent with the principles and novel features disclosed in this specification.
Claims
Claim 1 A virtual network device comprising: a framing circuit—the framing circuit is configured to receive a plurality of input frames; examine the plurality of input frames to determine a frame type for each input frame; determine a virtual exit device associated with each input frame based on the frame type; and encapsulate the plurality of input frames to form a plurality of first encapsulated frames—; a plurality of transmitting virtual ports coupled to the framing circuit—the plurality of transmitting virtual ports are configured to determine a plurality of next hops in a virtual network for the plurality of first encapsulated frames based on virtual exit devices corresponding to the plurality of first encapsulated frames; and encapsulate the plurality of first encapsulated frames to form a plurality of second encapsulated frames—; and a transmitting virtual switch configured to selectively combine one or more of the plurality of transmitting virtual ports to a network physical port based on whether a full signal from one or more of the plurality of transmitting virtual ports has been received by the transmitting virtual switch. Claim 2 A virtual network device according to claim 1, wherein the transmitting virtual switch is further configured to determine whether the entire signal from one or more of the plurality of transmitting virtual ports has been received by the transmitting virtual switch, and the entire signal indicates that at least a second encapsulated frame from one or more of the plurality of transmitting virtual ports is ready to be transmitted. Claim 3 In paragraph 2, the transmitting virtual switch is a virtual network device configured to selectively combine at least one of the plurality of transmitting virtual ports with the network physical port by forwarding at least the second encapsulated frame from a transmitting virtual port that outputs the entire signal to the network physical port. Claim 4 A virtual network device according to claim 1, wherein each virtual exit device includes a receiving virtual port, and the plurality of first encapsulated frames include a plurality of headers, and the plurality of headers identify a plurality of virtual exit devices corresponding to the plurality of input frames. Claim 5 In claim 1, each second encapsulated frame includes a header, and the header of the second encapsulated frame identifies the next hop of the second encapsulated frame based on the receiving virtual port of the virtual exit device associated with the input frame and the next hop of the first encapsulated frame. Claim 6 A virtual network device according to claim 1, wherein the transmitting virtual switch sequentially receives a whole signal from a first transmitting virtual port, a second transmitting virtual port and a third transmitting virtual port; and outputs a sequence of second encapsulated frames, wherein the first second encapsulated frame is from the first transmitting virtual port, the second second encapsulated frame is from the second transmitting virtual port, and the third second encapsulated frame is from the third transmitting virtual port. Claim 7 A virtual network device according to claim 1, wherein the transmitting virtual switch is configured to circulate through the plurality of transmitting virtual ports and sequentially forward a second encapsulated frame from each transmitting virtual port in a fixed repeating order to output a series of second encapsulated frames. Claim 8 A virtual network device according to claim 1, wherein the framing circuit comprises: a virtual switch—the virtual switch is configured to determine a route for a frame to a transmitting virtual port based on the frame type; and to output the frame toward the transmitting virtual port—; and a framer coupled to the virtual switch—the framer is configured to encapsulate the input frames; and to execute a protocol from a group of protocols including a PBB-TE (provider backbone bridge-traffic engineering) protocol and a T-MPLS (transfer multiprotocol listing switch) protocol. Claim 9 A virtual network device according to claim 1, wherein the plurality of transmitting virtual ports include a first portion of shared memory. Claim 10 In paragraph 9, a receiving physical port—the receiving physical port receives a plurality of third encapsulated frames; examines the plurality of third encapsulated frames to determine a plurality of frame destinations; and compares the plurality of frame destinations with stored destinations; To forward the third encapsulated frames having matching destinations as matching encapsulated frames, the plurality of third encapsulated frames and the matching encapsulated frames have a plurality of headers, and the plurality of headers have a plurality of receiving virtual port identifiers; a receiving virtual switch coupled to the receiving physical port, the receiving virtual switch is configured to switchably transmit the matching encapsulated frames based on the receiving virtual port identifiers in the headers of the matching encapsulated frames; a plurality of receiving virtual ports coupled to the receiving virtual switch, the plurality of receiving virtual ports are configured to extract a plurality of fourth encapsulated frames from the plurality of matching encapsulated frames by unpacking the switchably transmitted matching encapsulated frames so that each receiving virtual port unpacks the matching encapsulated frame to extract a fourth encapsulated frame, and the receiving virtual ports include a second portion of the shared memory. A virtual network device further comprising: a deframing circuit coupled to the plurality of receiving virtual ports; wherein the deframing circuit is configured to unpack the plurality of fourth encapsulated frames to extract a plurality of output frames from the plurality of fourth encapsulated frames, and the plurality of output frames have a plurality of frame types, and each output frame has a header identifying a destination router / switch. Claim 11 A virtual network device according to claim 10, wherein the deframing circuit comprises a deframer configured to receive the fourth encapsulated frames from the plurality of receiving virtual ports and to unpack the fourth encapsulated frames to extract the input frames, and the framing circuit is further configured to output the input frames to a local router / switch. Claim 12 A method for operating a virtual network device, comprising: receiving a plurality of input frames; examining the plurality of input frames to determine a frame type for each input frame; determining a virtual exit device associated with each input frame based on the frame type; encapsulating the plurality of input frames to form a plurality of first encapsulated frames; determining a plurality of next hops in a virtual network for the plurality of first encapsulated frames based on virtual exit devices corresponding to the plurality of first encapsulated frames; encapsulating the plurality of first encapsulated frames at a plurality of transmitting virtual ports to form a plurality of second encapsulated frames; and selectively coupling one or more of the plurality of transmitting virtual ports to a network physical port based on whether a whole signal from one or more of the plurality of transmitting virtual ports has been received by a transmitting virtual switch. Claim 13 A method according to claim 12, further comprising the step of determining whether the entire signal from one or more of the plurality of transmitting virtual ports has been received by the transmitting virtual switch, wherein the entire signal indicates that at least a second encapsulated frame from one or more of the plurality of transmitting virtual ports is ready to be transmitted. Claim 14 In claim 13, the step of selectively coupling one or more of the plurality of transmitting virtual ports to a network physical port comprises the step of forwarding at least the second encapsulated frame from a transmitting virtual port that outputs the entire signal to the network physical port. Claim 15 A method according to claim 12, wherein each virtual exit device includes a receiving virtual port, and the plurality of first encapsulated frames include a plurality of headers, and the plurality of headers identify a plurality of virtual exit devices corresponding to the plurality of input frames. Claim 16 A method according to claim 12, wherein each second encapsulated frame includes a header, and the header of the second encapsulated frame identifies the next hop of the second encapsulated frame based on the receiving virtual port of the associated virtual exit device of the input frame and the next hop of the first encapsulated frame. Claim 17 In claim 12, the plurality of transmitting virtual ports include a first portion of shared memory, and the method comprises: receiving a plurality of third encapsulated frames; examining the plurality of third encapsulated frames to determine a plurality of frame destinations; comparing the plurality of frame destinations with a stored destination; forwarding the third encapsulated frames having matching destinations as matching encapsulated frames - the plurality of third encapsulated frames and the matching encapsulated frames have a plurality of headers, and the plurality of headers have a plurality of receiving virtual port identifiers -; switchingly transmitting the matching encapsulated frames based on the receiving virtual port identifiers in the headers of the matching encapsulated frames; extracting a plurality of fourth encapsulated frames from a plurality of matching encapsulated frames by unpacking the switchingly transmitted matching encapsulated frames in a plurality of receiving virtual ports so that each receiving virtual port unpacks the matching encapsulated frame to extract a fourth encapsulated frame - the receiving virtual ports include a second portion of the shared memory -; A method further comprising the step of unpacking the plurality of fourth encapsulated frames to extract a plurality of output frames from the plurality of fourth encapsulated frames, wherein the plurality of output frames have a plurality of frame types, and each output frame has a header identifying a destination router / switch. Claim 18 A non-transient computer-readable storage medium having embedded program instructions, wherein the program instructions, when executed by a processor, cause the processor to execute a method of operating a virtual network device, the method comprising: receiving a plurality of input frames; examining the plurality of input frames to determine a frame type for each input frame; determining a virtual exit device associated with each input frame based on the frame type; encapsulating the plurality of input frames to form a plurality of first encapsulated frames; determining a plurality of next hops in a virtual network for the plurality of first encapsulated frames based on virtual exit devices corresponding to the plurality of first encapsulated frames; encapsulating the plurality of first encapsulated frames at a plurality of transmitting virtual ports to form a plurality of second encapsulated frames; and selectively coupling one or more of the plurality of transmitting virtual ports to a network physical port based on whether a whole signal from one or more of the plurality of transmitting virtual ports has been received by a transmitting virtual switch. Claim 19 In claim 18, the method further comprises the step of determining whether the entire signal from one or more of the plurality of transmitting virtual ports has been received by the transmitting virtual switch, and the entire signal indicates that at least a second encapsulated frame from one or more of the plurality of transmitting virtual ports is ready to be transmitted, a non-transient computer-readable storage medium. Claim 20 In claim 18, the plurality of transmitting virtual ports comprises a first portion of shared memory, and the method comprises: receiving a plurality of third encapsulated frames; examining the plurality of third encapsulated frames to determine a plurality of frame destinations; comparing the plurality of frame destinations with a stored destination; forwarding the third encapsulated frames having matching destinations as matching encapsulated frames - the plurality of third encapsulated frames and the matching encapsulated frames have a plurality of headers, and the plurality of headers have a plurality of receiving virtual port identifiers -; switchingly transmitting the matching encapsulated frames based on the receiving virtual port identifiers in the headers of the matching encapsulated frames; extracting a plurality of fourth encapsulated frames from the plurality of matching encapsulated frames by unpacking the switchingly transmitted matching encapsulated frames in the plurality of receiving virtual ports so that each receiving virtual port unpacks the matching encapsulated frame to extract a fourth encapsulated frame - the receiving virtual ports comprise a second portion of the shared memory -; A non-transient computer-readable storage medium further comprising the step of unpacking the plurality of fourth encapsulated frames to extract a plurality of output frames from the plurality of fourth encapsulated frames, wherein the plurality of output frames have a plurality of frame types, and each output frame has a header identifying a destination router / switch.
Citation Information
Patent Citations
Method and apparatus for implementing and managing virtual switches
KR101460848B1
Virtual channels in a network switch
US20030026267A1
Virtual switching ports on high-bandwidth links
US20120093034A1
Methods, systems and apparatus for the interconnection of fibre channel over ethernet devices
US20140192812A1
Data forwarding
WO2015058699A1