Device, method, and system that virtualize network

JP2025028829AActive Publication Date: 2025-03-05PRIMEWAN LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024180748
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-04-02
Filing Date
2024-10-16
Publication Date
2025-03-05
Estimated Expiration
2041-02-18

AI Technical Summary

Benefits of technology

【0039】 本発明の利点の1つは、1つの物理送受信ポート内で複数のデータストリームを分けて扱えることである。たとえば、100Mbpsのデータレートを有する物理送受信ポートを使用して、10Mbpsのビデオ会議トラフィック、ERP用の50Mbps、上司用の30Mbps、及び部下用の10Mbpsを送信することができる。さらに、全てのトラフィックに対して「A~Z」のサービス品質(QoS)を保証することができる。さらなる利点は、本発明が正確なトラフィック制御を提供することである。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025028829000001_ABST
    Figure 2025028829000001_ABST
Patent Text Reader

Abstract

To provide a network device and a method for handling the traffic of an application that wishes to transfer data at a non-predetermined data rate.SOLUTION: A method for virtualizing a physical network port includes: generating a plurality of peering virtual ports in a plurality of peering physical ports; performing a determination relating to a data transfer rate that an application desires in a case where a decision relating to a request of use of a peering physical port of the application is affirmed; aggregating the plurality of peering virtual ports for generating a virtual network port at an operating system (OS) / application level allocated to the application in a case where a decision relating to the aggregation of the plurality of peering virtual ports is affirmed; and notifying an operating system interface of the virtual network port at the OS / application level allocated to the application at the request side.SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present application relates to the field of computer networks, and more particularly to network devices, methods, and systems for virtualizing a network. [Background technology]

[0002] A conventional computer system typically includes a network interface controller / card (NIC) that has the ability to connect the computer system to the Internet or other types of networks. A conventional NIC includes one or more 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, a conventional NIC negotiates the transfer speed of the network port, during which process the transfer speed of the network port is fixed.

[0003] One of the drawbacks of conventional NICs is that the predetermined fixed transfer rate of the port is inflexible to accommodate the traffic of applications that want to transfer data at a non-predetermined data rate. For example, the traffic of a video conferencing application may exceed the physical limitations of a network port, resulting in undesirable packet loss and delays, degrading the video conferencing experience of the user of the video conferencing application. As a result, there is a need for a technique to accommodate the traffic of applications that want to transfer data at a non-predetermined data rate. Summary of the Invention

[0004] The present invention provides a technique for handling traffic of applications that wish to transfer data at a non-predetermined data rate. The present invention provides a network device including a plurality of physical transmit / receive ports. The plurality of physical transmit / receive ports transfer data over a network at a predetermined fixed data rate. The network device also includes a virtual circuit coupled to the plurality of physical transmit / receive ports. The virtual circuit receives a first transfer request from a processor to transmit a first incoming data stream at the first non-predetermined data rate and establishes a first virtual port for receiving the first incoming data stream. The virtual circuit also selects one or more physical transmit / receive ports from the plurality of physical transmit / receive ports in response to the first transfer request to form one or more selected physical transmit / receive ports, where the one or more selected physical transmit / receive ports have a predetermined aggregate fixed data rate higher than the first non-predetermined data rate. The virtual circuit further receives the first incoming data stream from the processor via the virtual port after the one or more physical transmit / receive ports are selected. Furthermore, the virtual circuit forms one or more output data streams to flow at the predetermined fixed data rate. The one or more output data streams incorporate data from the first incoming data stream. The data from the first incoming data stream incorporated into the one or more output data streams is timed to selected pulses in a transmit clock signal that runs at a predetermined fixed data rate. Further, the virtual circuit routes the one or more output data streams to one or more selected physical transmit / receive ports.

[0005] The present invention also includes a method of operating a network device, the method including receiving a first transfer request from a processor to transmit a first incoming data stream at a first non-predetermined data rate, and establishing a virtual port for receiving the first incoming data stream. The method also includes selecting one or more physical transmit / receive ports from a plurality of physical transmit / receive ports to transmit data over the network at a predetermined fixed data rate to form one or more selected physical transmit / receive ports, the one or more selected physical transmit / receive ports having a predetermined total fixed data rate higher than the first non-predetermined data rate. The method further includes receiving the first incoming data stream from the processor via the virtual port after the one or more physical transmit / receive ports have been selected, and forming one or more output data streams to flow at the predetermined fixed data rate. The one or more output data streams incorporate data from the first incoming data stream. The data from the first incoming data stream incorporated in the one or more output data streams is timed to selected pulses in a transmit clock signal that flows at the predetermined fixed data rate. Additionally, the method includes forwarding the one or more output data streams to one or more selected physical transmit / receive ports.

[0006] The present invention also provides a network system, including a network, a first network device coupled to the network, and a second network device coupled to the network. The first network device has a plurality of first physical transmit / receive ports for forwarding data over the network at a predetermined fixed data rate, and a first virtual circuit coupled to the plurality of first physical transmit / receive ports. The first virtual circuit receives a first forwarding request from a processor to transmit a first incoming data stream at a first non-predetermined data rate, and establishes a virtual port for receiving the first incoming data stream. The first virtual circuit also selects one or more first physical transmit / receive ports from the plurality of first physical transmit / receive ports to form one or more selected first physical transmit / receive ports, where the one or more selected first physical transmit / receive ports have a predetermined aggregate fixed data rate higher than the first non-predetermined data rate. Furthermore, the first virtual circuit receives the first incoming data stream from the processor via the virtual port after the one or more first physical transmit / receive ports are selected. The first virtual circuit further forms one or more output data streams to flow at a predetermined fixed data rate. The one or more output data streams incorporate data from the first incoming data stream. The data from the first incoming data stream incorporated in the one or more output data streams is timed to selected pulses in a transmit clock signal that flows at the predetermined fixed data rate. The first virtual circuit further forwards the one or more output data streams to one or more selected physical transmit / receive ports. The second network device has a plurality of second physical transmit / receive ports for forwarding data over the network and a second virtual circuit coupled to the plurality of second physical transmit / receive ports. The second virtual circuit receives a first network request from the first virtual circuit to receive one or more output data streams at a first non-predetermined data rate from the one or more selected physical transmit / receive ports.The second virtual circuit also selects, in response to a request from the first virtual circuit, one or more second physical transmit / receive ports from the plurality of second physical transmit / receive ports to form one or more selected second physical transmit / receive ports corresponding to the one or more selected first physical transmit / receive ports, where the one or more selected second physical transmit / receive ports have a predetermined total fixed data rate higher than the first non-predetermined data rate, and further, the second virtual circuit receives one or more output data streams from the first network device using the selected one or more second physical transmit / receive ports.

[0007] A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description and the accompanying drawings, which set forth one exemplary embodiment in which the principles of the present invention are utilized. In order to provide a better description of the technical means of the present application for carrying out the present application in accordance with the contents of this specification, and to make the above and other objects, features, and advantages of the present application more easily understandable, specific embodiments of the present application are set forth below. [Brief description of the drawings]

[0008] Various other advantages and benefits will become apparent to those skilled in the art upon reading the detailed description of the preferred embodiments in the following text. The drawings are only for illustrating the preferred embodiments and are not to be construed as limiting the present application. Also, the same reference numerals are used throughout the drawings to denote the same parts. [Figure 1] FIG. 1 is a block diagram illustrating an example of a network device 100 in accordance with the present invention. [Diagram 2] FIG. 2 is a timing diagram illustrating an example of clocking data from an incoming data stream to selected pulses in a transmit clock signal in accordance with the present invention. [Diagram 3] FIG. 3 is a block diagram illustrating an example of a network device 300 in accordance with the present invention. [Figure 4]FIG. 4 is a timing diagram illustrating an example in which data from two incoming data streams are clocked onto selected pulses in a transmit clock signal in accordance with the present invention. [Diagram 5] FIG. 5 is a block diagram illustrating an example of a network device 500 in accordance with the present invention. [Figure 6A] FIG. 6A is a timing diagram illustrating an example in which data from three incoming data streams are clocked onto selected pulses in a transmit clock signal in accordance with the present invention. [Figure 6B] FIG. 6B is a timing diagram illustrating an example of a token bucket timing diagram in accordance with the present invention. [Figure 7] FIG. 7 is a block diagram illustrating an example of a network device 700 in accordance with the present invention. [Figure 8] FIG. 8 is a timing diagram illustrating an example of splitting data within a data stream in accordance with the present invention. [Figure 9] FIG. 9 is a flow chart illustrating one example of a method 900 for operating a virtual circuit in accordance with the present invention. [Figure 10] FIG. 10 is a block diagram illustrating an example of a network system 1000 in accordance with the present invention. [Figure 11] FIG. 11 is a block diagram illustrating an example of a communications network 1100 in accordance with the present invention. [Figure 12] FIG. 12 is a flow chart illustrating one example of a method 1200 for virtualizing one or more physical network ports (or interfaces) in a communication network in accordance with the present invention. [Figure 13] FIG. 13 is a block diagram illustrating an example of a computing system 1300 in accordance with the present invention. BEST MODE FOR CARRYING OUT THEINVENTION

[0009] Exemplary embodiments of the present disclosure will be described in more detail with reference to the drawings. Although exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments described herein. Instead, these embodiments are provided to provide a more complete understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.

[0010] 1 illustrates a block diagram of an example network device 100 in accordance with the present invention. As described in more detail below, a virtual circuit within the network device enables multiple data streams having non-predetermined data rates lower than the predetermined fixed data rate to be combined for output from a single network port, and a single data stream having a non-predetermined data rate higher than the predetermined fixed data rate to be split for output from two or more network ports, by reformatting one or more incoming data streams at non-predetermined data rates into one or more outgoing data streams at predetermined fixed data rates.

[0011] 1, network device 100 includes a virtual circuit 110 that reformats incoming data streams, and a set of physical transmit and receive ports PP for sending and receiving the reformatted data streams coupled to virtual circuit 110. In the current example, three physical transmit and receive ports PP1-PP3 are shown, although other numbers of ports can be used.

[0012] The virtual circuit 110 includes processing, switching, buffering, and timing circuits, including software modules as appropriate. The physical transmit / receive ports PP transfer data over the network 112 at a predetermined fixed data rate, which may include, for example, one or more of 10 / 100 / 1000 Mbps (megabits per second), 10 Gbps (gigabits per second), 40 Gbps, and 100 Gbps.

[0013] In operation, virtual circuit 110 receives a first transfer request from an application executing on the processor to send a first incoming data stream to a remote device at a first non-predetermined data rate over network 112. The first non-predetermined data rate can be any non-standard data rate, such as 16 Mbps or 128 Mbps.

[0014] In response to the first transfer request, the virtual circuit 110 establishes a virtual port VP1 for receiving the first incoming data stream from the processor. For example, establishing the virtual port may include allocating an amount of memory to act as a FIFO buffer for the first incoming data stream. Additionally, the virtual circuit 110 selects one or more physical transmit / receive ports PP having a predetermined total fixed data rate that is higher than the first non-predetermined data rate.

[0015] 1, if a first undetermined data rate (e.g., 16 Mbps) of a first incoming data stream is lower than a predetermined fixed data rate (e.g., 100 Mbps) of a physical transmit / receive port PP, then the virtual circuit 110 selects a physical transmit / receive port PP, such as physical transmit / receive port PP1, that has a predetermined fixed data rate (e.g., 100 Mbps) higher than the first undetermined data rate (e.g., 16 Mbps) of the first incoming data stream. Following the selection, the virtual circuit 110 modifies the switching circuitry to couple the virtual port VP1 to the physical transmit / receive port PP1 by the processing, buffering, and timing circuitry of the virtual circuit 110.

[0016] Following this, virtual circuit 110 returns an acknowledgment of approval of the first transfer request to the processor, then receives the first incoming data stream via virtual port VP1 at a first, undetermined data rate, and then forms one or more output data streams at a predetermined fixed data rate incorporating data from the first incoming data stream.

[0017] Data from the first incoming data stream embedded in the one or more outgoing data streams is timed to selected pulses in a transmit clock signal that runs at a predetermined fixed data rate. Upon completion, virtual circuit 110 forwards the one or more outgoing data streams to one or more selected physical transmit / receive ports.

[0018] 2 shows a timing diagram illustrating an example of clocking data from an incoming data stream into selected pulses in a transmit clock signal in accordance with the present invention. The example in FIG. 2 shows a transmit clock signal 210 operating at a predetermined fixed rate of 10 cycles per second.

[0019] If the virtual circuit receives a data stream from a virtual port having an undetermined data rate of 2 cycles / second, it clocks the data from the first two clock cycles of the data stream into the first two clock cycles of the ten predetermined fixed cycles of the transmit clock signal 210, as shown in row 212.

[0020] Additionally, as shown in row 214 of Figure 2, the buffered data from the first two clock cycles of the data stream can be clocked at any of 10 predetermined fixed clock cycles per second. The example in Figure 2 is a simplified example to illustrate timing. In practice, a virtual port may receive a data stream having, for example, a data rate of 16 Ghz, which is buffered and clocked as shown in Figure 2 and output to a physical transmit / receive port having a predetermined fixed data rate of 100 Ghz.

[0021] 1, at a later time, virtual circuit 110 may receive a second transfer request from an application executing on the processor to transmit a second incoming data stream to a remote device at a second non-predetermined data rate over network 112. The second non-predetermined data rate may be the same or different from the first non-predetermined data rate.

[0022] In response to the second transfer request, the virtual circuit 110 establishes a virtual port VP2 for receiving the second incoming data stream from the processor. For example, establishing the virtual port may include allocating an amount of memory to act as a FIFO buffer for the second incoming data stream. Additionally, the virtual circuit 110 determines whether the selected physical transmit / receive port PP1 has an available data rate that is higher than the second non-predetermined data rate.

[0023] For example, the virtual circuit 110 can determine whether the selected physical transmit / receive port PP1 has an available data rate higher than the second unpredetermined data rate by subtracting a first unpredetermined data rate (e.g., 16 Mbps) of the first incoming data stream from a predetermined fixed data rate (e.g., 100 Mbps) to obtain an available data rate (e.g., 84 Mbps), and then comparing the available data rate (e.g., 84 Mbps) with a second unpredetermined data rate (e.g., 32 Mbps) to determine whether the available data rate (e.g., 84 Mbps) is higher than the second unpredetermined data rate (e.g., 32 Mbps).

[0024] If the available data rate of the selected physical transmit / receive port PP1 is higher than a second, non-predetermined data rate, then virtual circuit 110 changes its switching circuitry to couple both virtual port VP1 and virtual port VP2 to physical transmit / receive port PP1 via the processing, buffering, and timing circuitry of virtual circuit 110.

[0025] 3 shows a block diagram of an example of a network device 300 according to the present invention. Because network device 300 is similar to network device 100, the same reference numbers are used to indicate structures common to both network devices. As shown in FIG. 3, network device 300 differs from network device 100 in that virtual circuit 110 has received a second transfer request, established a second virtual port VP2, determined that physical transmit / receive port PP1 has an available data rate, and connected both the first and second incoming data streams to physical transmit / receive port PP1 through the processing, switching, buffering, and timing circuitry of virtual circuit 110.

[0026] Following this, virtual circuit 110 returns an acknowledgment of the second transfer request to the processor, then receives the second incoming data stream via virtual port VP2 at a second, non-predetermined data rate, and then generates a modified output data stream at a predetermined fixed data rate incorporating data from both the first and second incoming data streams. As previously described, the first and second incoming data streams are clocked to the selected transmit clock signal. Virtual circuit 110 then forwards the modified output data stream to the selected physical transmit / receive port.

[0027] The predetermined fixed data rate has a data rate of x bits / sec. In one embodiment, the virtual circuit 110 subdivides the predetermined fixed data rate of x bits / sec of the physical transmit / receive port into fractional parts, allocates the fractional parts to first and second incoming data streams having non-predetermined data rates lower than the predetermined fixed data rate of the physical transmit / receive port, and combines the fractional parts such that the total bits / sec of the combined data streams is less than or equal to the predetermined fixed data rate of x bits / sec of the physical transmit / receive port.

[0028] For example, if the first undetermined data rate is 16 Mbps and the second undetermined data rate is 32 Mbps, then a fraction of 100 Mbps, 16 Mbps, is mapped to the first undetermined data rate, while a fraction of 100 Mbps, 32 Mbps, is mapped to the second undetermined data rate.

[0029] 4 shows a timing diagram illustrating an example in which data from two incoming data streams are clocked onto selected pulses in a transmit clock signal in accordance with the present invention. The example of FIG. 4 shows a transmit clock signal 410 running at a predetermined fixed rate of 10 cycles per second.

[0030] If a virtual circuit receives a data stream from a first virtual port having an undetermined data rate of 2 cycles / second and a data stream from a second virtual port having an undetermined data rate of 3 cycles / second, then the virtual circuit will clock data from the first two clock cycles of the first data stream into the first two clock cycles of the ten predetermined fixed cycles of transmit clock signal 410 and clock data from the first three clock cycles of the second data stream into the third, fourth, and fifth clock cycles of the ten predetermined fixed cycles of transmit clock signal 410, as shown in row 412.

[0031] Further, as shown in row 414 of Figure 4, the data buffered from the first two clock cycles of the first data stream and the data buffered from the first three clock cycles of the second data stream can be clocked at any of 10 predetermined fixed cycles per second. The example of Figure 4 is a simplified example to explain the timing. In practice, virtual ports VP1 and VP2 may receive data streams having data rates of, for example, 16 Ghz and 32 Ghz, respectively, and the data streams are clocked as shown in Figure 4 and output to physical transmit / receive ports having a predetermined fixed data rate of 100 Ghz.

[0032] 5 shows a block diagram of an example of a network device 500 according to the present invention. Because network device 500 is similar to network device 300, the same reference numbers are used to indicate structures common to both network devices. As shown in FIG. 5, network device 500 differs from network device 300 in that virtual circuit 110 has received a third forwarding request, established a third virtual port VP3, determined that physical transmit / receive port PP1 has an available data rate, and connected the first, second, and third incoming data streams to physical transmit / receive port PP1 through the processing, switching, buffering, and timing circuitry of virtual circuit 110.

[0033] Figure 6A shows a timing diagram illustrating an example in which data from three incoming data streams are clocked onto selected pulses in a transmit clock signal in accordance with the present invention. The example of Figure 6A shows a transmit clock signal 610 operating at a predetermined fixed rate of 10 cycles per second.

[0034] If a virtual circuit receives a data stream from a first virtual port having an unpredetermined data rate of 2 cycles / second, a data stream from a second virtual port having an unpredetermined data rate of 3 cycles / second, and a data stream from a third virtual port having an unpredetermined data rate of 4 cycles / second, the virtual circuit will clock data from the first two clock cycles of the first data stream into the first two clock cycles of the ten predetermined fixed cycles per second, clock data from the first three clock cycles of the second data stream into the third, fourth, and fifth clock cycles of the ten predetermined fixed cycles per second, and clock data from the first four clock cycles of the third data stream into the sixth, seventh, eighth, and ninth clock cycles of the ten predetermined fixed cycles per second, as shown in row 412. The last cycle in this example is empty. Ideally, the virtual ports are grouped so that all of the predetermined fixed clock cycles are utilized.

[0035] Additionally, as shown in row 614 of FIG. 6A, data from the first two clock cycles of the first data stream, data from the first three clock cycles of the second data stream, and data from the first four clock cycles of the third data stream can be clocked into any of ten predetermined fixed cycles of the transmit clock signal 610.

[0036] The example of Figure 6A is a simplified example to illustrate the timing. In reality, virtual ports VP1, VP2, and VP3 may receive data streams having data rates of, for example, 16 Ghz, 32 Ghz, and 48 Ghz, respectively, which are clocked as shown in Figure 6A and output to physical transmit / receive ports having a predetermined fixed data rate of 100 Ghz.

[0037] Referring again to FIG. 5, as described above, a virtual port may include a certain amount of memory that serves as a FIFO buffer for an incoming data stream with a non-predetermined data rate. The FIFO buffer that receives the incoming data stream may alternately operate as a token bucket, where the token bucket is periodically filled with tokens and emptied when full. The tokens may be implemented, for example, by data packets. When the token bucket becomes full, the virtual circuit 110 transfers all tokens from the bucket to the physical transmit / receive port at the physical transmit / receive port's predetermined fixed data rate.

[0038] FIG 6B shows a timing diagram illustrating an example of a token bucket timing diagram in accordance with the present invention. In the example of FIG 6B, each pulse represents the number of packets in a clock cycle, and each token bucket holds two tokens or data packets. As shown in FIG 6B, virtual circuit 110 empties the VP1 token bucket, followed by empties the VP2 and VP3 buckets in the same manner, by clocking the two VP1 packet data streams to selected pulses in the transmit clock signal and outputting the clocked data streams to the physical transmit / receive ports at the physical transmit / receive ports' predetermined fixed data rate.

[0039] One advantage of the present invention is that it can handle multiple data streams separately within one physical transmit / receive port. For example, a physical transmit / receive port with a data rate of 100Mbps can be used to transmit 10Mbps video conference traffic, 50Mbps for ERP, 30Mbps for superiors, and 10Mbps for subordinates. In addition, it can guarantee a quality of service (QoS) of "A to Z" for all traffic. A further advantage is that the present invention provides precise traffic control.

[0040] 7 shows a block diagram of an example of a network device 700 according to one embodiment of the present invention. Because network device 700 is similar to network device 500, the same reference numbers are used to indicate structures common to both network devices.

[0041] As shown in Figure 7, the virtual circuit 110 receives a fourth transfer request from an application running on the processor to transmit a fourth incoming data stream to a remote device over the network 112 at a fourth non-predetermined data rate. In response to the fourth transfer request, the virtual circuit 110 establishes a virtual port VP4 for receiving the fourth incoming data stream from the processor. For example, establishing the virtual port may include allocating a certain amount of memory to act as a FIFO buffer for the fourth incoming data stream. Additionally, the virtual circuit 110 selects one or more physical transmit / receive ports PP from the number of physical transmit / receive ports PP that have a predetermined total fixed data rate higher than the first non-predetermined data rate.

[0042] As shown in FIG. 7, if the fourth undetermined data rate of the fourth incoming data stream (e.g., 128 Mbps) is higher than the predetermined fixed data rate of the physical transmit / receive port PP (e.g., 100 Mbps), the virtual circuit 110 selects two or more physical transmit / receive ports, e.g., physical transmit / receive ports PP2 and PP3, where the two or more selected physical transmit / receive ports have a predetermined total fixed data rate higher than the fourth undetermined data rate of the fourth incoming data stream.

[0043] Following this, the virtual circuit 110 returns an acknowledgment of approval of the fourth transfer request to the processor, then receives a fourth incoming data stream via virtual port VP4 at a fourth, undetermined data rate, and then splits the fourth incoming data stream received from virtual port VP4 into two or more split data streams corresponding to the two or more selected physical transmit / receive ports PP2 and PP3, where each of the two or more split data streams has a data rate lower than the predetermined fixed data rate.

[0044] Virtual circuit 110 then forms two or more output data streams to flow at a predetermined fixed data rate, where the two or more output data streams incorporate data from the two or more split data streams. The data from the split data streams incorporated into the two or more output data streams is clocked to selected pulses in the transmit clock signal. Upon completion, virtual circuit 110 forwards the two or more output data streams to two or more selected physical transmit / receive ports PP2 and PP3.

[0045] Figure 8 shows a timing diagram illustrating an example of splitting the data in a data stream in accordance with the present invention. As shown in Figure 8, after virtual circuit 110 has been assembled into an output data stream as described above, it can split the data in the data stream in two by, for example, forwarding all odd bits to physical port PP2 and all even bits to physical port PP3. The split effectively creates two smaller data streams with lower data rates.

[0046] Alternatively, virtual circuit 110 may split the data in the data stream by forwarding data at a data rate (e.g., 100 Mbps) that matches the predetermined fixed data rate (e.g., 100 Mbps) of physical port PP2 and forwarding the remaining data at a data rate (e.g., 28 Mbps) to physical port PP3, as described above. In most cases, the number of physical transmit / receive ports PP will be the minimum number required to accommodate the fourth, non-predetermined data rate.

[0047] 9 illustrates a flow chart of an example method 900 of operating a virtual circuit in accordance with the present invention. As shown in FIG. 9, the method 900 begins at 910 by receiving a first transfer request from a processor to transmit a first incoming data stream at a first non-predetermined data rate. The first non-predetermined data rate can be any non-standard data rate, such as 16 Mbps or 128 Mbps.

[0048] The method 900 then proceeds to 912, where it establishes a virtual port for receiving the first incoming data stream. Thereafter, the method 900 proceeds to 914, where it selects one or more physical transmit / receive ports from the plurality of physical transmit / receive ports that transmit data over the network at a predetermined fixed data rate to form one or more selected physical transmit / receive ports, where the one or more selected physical transmit / receive ports have a predetermined aggregate fixed data rate that is higher than the first non-predetermined data rate.

[0049] Following this, the method 900 proceeds to 916 to receive a first incoming data stream from the processor after one or more physical transmit / receive ports have been selected, and then proceeds to 920 to form one or more outgoing data streams to flow at a predetermined fixed data rate. The one or more outgoing data streams incorporate data from the first incoming data stream. The data from the first incoming data stream incorporated into the one or more outgoing data streams is timed to selected pulses in a transmit clock signal that flows at the predetermined fixed data rate. The method then proceeds to 922 to forward the one or more outgoing data streams to the one or more selected physical transmit / receive ports.

[0050] If the first non-predetermined data rate of the first incoming data stream is lower than the predetermined fixed data rate of the physical transmit / receive port, the method 900 selects a physical transmit / receive port from the plurality of physical transmit / receive ports to form a selected physical transmit / receive port, where the selected physical transmit / receive port has a predetermined fixed data rate higher than the first non-predetermined data rate of the first incoming data stream. Further, the method 900 forms an output data stream to flow at the predetermined fixed data rate corresponding to the selected physical transmit / receive port. The output data stream incorporates data from the incoming data stream. The data from the incoming data stream incorporated in the output data stream is timed to a selected pulse in the transmit clock signal.

[0051] If the first non-predetermined data rate of the first incoming data stream is higher than the predetermined fixed data rate of the physical transmit / receive port, the method 900 selects two or more physical transmit / receive ports from the plurality of physical transmit / receive ports, where the two or more selected physical transmit / receive ports have a total predetermined fixed data rate that is higher than the non-predetermined data rate of the incoming data stream.

[0052] Additionally, the method 900 splits an incoming data stream received from the virtual port into two or more split data streams corresponding to two or more selected physical transmit / receive ports. Each of the two or more split data streams has a lower non-predetermined data rate than the non-predetermined data rate of the incoming data stream. Additionally, the method 900 forms two or more output data streams to flow at a predetermined fixed data rate. The two or more output data streams incorporate data from the two or more split data streams. The data from the split data streams incorporated into the two or more output data streams is timed to a selected pulse in the transmit clock signal.

[0053] 9, the method 900 then proceeds to 924 receiving a second transfer request from the processor to transmit the second incoming data stream at a second non-predetermined data rate that is lower than the fixed predetermined data rate of the selected physical transmit / receive port, after which the method 900 proceeds to 926 to determine whether the selected physical transmit / receive port has an available data rate that is higher than the second non-predetermined data rate.

[0054] After determining the available data rate, method 900 proceeds to 930 receiving a second incoming data stream from the processor. If the available data rate of the selected physical transmit / receive port is higher than the second non-predetermined data rate, method 900 proceeds to 932 generating a reshaped output data stream incorporating data from the first incoming data stream and the second incoming data stream, where the data from the first incoming data stream and the second incoming data stream are timed to the selected transmit clock signal. Following this, method 900 proceeds to 934 forwarding the reshaped output data stream to the selected physical transmit / receive port. In one embodiment, method 900 can be stored in a non-transitory computer readable storage medium having embedded therein program instructions that, when executed by a processor, cause the processor to perform method 900.

[0055] 10 shows a block diagram of an example of a network system 1000 according to the present invention. The network system 1000 includes a first network device, a second network device, and a network that interconnects the first and second network devices 1010A and 1010B.

[0056] 10, the first network device may be implemented with network device 700, which is represented as 700A, with 110 represented as 110A, PP1-PP3 represented as PP1A-PP3A, and VP1-VP4 represented as VP1A-VP4A. Similarly, the second network device may be implemented with network device 700, which is represented as 700B, with 110 represented as 110B, PP1-PP3 represented as PP1B-PP3B, and VP1-VP4 represented as VP1B-VP4B.

[0057] In operation, virtual circuit 110A receives a first transfer request from an application executing on the processor to send a first incoming data stream to a remote device at a first non-predetermined data rate over network 112. The first non-predetermined data rate can be any non-standard data rate, such as 16 Mbps and 128 Mbps.

[0058] In response to the first transfer request, the virtual circuit 110A establishes a virtual port VP1 for receiving a first incoming data stream from the processor, and then selects one or more physical transmit / receive ports PPA from the number of physical transmit / receive ports PPA having a predetermined total fixed data rate higher than the first non-predetermined data rate.

[0059] Following this, virtual circuit 110A returns an acknowledgment of approval of the first transfer request to the processor, then receives the first incoming data stream via virtual port VP1A at a first, non-predetermined data rate, and then forms an output data stream at a predetermined fixed data rate incorporating data from the first incoming data stream.

[0060] Data from the first incoming data stream embedded in the outgoing data stream is timed to selected pulses in a transmit clock signal running at a predetermined fixed data rate. Upon completion, virtual circuit 110A forwards the one or more outgoing data streams to one or more selected physical transmit / receive ports which in turn transmit the one or more outgoing data streams over network 112 to second network device 700B.

[0061] Prior to transmitting the output data stream over the network 112, the selected physical transmitting / receiving device PP1A of the first network device 700A transmits a network request to the second network device 700B to receive one or more output data streams at a first non-predetermined data rate from one or more selected physical transmitting / receiving ports.

[0062] The virtual circuit 110B of the second network device 700B receives a first network request and, in response thereto, selects one or more second physical transmit / receive ports from a set of second physical transmit / receive ports corresponding to the one or more selected first physical transmit / receive ports, where the one or more selected second physical transmit / receive ports have a predetermined total fixed data rate that is higher than the first non-predetermined data rate.

[0063] Following this, the virtual circuit 110B returns an acknowledgment of approval of the first network request to the first network device 700A, and then receives one or more output data streams at the first non-predetermined data rate via the physical transmit / receive ports PP1B-PP3B.

[0064] Virtual circuit 110B then extracts the data from the first incoming data stream embedded within the one or more outgoing data streams from the one or more outgoing data streams to form one or more reconstructed data streams flowing at a first non-predetermined fixed data rate, the one or more reconstructed data streams substantially matching the one or more first incoming data streams. Virtual circuit 110B then forwards the one or more reconstructed data streams to the second processor.

[0065] If the first non-predetermined data rate of the first incoming data stream is lower than the predetermined fixed data rate of the physical transmit / receive port PPA, the first virtual circuit 110A selects a first physical transmit / receive port PP1A from the set of first physical transmit / receive ports to form a selected first physical transmit / receive port, where the selected first physical transmit / receive port has a predetermined fixed data rate higher than the first non-predetermined data rate of the first incoming data stream. Further, the second virtual circuit 110B selects a second physical transmit / receive port PP1B from the set of second physical transmit / receive ports to form a selected second physical transmit / receive port, where the selected second physical transmit / receive port has a corresponding selected first physical transmit / receive port PP1A and has a predetermined fixed data rate higher than the first non-predetermined data rate of the first incoming data stream.

[0066] If the first non-predetermined data rate of the first incoming data stream is higher than the predetermined fixed data rate of the physical transmit / receive port, the first virtual circuit 110A selects two or more first physical transmit / receive ports, e.g., PP2A and PP3A, from the plurality of first physical transmit / receive ports, where the two or more selected first physical transmit / receive ports have a predetermined total fixed data rate higher than the non-predetermined data rate of the incoming data stream. Further, the second virtual circuit 110B selects two or more second physical transmit / receive ports, e.g., PP2B and PP3B, from the plurality of second physical transmit / receive ports corresponding to the selected two or more first physical transmit / receive ports, where the two or more selected second physical transmit / receive ports have a predetermined total fixed data rate higher than the non-predetermined data rate of the incoming data stream.

[0067] 11 illustrates a block diagram of an example of a communications network 1100 in accordance with the present invention. The communications network 1100 may include constructing or creating one or more virtualized elastic physical ports, including but not limited to for fixed line networks, in accordance with various embodiments of the present disclosure.

[0068] Communications network 1100 may include, but is not limited to, a network device or system 1102 communicatively coupled to a network device or system 1106. In various embodiments, each of network devices 1102 and 1106 may be implemented as, but is not limited to, a computer system, a network switch system, a network router system, a network communication device, and a computing system.

[0069] Each of network devices 1102 and 1106 may include at least one network card (which may also be referred to as, without limitation, a network interface controller (NIC), a network interface card (NIC), a network adapter, a local area network (LAN) adapter, or a physical network interface) that may include one or more physical network ports.

[0070] Additionally, network devices 1102 and 1106 may each include other functionality, including but not limited to an operating system running on a processor (e.g., 1104 or 1152), one or more applications running on the processor, etc. In various embodiments, communication network 1100 may be part of an autonomous system (AS), which refers to a network or collection of networks administered by an entity or organization, which may be an Internet Service Provider (ISP) or a customer entity that subscribes to the services of an ISP.

[0071] Specifically, network device 1102 may include processor 1104, physical network ports 1 and 2 of network card B that may be coupled to processor 1104, and memory 1146 (not shown) coupled to processor 1104 and to physical network ports 1 and 2 of network card B. Network card B may be implemented with one or more physical network ports similar to physical network ports 1 and 2.

[0072] In various embodiments, each of physical network ports 1 and 2 may be implemented as a Layer 2 network port, but is not limited to such. Note that network device (or system) 1106 may be implemented similarly to that described above with reference to network device 1102. However, some elements are not shown in FIG.

[0073] In various embodiments, the network device 1106 may include physical network ports 1′ and 2′ of network card A. However, network card A may be implemented with one or more physical network ports similar to physical network ports 1′ and 2′. Additionally, in various embodiments, the network device 1106 may include memory 1148, which may be coupled to network card A and physical network ports 1′ and 2′. The network device 1106 may also include a processor 1152 coupled to the memory 1148 and to network card A and physical network ports 1′ and 2′.

[0074] In various embodiments, the memory 1146 of the network device 1102 stores instructions 1150 that, when executed by the processor 1104, cause the processor 1104 to perform a method for virtualizing one or more of the physical network ports of the network device 1102. Further, in various embodiments, the memory 1148 of the network device 106 stores instructions 1150 that, when executed by the processor 1152, cause the processor 1152 to perform a method for virtualizing one or more of the physical network ports of the network device 1106.

[0075] In various embodiments, network ports 1 and 1' are peering ports, while network ports 2 and 2' are also peering ports, but are not limited to such. Instructions 1150 (e.g., software, firmware, hardware, or any combination thereof), in various embodiments, may be used to create and manage virtualization within communications network 1100. Further, in various embodiments, instructions 1150 may be installed in one or more chips within a Field Programmable Gate Array (FPGA) board and may operate at a physical level, but are not limited to such.

[0076] 11, multiple virtual ports are generated or created on one or more of peering physical ports 1 and 1' and peering physical ports 2 and 2'. The generation of multiple virtual ports can be performed in a variety of different ways according to various embodiments of the present disclosure.

[0077] For example, in various embodiments, on one or more of peering physical ports 1 and 1' and peering physical ports 2 and 2', multiple virtual ports are created that conform to, but are not limited to, the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, except for the data transfer rate of the network ports.

[0078] The data transfer rate of each virtual port may be a data transfer rate lower than the maximum data transfer rate of the corresponding peering physical port (e.g., 1 and 1'). For example, standard physical port data transfer rates are 10 Mbps (megabits per second), 100 Mbps, 1 Gbps (gigabits per second), 40 Gbps, and 100 Gbps. However, in various embodiments, the traffic rates of the virtual ports may be, but are not limited to, 2 Mbps, 33 Mbps, 560 Mbps, 24 Gbps, and 86 Gbps.

[0079] Further, in various embodiments, the data speed / traffic rate of the virtual ports may be defined through IEEE 802.11 protocols and negotiation between peering virtual ports a and a', ports b and b', etc. Further, in various embodiments, the data transfer rate of each of the multiple virtual ports (e.g., virtual ports a, b, c, and d) may be a fraction of the maximum data transfer rate of the corresponding physical network port (e.g., network card B port 1).

[0080] For example, within the communication network 1100, a virtualized port (e.g., virtual port a) is defined to conform to, but is not limited to, the IEEE 802.11 protocol, and the transfer bit rate of virtual port a is changed to a negotiated rate (e.g., 11 Gigabits per second (Gbps)). Specifically, in various embodiments, a physical port (e.g., network card B port 1) of the network device or system 1102 can be divided into multiple virtual ports (e.g., virtual ports a, b, c, and d), each of which conforms to, but is not limited to, the IEEE 802.11 protocol. For example, if the physical port 1 of the network card B has a transfer bit rate of 100 Megabits per second (Mbps), various embodiments can divide it into 100 virtual ports (not currently shown), each of which has a transfer bit rate of 1 Mbps.

[0081] In various embodiments, once these 100 virtual ports are established, various embodiments allow any number of these virtual ports to be aggregated together to create new higher data transfer rate virtual ports capable of handling a particular negotiated data transfer rate (e.g., 11 Gbps) for a particular connection or customer.

[0082] It should further be noted that in various embodiments, the mutual integration of virtual ports can be achieved across multiple physical ports of a network communication device. Also, in various embodiments, the mutual integration of virtual ports can be achieved across different communication layers. After these types of virtualization are performed, each physical port is replaced with multiple virtualized ports.

[0083] In various embodiments, the virtualized ports can be used in, but are not limited to, all traffic management, port-based orchestration, software-defined networking (SDN), software-defined wide area network (SD-WAN), and network virtualization. Additionally, in various embodiments, the virtual ports can be utilized to facilitate quality of service (QoS) control and build end-to-end traffic provisioning to improve network efficiency.

[0084] As noted above, the creation of multiple virtual ports can be implemented in a variety of ways according to various embodiments of the present disclosure. For example, in various embodiments, multiple virtual ports (e.g., virtual ports e, f, and g) can be created (or created) on the peering physical ports (2 and 2') by maintaining a MAC (Media Access Control) forwarding table (e.g., which may be used in a Layer 2 switch system) for controlling data package forwarding from the physical port to the virtual port.

[0085] Additionally, multiple virtual ports (e.g., virtual ports e, f, and g) can be generated (or created) at the peering physical ports (2 and 2') by utilizing time slots to control the data transfer rate between the physical port and the virtual port. In various embodiments, the physical port is "split" into multiple virtual ports. For example, the base clock cycle can then be multiplied by 5 milliseconds (ms), which means that one virtual port is 1 / 5 of the maximum data rate of the peering physical port.

[0086] In various embodiments, virtualized ports can be created (or generated) using time division multiple access (TDMA) to implement virtual ports with a data rate of 1 / x the maximum data rate of the peering physical port. Furthermore, each of the virtual ports is made to function or operate like a physical port. Multiple virtual ports (e.g., virtual ports a, b, c, and d) can be created or generated within a physical port (e.g., network card B port 1) using TDMA, so that multiple virtual ports can be managed and combined to form flexible virtual ports.

[0087] Additionally, in various embodiments, flexible virtual ports can be created across virtual ports (e.g., virtual ports d and e) that span or include multiple physical ports (network card B ports 1 and 2). Based on this functionality of various embodiments, virtual fibers / lines can be created and virtualization can be achieved across the telecommunications network.

[0088] 11 points out that in various embodiments, virtual port A is an operating system (OS) and application level virtual network port that can directly use virtual ports a, a′ via OS interface 1108. Additionally, in various embodiments, virtual port B is also an OS and application level virtual network port that can directly use aggregated virtual ports b, b′ and c, c′ via OS interface 1108.

[0089] When OS 1104 sees virtual port B, it only sees a single port with the combined data transfer rate of virtual ports b, b' and c, c', and not the two virtual ports b, b' and c, c'. Also, in various embodiments, virtual port C is also an OS and application level virtual network port that can directly use virtual ports d, d' and e, e' and f, f' that are aggregated via OS interface 1108.

[0090] Virtual port C is created by aggregating (or aggregating) multiple virtual ports (e.g., d, d' and e, e' and f, f') across two physical ports (e.g., network card B ports 1 and 2). Thus, when OS 104 looks at virtual port C, it only sees a single port with the combined data transfer rate of virtual ports d, d' and e, e' and f, f', and not the three virtual ports b, b' and c, c'. Note that in various embodiments, each of virtual ports B and C is the result of a first layer aggregation 1110.

[0091] In various embodiments, virtual port D is also an OS and application level virtual network port, which can directly use virtual ports b, b' and c, c' and d, d' and e, e' and f, f' that are aggregated (or consolidating) via OS interface 1114. Virtual port D is created by aggregating (or consolidating) multiple virtual ports (e.g., b, b' and c, c' and d, d' and e, e' and f, f') across two physical ports (e.g., network card B ports 1 and 2).

[0092] Furthermore, virtual port D is the result of a layer 2 aggregation 1112 of virtual ports B and C. Thus, when OS 1104 looks at virtual port D, it only sees a single port with the combined data transfer rate of virtual ports b, b', c, c', d, d', e, e', and f, f', and not the five virtual ports b, b', c, c', d, d', e, e', and f, f'.

[0093] In various embodiments, there is no limit to the amount of aggregation layers (e.g., layer 3, layer 4, etc.) that can be implemented within the communication network 1100. Furthermore, it is noted that in various embodiments, the data transfer rates (e.g., which may be different data transfer rates) of the virtual ports (e.g., a, a' and b, b' and c, c' and d, d' and e, e' and f, f') can be combined in any manner to create or generate and define virtual ports of any data rate rate. In various embodiments, the virtual aggregate ports can be dynamic virtualized across physical ports. The operating system 1104 can obtain information regarding the number of available virtual ports along with their corresponding data transfer rates from instructions 1150.

[0094] There are benefits associated with the functionality of the communication network 1100 as described herein according to various embodiments. For example, virtualized network ports (e.g., which function as physical ports) can provide flexible network orchestration. Furthermore, each physical network port can support multiple virtualized ports that function like a physical port and can distribute different applications and traffic to different virtual ports. Furthermore, different data rate rates can be defined or set to maintain quality of service (QoS) and control data traffic. Also, in various embodiments, more functionality can be added to different virtual ports for special management.

[0095] Figure 12 illustrates a flow chart of an example method 1200 for virtualizing one or more physical network ports (or interfaces) in a communications network in accordance with the present invention. Although specific operations are disclosed in Figure 12, such operations are examples. Method 1200 may not include all of the operations illustrated in Figure 12. Additionally, method 1200 may include various other operations and / or variations of the illustrated operations.

[0096] Similarly, the order of the operations of method 1200 may be changed. Not all operations of method 1200 may be performed. In various embodiments, one or more of the operations of method 1200 may be controlled or managed by, but is not limited to, software, firmware, hardware, or any combination thereof.

[0097] Method 1200 may include the processing of various embodiments of the present disclosure that may be controlled or managed by a processor(s) and electrical components under the control of computer or computing device readable and executable instructions or code. The computer or computing device readable and executable instructions (or code) may reside, for example, in a volatile memory available to the computer or computing device, a non-volatile memory available to the computer or computing device, and / or a data storage facility such as mass data storage available to the computer or computing device. However, the computer or computing device readable and executable instructions (or code) may reside in any type of computer or computing device readable medium or memory (e.g., such as found in computing system 1300 of FIG. 13).

[0098] At 1202, a plurality of network physical ports are implemented to be peering physical ports. Operation 1202 may be implemented in a wide variety of ways. For example, in various embodiments, operation 1202 may be implemented in any manner similar to that described and / or illustrated by this disclosure, but is not limited to such.

[0099] At 1204 of Figure 12, a plurality of peering virtual ports may be created at each of a plurality of peering physical ports and may be implemented at each peering physical port. Operation 1204 may be implemented in a wide variety of ways. For example, in various embodiments, operation 1204 may be implemented in any manner similar to that described and / or illustrated by this disclosure, but is not limited to such.

[0100] At 1206, a determination may be made as to whether the application is requesting use of a peering physical port. If so, method 1200 may proceed to 1208. However, if it is determined at 1206 that the application is not requesting use of a peering physical port, method 1200 may proceed to the beginning of 1206. This determination may be made in a wide variety of ways. For example, in various embodiments, this determination may be made in any manner similar to those described and / or illustrated by this disclosure, but is not limited to such.

[0101] At 1208 in Figure 12, during the negotiation of the peering physical ports, a determination is made regarding the data transfer rate at which the requesting application desires to operate properly. This determination may be made in a wide variety of ways. For example, in various embodiments, this determination may be made in any manner similar to those described and / or illustrated by this disclosure, but is not limited to such.

[0102] At 1210, a determination is made as to whether multiple virtual ports should be aggregated to accommodate the determined data transfer rate of the requesting application. If so, method 1200 may proceed to 1212. However, if it is determined at 1210 that multiple virtual ports should not be aggregated to accommodate the determined data transfer rate of the requesting application (e.g., a single virtual port can accommodate the determined data transfer rate of the requesting application), method 1200 may proceed to operation 1214. This determination may be made in a wide variety of ways. For example, in various embodiments, this determination may be made in any manner similar to those described and / or illustrated by the present disclosure, but is not limited to such.

[0103] At 1212 in Figure 12, multiple virtual ports are aggregated to accommodate the determined data transfer rate of the requesting application. This aggregation may be implemented in a wide variety of ways. For example, in various embodiments, this aggregation may be implemented in any manner similar to those described and / or illustrated by this disclosure, but is not limited to such.

[0104] At 1214, a virtual port (e.g., aggregated or single) may be assigned to the requesting application, and the operating system interface is notified of the virtual port assigned to the requesting application. This assignment may be implemented in a wide variety of ways. For example, in various embodiments, this assignment may be implemented in any manner similar to those described and / or illustrated by this disclosure, but is not limited to such.

[0105] At 1216 of Figure 12, a determination is made as to whether the application has terminated using the assigned virtual port. If so, then method 1200 may proceed to the beginning of operation 1206. However, if it is determined at 1216 that the application has not terminated using the assigned virtual port, then method 1200 may proceed to the beginning of operation 1216. It should be noted that this determination may be made in a wide variety of ways. For example, in various embodiments, this determination may be made in any manner similar to those described and / or illustrated by the present disclosure, but is not limited to such.

[0106] FIG. 13 illustrates a block diagram of an example of a computing system 1300 in accordance with the present invention. In its most basic configuration, the system 1300 can include at least one processing unit (or processor) 1302 for performing the method 900 and a memory 1304. This most basic configuration is illustrated in FIG. 13 by dashed line 1306. The system 1300 may be implemented in a wide variety of ways in accordance with various embodiments of the present disclosure. For example, the system 1300 can be implemented as, but is not limited to, a network switch system, a network router system, a network communication device, a network appliance, a computer system, a laptop computer system, a smartphone, a desktop computer system, and the like.

[0107] Reference will now be made in detail to various embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. Although described in connection 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 according to the claims. Furthermore, in the foregoing detailed description of various embodiments of the present disclosure, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, one skilled in the art will recognize that the present disclosure may be practiced without these specific details, or with equivalents thereof. 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.

[0108] It should be noted that, for clarity, the method may be depicted herein as a sequence of numbered operations, but the numbering does not necessarily indicate 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 order of sequence. The drawings illustrating the various embodiments according to the present disclosure are semi-schematic and not to scale, in particular some dimensions are shown exaggerated in the drawing figures for clarity. Similarly, for ease of explanation, the views of the drawings generally show similar orientations, although this depiction in the figures is in most cases arbitrary. In general, the various embodiments according to the present disclosure may be operated in any orientation.

[0109] Some portions of the detailed description are presented in terms of procedures, logic blocks, processes, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are used by those skilled in the data processing arts to effectively convey the substance of their work to others skilled in the art. In this disclosure, a procedure, logic block, process, or the like, is conceived to be a self-consistent sequence of operations or instructions leading to a desired result. These operations employ physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computing system. It has proven convenient at times, primarily for reasons of common usage, to refer to these signals as transactions, bits, values, elements, symbols, characters, samples, pixels, or the like.

[0110] It should be noted, however, that all of these and similar terms should be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless otherwise indicated, as will be apparent from the discussion that follows, throughout this disclosure, discussions using terms such as, for example, "generate," "determine," "allocate," "aggregate," "utilize," "virtualize," "process," "access," "execute," or "store" will be understood to refer to the actions and processing of a computer system or similar electronic computing device or processor. A computing system or similar electronic computing device or processor manipulates and transforms data represented as physical (electronic) quantities in a computer system memory, register, other such information storage, and / or other computer-readable medium into other data similarly represented as physical quantities in a computer system memory or register, or other such information storage, transmission, or display device.

[0111] The technical solutions in the embodiments of the present application have been clearly and completely described in the preceding sections with reference to the drawings of the embodiments of the present application. It should be noted that the terms "first", "second" and the like in the present description and claims as well as the above 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 appropriately exchanged so that the embodiments of the present invention described herein can be implemented in an order other than that shown or described herein.

[0112] The functions described in the method of the present embodiment can be implemented in the form of a software functional unit and stored in a computing device readable storage medium when sold or used as a standalone product. Based on this understanding, a part of the embodiments of the present application that contribute to the prior art or a part of the technical solution can be embodied in the form of a software product stored in a storage medium including a plurality of instructions for causing a computing device (which may be a personal computer, a server, a mobile computing device, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present application. The above storage medium includes a USB drive, a portable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, an optical disk, etc., which can store program code.

[0113] Various embodiments in the specification of the present application are described progressively, and each embodiment focuses on the differences with other embodiments, and the same or similar parts between various embodiments may be left to another case. The described embodiments are only some of the embodiments, not all of the embodiments of the present application. All other embodiments obtained by those skilled in the art based on the embodiments of the present application without departing from the technology of the present invention are within the scope of the present application.

[0114] The above description of the disclosed embodiments will enable any person 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 to be limited not to the embodiments shown herein, but to the widest scope consistent with the principles and novel features disclosed herein. [Item of invention] [Item 1] 1. A network device, comprising: a plurality of physical transmit and receive ports for transmitting data over the network at a predetermined fixed data rate; a virtual circuit coupled to said plurality of physical transmit and receive ports; said virtual circuit comprising: receiving a first transfer request from the processor to transmit a first incoming data stream at a first non-predetermined data rate; establishing a first virtual port for receiving the first incoming data stream; selecting one or more physical transmit / receive ports from the plurality of physical transmit / receive ports in response to the first transfer request to form one or more selected physical transmit / receive ports, wherein the one or more selected physical transmit / receive ports have a predetermined total fixed data rate that is higher than the first non-predetermined data rate; receiving the first incoming data stream from the processor via the virtual port after the one or more physical transmit / receive ports are selected; forming one or more output data streams to flow at said predetermined fixed data rate, said one or more output data streams incorporating said data from said first incoming data stream, said data from said first incoming data stream incorporated within said one or more output data streams being timed to selected pulses in a transmit clock signal that flows at said predetermined fixed data rate; forwarding the one or more output data streams to the one or more selected physical transmit / receive ports. Network devices. [Item 2] if the first non-predetermined data rate of the first incoming data stream is lower than the predetermined fixed data rate of a physical transmit / receive port, the virtual circuit selects a physical transmit / receive port from the plurality of physical transmit / receive ports to form a selected physical transmit / receive port having a predetermined fixed data rate higher than the first non-predetermined data rate of the first incoming data stream. Item 1. The network device according to item 1. [Item 3] further forming an output data stream such that said virtual circuit flows at said predetermined fixed data rate, said output data stream incorporating said data from said incoming data stream, said data from said incoming data stream incorporated within said output data stream being timed to selected pulses in said transmit clock signal. Item 2. The network device according to item 2. [Item 4] The virtual circuit is further receiving a second transfer request from the processor to transmit a second incoming data stream at a second non-predetermined data rate lower than the predetermined fixed data rate of the selected physical transmit / receive port; establishing a second virtual port for receiving the second incoming data stream; determining whether the selected physical transmit / receive port has an available data rate that is higher than the second non-predetermined data rate; Item 3. The network device according to item 3. [Item 5] The virtual circuit further comprises: receiving the second incoming data stream at the second non-predetermined data rate from the processor after determining the available data rate; if the available data rate of the selected physical transmit / receive port is greater than the second non-predetermined data rate, generating an output data stream modified to incorporate the data from the first incoming data stream and the second incoming data stream, wherein the data from the first incoming data stream and the second incoming data stream are timed to a selected transmit clock signal; forwarding the modified output data stream to the selected physical transmit / receive port; Item 5. The network device according to item 4. [Item 6] the predetermined fixed data rate having a data rate of x bits / sec, the virtual circuit subdividing the predetermined fixed data rate of x bits / sec of a physical transmit / receive port into fractions, allocating the fractions to the first and second input data streams having non-predetermined data rates lower than the predetermined fixed data rate of the physical transmit / receive port, and combining the fractions such that the total bits / sec of the combined data streams is less than or equal to the predetermined fixed data rate of x bits / sec of the physical transmit / receive port. Item 6. The network device according to item 5. [Item 7] determining whether the selected physical transmit / receive port has an available data rate higher than the second non-predetermined data rate includes: subtracting the first non-predetermined data rate from the predetermined fixed data rate of the first incoming data stream to obtain the available data rate; and comparing the available data rate to the second non-predetermined data rate. Item 6. The network device according to item 5. [Item 8] If the non-predetermined data rate of the incoming data stream is higher than the predetermined fixed data rate of a physical transmit / receive port, the virtual circuit: establishing a virtual port for receiving the incoming data stream from the processor; selecting two or more physical transmit / receive ports from the plurality of physical transmit / receive ports, wherein the two or more selected physical transmit / receive ports have a predetermined total fixed data rate that is higher than the non-predetermined data rate of the incoming data stream; Item 1. The network device according to item 1. [Item 9] the virtual circuit further splits the incoming data stream received from the virtual port into two or more split data streams corresponding to the two or more selected physical transmit / receive ports, each of the two or more split data streams having a non-predetermined data rate lower than the predetermined fixed data rate. Item 9. The network device according to item 8. [Item 10] the virtual circuit further forms two or more output data streams to flow at the predetermined fixed data rate, the two or more output data streams incorporating the data from the two or more divided data streams, the data from the divided data streams incorporated within the two or more output data streams being timed to selected pulses in the transmit clock signal. Item 10. The network device according to item 9. [Item 11] 1. A method of operating a network device, comprising: receiving a first transfer request from the processor to transmit a first incoming data stream at a first non-predetermined data rate; establishing a virtual port for receiving the first incoming data stream; selecting one or more physical transmit / receive ports from the plurality of physical transmit / receive ports to transmit data over the network at a predetermined fixed data rate to form one or more selected physical transmit / receive ports, the one or more selected physical transmit / receive ports having a predetermined total fixed data rate higher than the first non-predetermined data rate; after the one or more physical transmit / receive ports are selected, receiving the first incoming data stream from the processor via the virtual port; forming one or more output data streams to flow at the predetermined fixed data rate, the one or more output data streams incorporating the data from the first incoming data stream, the data from the first incoming data stream incorporated within the one or more output data streams being timed to selected pulses in a transmit clock signal that flows at the predetermined fixed data rate; forwarding the one or more output data streams to the one or more selected physical transmit / receive ports; A method comprising: [Item 12] if the first non-predetermined data rate of the first incoming data stream is lower than the predetermined fixed data rate of a physical transmit / receive port; selecting a physical transmit / receive port from the plurality of physical transmit / receive ports to form a selected physical transmit / receive port, the selected physical transmit / receive port having a predetermined fixed data rate higher than the first non-predetermined data rate of the first incoming data stream; establishing a virtual port for receiving the incoming data stream; forming an output data stream to flow at the predetermined fixed data rate corresponding to the selected physical transmit / receive port, the output data stream incorporating the data from the incoming data stream, the data from the incoming data stream incorporated within the output data stream being timed to selected pulses in the transmit clock signal; Further comprising: Item 12. The method according to item 11. [Item 13] receiving a second request from the processor to transmit a second incoming data stream at a second non-predetermined data rate lower than the predetermined fixed data rate of the selected physical transmit / receive port; determining whether the selected physical transmit / receive port has an available data rate higher than the second non-predetermined data rate; receiving the second incoming data stream from the processor after determining the available data rate; if the available data rate of the selected physical transmit / receive port is higher than the second non-predetermined data rate, generating an output data stream reshaped to incorporate the data from the first incoming data stream and the second incoming data stream, wherein the data from the first incoming data stream and the second incoming data stream are timed to a selected transmit clock signal; forwarding the reconstructed output data stream to the selected physical transmit / receive port; Further comprising: Item 13. The method according to item 12. [Item 14] if the first non-predetermined data rate of the first incoming data stream is higher than the predetermined fixed data rate of a physical transmit / receive port; selecting two or more physical transmit / receive ports from the plurality of physical transmit / receive ports, the two or more selected physical transmit / receive ports having a predetermined total fixed data rate that is higher than the non-predetermined data rate of the incoming data stream; establishing a virtual port for receiving the incoming data stream; splitting the incoming data stream received from the virtual port into two or more split data streams corresponding to the two or more selected physical transmit / receive ports, each of the two or more split data streams having a non-predetermined data rate lower than the non-predetermined data rate of the incoming data stream; Further comprising: Item 12. The method according to item 11. [Item 15] forming two or more output data streams to flow at the predetermined fixed data rate, the two or more output data streams incorporating the data from the two or more split data streams, the data from the split data streams incorporated within the two or more output data streams being timed to selected pulses in the transmit clock signal. Item 15. The method according to item 14. [Item 16] 1. A network system, comprising: Network and a first network device coupled to the network, a plurality of first physical transmit / receive ports for transmitting data over the network at a predetermined fixed data rate; a first virtual circuit coupled to the plurality of first physical transmit / receive ports; said first virtual circuit comprising: receiving a first transfer request from the processor to transmit a first incoming data stream at a first non-predetermined data rate; establishing a first virtual port for receiving the first incoming data stream; selecting one or more first physical transmit / receive ports from the plurality of first physical transmit / receive ports to form one or more selected first physical transmit / receive ports, wherein the one or more selected first physical transmit / receive ports have a predetermined total fixed data rate that is higher than the first non-predetermined data rate; receiving the first incoming data stream from the processor via the first virtual port after the one or more first physical transmit / receive ports are selected; forming one or more output data streams to flow at said predetermined fixed data rate, said one or more output data streams incorporating said data from said first incoming data stream, said data from said first incoming data stream incorporated within said one or more output data streams being timed to selected pulses in a transmit clock signal that flows at said predetermined fixed data rate; forwarding the one or more output data streams to the one or more selected physical transmit / receive ports. a first network device; a second network device coupled to the network, a plurality of second physical transmit / receive ports for transmitting data over the network; a second virtual circuit coupled to the plurality of second physical transmit / receive ports; and the second virtual circuit comprises: receiving a first network request from the first virtual circuit to receive the one or more output data streams at the first non-predetermined data rate from the one or more selected physical transmit / receive ports; in response to the request from the first virtual circuit, selecting one or more second physical transmit / receive ports from the plurality of second physical transmit / receive ports to form one or more selected second physical transmit / receive ports corresponding to the one or more selected first physical transmit / receive ports, wherein the one or more selected second physical transmit / receive ports have a predetermined total fixed data rate higher than the first non-predetermined data rate; receiving the one or more outgoing data streams from the first network device using the selected one or more second physical transmit / receive ports. a second network device; A network system comprising: [Item 17] The second virtual circuit: extracting from the one or more output data streams the data from the first incoming data stream embedded within the one or more output data streams to form one or more reconstructed data streams flowing at the first non-predetermined fixed data rate, the one or more reconstructed data streams substantially matching the one or more first incoming data streams; forwarding the one or more reconstructed data streams to a second processor; Item 17. The network system according to item 16. [Item 18] if the first non-predetermined data rate of the first incoming data stream is lower than the predetermined fixed data rate of a physical transmit / receive port; the first virtual circuit selects a first physical transmit / receive port from the plurality of first physical transmit / receive ports to form a selected first physical transmit / receive port, where the selected first physical transmit / receive port has a predetermined fixed data rate that is higher than the first non-predetermined data rate of the first incoming data stream; the second virtual circuit selects a second physical transmit / receive port from the plurality of second physical transmit / receive ports to form a selected second physical transmit / receive port, where the selected second physical transmit / receive port has a corresponding selected first physical transmit / receive port and has a predetermined fixed data rate higher than the first non-predetermined data rate of the first incoming data stream; Item 18. The network system according to item 17. [Item 19] if the first non-predetermined data rate of the first incoming data stream is higher than the predetermined fixed data rate of a physical transmit / receive port, the first virtual circuit selects two or more first physical transmit / receive ports from the plurality of first physical transmit / receive ports, where the two or more selected first physical transmit / receive ports have a predetermined total fixed data rate higher than the non-predetermined data rate of the incoming data stream; and the second virtual circuit selects two or more second physical transmit / receive ports from the plurality of second physical transmit / receive ports corresponding to the two or more selected first physical transmit / receive ports, where the two or more selected second physical transmit / receive ports have a predetermined total fixed data rate higher than the non-predetermined data rate of the incoming data stream. Item 18. The network system according to item 17. [Item 20] A non-transitory computer readable storage medium having program instructions embedded therein, the program instructions, when executed by a processor, causing the processor to perform a method for operating a network device, the method comprising: receiving a first transfer request from the processor to transmit a first incoming data stream at a first non-predetermined data rate; establishing a virtual port for receiving the first incoming data stream; selecting one or more physical transmit / receive ports from a plurality of physical transmit / receive ports to transmit data over a network at a predetermined fixed data rate to form one or more selected physical transmit / receive ports, the one or more selected physical transmit / receive ports having a predetermined total fixed data rate higher than the first non-predetermined data rate; receiving the first incoming data stream from the processor via the virtual port after the one or more physical transmit / receive ports are selected; forming one or more output data streams to flow at the predetermined fixed data rate, the one or more output data streams incorporating the data from the first incoming data stream, the data from the first incoming data stream incorporated within the one or more output data streams being timed to selected pulses in a transmit clock signal that flows at the predetermined fixed data rate; forwarding the one or more output data streams to the one or more selected physical transmit / receive ports; A non-transitory computer readable storage medium comprising:

Claims

[Claim 1] The method described in the specification.

Citation Information

Patent Citations

  • Variable communication capacity data transmission device and data transmission device

    JP2006253852A

  • Private network peering in virtual network environments

    US20190158466A1

  • Transmission device, transmission control method, and recording medium

    WO2017022235A1