Device, method and system for virtualizing network

By introducing virtual circuits and virtual ports into network devices, selecting physical transceiver ports with larger predetermined fixed data rates, solving the problem of insufficient flexibility of conventional NICs in handling application traffic without predetermined data rates, achieving lower packet loss and time delay improve user experience and traffic control accuracy.

CN115552863BActive Publication Date: 2025-02-18PRIMEWAN LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180025414.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-04-02
Filing Date
2021-02-18
Publication Date
2025-02-18
Estimated Expiration
2041-02-18

AI Technical Summary

Technical Problem

Conventional network interface controllers (NICs) have difficulty handling application traffic that wishes to transmit data at non-predefined data rates due to the lack of flexibility in the predetermined fixed transmission rate of the port, resulting in undesirable packet loss and time delay.

Method used

By introducing virtual circuits into the network device, it is possible to receive transmission requests from the processor, establish a virtual port, and select a physical transceiver port with a larger predetermined fixed data rate to form a selected physical transceiver port. The virtual circuitry is also used to reformat the input data stream to an output data stream of a predetermined fixed data rate and forward it to a selected physical transceiver port.

Benefits of technology

Flexible processing of application traffic for non-prescribed data rates is achieved, reducing packet loss and time delay, improving user experience, and providing precise flow control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115552863B_ABST
    Figure CN115552863B_ABST
Patent Text Reader

Abstract

A virtual circuit (110) in a network device (100, 300, 500, 700) reformats one or more input data streams at a non-predetermined data rate into one or more output data streams at a predetermined data rate, thereby allowing a plurality of data streams having a non-predetermined data rate smaller than the predetermined data rate to be combined and output from a single network port (PP1), and a single data stream having a non-predetermined data rate larger than the predetermined data rate to be split and output from two or more network ports (PP1, PP2).
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 in particular to network devices, methods and systems for virtualized networks. Background Art

[0002] Conventional computer systems typically include a network interface controller / card (NIC) that has the functionality to connect the computer system to the Internet or other types of networks. Conventional NICs include one or more network ports that operate at predetermined fixed data rates, such as, for example, 10 / 100 / 1000 megabits per second (Mbps), 10 gigabits per second (Gbps), 40 Gbps, and 100 Gbps connections. As part of enabling communication between computer systems over a network, conventional NICs negotiate the transmission speed of the network port, and during this process, the transmission speed of the network port is fixed.

[0003] One of the disadvantages of conventional NICs is that the predetermined fixed transmission rate of the port lacks the flexibility to handle the traffic of applications that wish to transmit data at non-predetermined data rates. For example, the traffic of a video conferencing application may exceed the physical limitations of a network port, which will result in undesirable packet loss and time delays, thereby degrading the video conferencing experience of its users. Therefore, a method of handling the traffic of applications that wish to transmit data at non-predetermined data rates is needed. Summary of the invention

[0004] The present invention provides a method for processing traffic of an application that wishes to transmit data at an unpredicted data rate. The present invention provides a network device comprising a plurality of physical transceiver ports. The plurality of physical transceiver ports transmit data across a network at a predetermined fixed data rate. The network device also includes a virtual circuit coupled to the plurality of physical transceiver ports. The virtual circuit is used to receive a first transmission request from a processor to transmit a first input data stream at a first unpredicted data rate, and to establish a first virtual port to receive the first input data stream. The virtual circuit is also used to select one or more physical transceiver ports from a plurality of physical transceiver ports in response to the first transmission request to form one or more selected physical transceiver ports, wherein the one or more selected physical transceiver ports have a total predetermined fixed data rate greater than the first unpredicted data rate. After the one or more physical transceiver ports have been selected, the virtual circuit is also used to receive the first input data stream from the processor through the virtual port. In addition, the virtual circuit is used to form one or more output data streams running at a predetermined fixed data rate. The one or more output data streams incorporate data from the first input data stream. Data from the first input data stream incorporated into the one or more output data streams is timed to selected pulses within the transmit clock signal operating at a predetermined fixed data rate. In addition, a virtual circuit is used to forward the one or more output data streams to one or more selected physical transceiver ports.

[0005] The present invention also includes a method for operating a network device. The method includes: receiving a first transmission request from a processor to transmit a first input data stream at a first non-predetermined data rate, and establishing a virtual port to receive the first input data stream. The method also includes selecting one or more physical transceiver ports from a plurality of physical transceiver ports to transmit data across a network at a predetermined fixed data rate to form one or more selected physical transceiver ports, wherein the one or more selected physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate. In addition, the method includes: after the one or more physical transceiver ports have been selected, receiving the first input data stream from the processor through the virtual port, and forming one or more output data streams running at a predetermined fixed data rate. The one or more output data streams incorporate data from the first input data stream. The data from the first input data stream incorporated into the one or more output data streams is timed to a selected pulse running at a predetermined fixed data rate within a transmit clock signal. In addition, the method includes forwarding the one or more output data streams to one or more selected physical transceiver ports.

[0006] The present invention also provides a network system. The network system includes 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 transceiver ports for transmitting data across the network at a predetermined fixed data rate, and a first virtual circuit coupled to the plurality of first physical transceiver ports. The first virtual circuit is used to receive a first transmission request from a processor to transmit a first input data stream at a first non-predetermined data rate, and to establish a virtual port to receive the first input data stream. The first virtual circuit is also used to select one or more first physical transceiver ports from a plurality of first physical transceiver ports to form one or more selected first physical transceiver ports, wherein the one or more selected first physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate. In addition, after the one or more first physical transceiver ports have been selected, the first virtual circuit receives the first input data stream from the processor through the virtual port. The first virtual circuit is also used to form one or more output data streams running at a predetermined fixed data rate. The one or more output data streams incorporate data from the first input data stream. The data from the first input data stream incorporated into the one or more output data streams is timed to be a selected pulse running at a predetermined fixed data rate within a transmit clock signal. The first virtual circuit is additionally used to forward one or more output data streams to one or more selected physical transceiver ports. The second network device has multiple second physical transceiver ports for transmitting data across the network, and a second virtual circuit coupled to the multiple second physical transceiver ports. The second virtual circuit is used to receive a first network request from the first virtual circuit to receive one or more output data streams from one or more selected physical transceiver ports at a first non-predetermined data rate. The second virtual circuit is also used to select one or more second physical transceiver ports from the multiple second physical transceiver ports in response to a request from the first virtual circuit to form one or more selected second physical transceiver ports corresponding to one or more selected first physical transceiver ports, wherein the one or more selected second physical transceiver ports have a combined predetermined fixed data rate greater than the first non-predetermined data rate. In addition, the second virtual circuit is used to receive one or more output data streams from the first network device using the selected one or more second physical transceiver ports.

[0007] A better understanding of the features and advantages of the present invention will be obtained by referring to the following specific embodiments and drawings that illustrate exemplary embodiments in which the principles of the present invention are utilized. In order to better describe the technical means of the present application, to implement the present application according to the contents of the specification, and to make the above and other purposes, features and advantages of the present application easier to understand, the specific embodiments of the present application are given below. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Various other advantages and benefits will become apparent to those of ordinary skill in the art by reading the detailed description of the preferred embodiments below. The accompanying drawings are only for the purpose of illustrating the preferred embodiments and are not to be construed as limiting the present application. In addition, the same reference numerals are used to represent the same components throughout the drawings. In the drawings:

[0009] Figure 1 is a block diagram illustrating one example of a network device 100 according to the present invention.

[0010] Figure 2 is a timing diagram illustrating an example of clocking data from an input data stream into selected pulses within a transmit clock signal in accordance with the present invention.

[0011] Figure 3 is a block diagram illustrating one example of a network device 300 according to the present invention.

[0012] Figure 4 is a timing diagram illustrating an example of data from two input data streams being clocked into selected pulses within a transmit clock signal in accordance with the present invention.

[0013] Figure 5 is a block diagram illustrating one example of a network device 500 according to the present invention.

[0014] Fig. 6A is a timing diagram illustrating an example of data from three input data streams being clocked into selected pulses within a transmit clock signal in accordance with the present invention.

[0015] Figure 6B is a timing diagram illustrating an example of a token bucket timing diagram according to the present invention.

[0016] Figure 7 is a block diagram illustrating one example of a network device 700 according to the present invention.

[0017] Figure 8 is a timing diagram illustrating an example of segmenting data in a data stream according to the present invention.

[0018] Fig. 9 is a flow chart illustrating an example of a method 900 of operating a virtual circuit according to the present invention.

[0019] Fig.10 is a block diagram illustrating one example of a network system 1000 according to the present invention.

[0020] Fig.11 is a block diagram illustrating one example of a communication network 1100 according to the present invention.

[0021] Fig.12is a flow chart illustrating an example of a method 1200 for virtualizing one or more physical network ports (or interfaces) in a communication network according to the present invention.

[0022] Fig.13 is a block diagram illustrating an example of a computing system 1300 according to the present invention. DETAILED DESCRIPTION

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

[0024] Figure 1 A block diagram illustrating an example of a network device 100 according to the present invention is shown. As described in more detail below, a virtual circuit in the network device reformats one or more input data streams at a non-predetermined data rate into one or more output data streams at a predetermined fixed data rate, which in turn allows multiple data streams having a non-predetermined data rate less than the predetermined fixed data rate to be combined and output from a single network port, and a single data stream having a non-predetermined data rate greater than the predetermined fixed data rate to be split and output from two or more network ports.

[0025] like Figure 1 As shown, network device 100 includes a virtual circuit 110 that reformats an input data stream, and a series of physical transceiver ports PP coupled to virtual circuit 110 to transmit and receive the reformatted data stream. In this example, three physical transceiver ports PP1-PP3 are shown, but other numbers of ports may also be used.

[0026] Virtual circuit 110 includes processing, switching, buffering and timing circuit devices, which include software modules as needed. Physical transceiver port PP transmits data across network 112 at a predetermined fixed data rate, which can include one or more of 10 / 100 / 1000 Mbps (megabits per second), 10 Gbps (gigabits per second), 40 Gbps and 100 Gbps, for example.

[0027] In operation, virtual circuit 110 receives a first transmission request from an application executing on a processor to transmit a first input data stream to a remote device at a first non-predetermined data rate via network 112. The first non-predetermined data rate may be any non-standard data rate, such as 16 Mbps or 128 Mbps.

[0028] In response to the first transmission request, the virtual circuit 110 establishes a virtual port VP1 to receive a first input data stream from the processor. For example, establishing the virtual port may include allocating a certain amount of memory as a FIFO buffer for the first input data stream. In addition, the virtual circuit 110 selects one or more physical transceiver ports PP having a total predetermined fixed data rate greater than the first non-predetermined data rate.

[0029] like Figure 1 As shown, when the first non-predetermined data rate (e.g., 16 Mbps) of the first input data stream is less than the predetermined fixed data rate (e.g., 100 Mbps) of the physical transceiver port PP, the virtual circuit 110 selects a physical transceiver port PP having a predetermined fixed data rate (e.g., 100 Mbps) greater than the first non-predetermined data rate (e.g., 16 Mbps) of the first input data stream, such as the physical transceiver port PP1. After the selection, the virtual circuit 110 modifies the switching circuit device to couple the virtual port VP1 to the physical transceiver port PP1 via the processing, buffering, and timing circuit devices of the virtual circuit 110.

[0030] Thereafter, the virtual circuit 110 confirms acceptance of the first transfer request to the processor, subsequently receives the first input data stream at the first non-predetermined data rate through the virtual port VP1, and then forms one or more output data streams incorporating data from the first input data stream at a predetermined fixed data rate.

[0031] Data from the first input data stream that is incorporated into the one or more output data streams is timed to selected pulses within the transmit clock signal running at a predetermined fixed data rate.When completed, the virtual circuit 110 forwards the one or more output data streams to the one or more selected physical transceiver ports.

[0032] Figure 2 A timing diagram illustrating an example of clocking data from an input data stream to selected pulses within a transmit clock signal according to the present invention is shown. Figure 2 In the example of FIG. 4 , a transmit clock signal 210 is shown operating at a predetermined fixed rate of 10 cycles per second.

[0033] If the virtual circuit receives a data stream from the virtual port having a non-predetermined data rate of 2 cycles per second, data from the first two clock cycles of the data stream is clocked into the first two clock cycles of the 10 predetermined fixed cycles of the transmit clock signal 210 as shown by line 212 .

[0034] In addition, if Figure 2 As shown by line 214 in FIG. 1 , the buffered data from the first two clock cycles of the data stream may be clocked into any of the 10 predetermined fixed cycles per second. Figure 2 The example of is a simplified example illustrating timing. In actual practice, the virtual port may receive a data stream having a data rate of 16 GHz, for example. Figure 2 The pattern shown is buffered and clocked, and output to a physical transceiver port with a predetermined fixed data rate of 100Ghz.

[0035] Reference again Figure 1 At a subsequent time, virtual circuit 110 may receive a second transmission request from an application executing on the processor to transmit a second input data stream to a remote device at a second unscheduled data rate via network 112. The second unscheduled data rate may be the same as or different from the first unscheduled data rate.

[0036] In response to the second transmission request, the virtual circuit 110 establishes a virtual port VP2 to receive a second input data stream from the processor. For example, establishing the virtual port may include allocating a certain amount of memory to be used as a FIFO buffer for the second input data stream. In addition, the virtual circuit 110 determines whether the selected physical transceiver port PP1 has an available data rate greater than the second non-predetermined data rate.

[0037] For example, the virtual circuit 110 can obtain an available data rate (e.g., 84 Mbps) by subtracting a first non-predetermined data rate (e.g., 16 Mbps) of the first input data stream from a predetermined fixed data rate (e.g., 100 Mbps), and then compare the available data rate (e.g., 84 Mbps) with a second non-predetermined data rate (e.g., 32 Mbps) to determine whether the available data rate (e.g., 84 Mbps) is greater than the second non-predetermined data rate (e.g., 32 Mbps), thereby determining whether the selected physical transceiver port PP1 has an available data rate greater than the second non-predetermined data rate.

[0038] When the available data rate of the selected physical transceiver port PP1 is greater than the second unpredetermined data rate, virtual circuit 110 modifies the switching circuitry to couple virtual port VP1 and virtual port VP2 to physical transceiver port PP1 via processing, buffering, and timing circuitry of virtual circuit 110 .

[0039] Figure 3 1 is a block diagram illustrating an example of a network device 300 according to the present invention. The network device 300 is similar to the network device 100, and therefore, the same reference numerals are used to represent structures common to both network devices. Figure 3As shown, the network device 300 is different from the network device 100 in that the virtual circuit 110 has received the second transmission request, established the second virtual port VP2, determined that the physical transceiver port PP1 has an available data rate, and connected the first and second input data streams to the physical transceiver port PP1 through the processing, switching, buffering and timing circuit devices of the virtual circuit 110.

[0040] Thereafter, the virtual circuit 110 confirms to the processor that it accepts the second transmission request, then receives the second input data stream at a second non-predetermined data rate through the virtual port VP2, and then generates a modified output data stream at a predetermined fixed data rate, the modified output data stream incorporating data from the first input data stream and the second input data stream. As described above, the first input data stream and the second input data stream are clocked to the selected transmit clock signal. The virtual circuit 110 then forwards the modified output data stream to the selected physical transceiver port.

[0041] The predetermined fixed data rate has a data rate of x bits per second. In one embodiment, the virtual circuit 110 subdivides the predetermined fixed data rate of x bits per second of the physical transceiver port into fractional parts, allocates the fractional parts to the first input data stream and the second input data stream having a non-predetermined data rate less than the predetermined fixed data rate of the physical transceiver port, and combines the fractional parts so that the combined bits per second of the combined data stream is equal to or less than the predetermined fixed data rate of x bits per second of the physical transceiver port.

[0042] For example, when the first non-scheduled data rate is 16 Mbps and the second non-scheduled data rate is 32 Mbps, 16 Mbps of the 100 Mbps fractional portion is mapped to the first non-scheduled data rate and 32 Mbps of the 100 Mbps fractional portion is mapped to the second non-scheduled data rate.

[0043] Figure 4 A timing diagram illustrating an example of data from two input data streams being clocked into selected pulses within a transmit clock signal in accordance with the present invention is shown. Figure 4 In the example of FIG. 4 , a transmit clock signal 410 is shown operating at a predetermined fixed rate of 10 cycles per second.

[0044] If the virtual circuit receives a data stream having a non-scheduled data rate of 2 cycles per second from the first virtual port and receives a data stream having a non-scheduled data rate of 3 cycles per second from the second virtual port, then as shown by line 412, the virtual circuit times the data from the first two clock cycles of the first data stream to the first two clock cycles of 10 predetermined fixed cycles of the transmit clock signal 410, and times the data from the first three clock cycles of the second data stream to the third clock cycle, the fourth clock cycle, and the fifth clock cycle of the 10 predetermined fixed cycles of the transmit clock signal 410.

[0045] In addition, if Figure 4 As shown by line 414 in FIG. 4 , the buffered data from the first two clock cycles of the first data stream and the buffered data from the first three clock cycles of the second data stream may be clocked to any clock cycle of the 10 predetermined fixed cycles per second. Figure 4 The example is a simplified example illustrating timing. In actual operation, the virtual ports VP1 and VP2 can receive data streams at data rates of 16 GHz and 32 GHz, respectively. Figure 4 The RF signal is clocked in the manner shown and output to a physical transceiver port with a predetermined fixed data rate of 100 GHz.

[0046] Figure 5 A block diagram illustrating an example of a network device 500 according to the present invention is shown. The network device 500 is similar to the network device 300, and therefore the same reference numerals are used to represent structures common to both network devices. Figure 5 As shown, the network device 500 is different from the network device 300 in that the virtual circuit 110 has received a third transmission request, established a third virtual port VP3, determined that the physical transceiver port PP1 has an available data rate, and connected the first input data stream, the second input data stream, and the third input data stream to the physical transceiver port PP1 through the processing, switching, buffering, and timing circuit devices of the virtual circuit 110.

[0047] Fig. 6A A timing diagram illustrating an example of data from three input data streams being clocked into selected pulses within a transmit clock signal in accordance with the present invention is shown. Fig. 6A In the example of FIG. 6 , a transmit clock signal 610 is shown operating at a predetermined fixed rate of 10 cycles per second.

[0048] If the virtual circuit receives a data stream with an unscheduled data rate of 2 cycles per second from the first virtual port, a data stream with an unscheduled data rate of 3 cycles per second from the second virtual port, and a data stream with an unscheduled data rate of 4 cycles per second from the third virtual port, then as shown in line 412, the virtual circuit times the data from the first two clock cycles of the first data stream to the first two clock cycles of 10 predetermined fixed cycles per second, times the data from the first three clock cycles of the second data stream to the third clock cycle, the fourth clock cycle, and the fifth clock cycle of 10 predetermined fixed cycles per second, and times the data from the first four clock cycles of the third data stream to the sixth clock cycle, the seventh clock cycle, the eighth clock cycle, and the ninth clock cycle of 10 predetermined fixed cycles per second. The last cycle in this example is empty. Ideally, the virtual ports are grouped so that all predetermined fixed clock cycles are utilized.

[0049] In addition, if Fig. 6A As shown by line 614 in , 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 clock cycle of the 10 predetermined fixed cycles of the transmit clock signal 610.

[0050] Fig. 6A The example is a simplified example illustrating timing. In actual operation, virtual port VP1, virtual port VP2, virtual port VP3 can receive data streams with data rates of 16Ghz, 32Ghz and 48Ghz respectively. Fig. 6A The pattern shown is clocked and output to a physical transceiver port with a predetermined fixed data rate of 100Ghz.

[0051] Reference again Figure 5 As described above, the virtual port may include a certain amount of memory that acts as a FIFO buffer for an incoming data stream at a non-predetermined data rate. The FIFO buffer receiving the incoming data stream may alternatively operate as a token bucket that is periodically filled with tokens and emptied when full. The tokens may be implemented using, for example, data packets. When the token bucket is full, the virtual circuit 110 transfers all tokens from the bucket to the physical transceiver port at the predetermined fixed data rate of the physical transceiver port.

[0052] Figure 6B A timing diagram illustrating an example of a token bucket timing diagram according to the present invention is shown. Figure 6B In the example, each pulse represents the number of packets in the clock cycle, and each token bucket holds two tokens or data packets. Figure 6BAs shown, virtual circuit 110 empties the VP1 token bucket by clocking two VP1 packet data streams to selected pulses within the transmit clock signal and outputs the clocked data streams to the physical transceiver port at the predetermined fixed data rate of the physical transceiver port, and then empties the VP2 and VP3 buckets in a similar manner.

[0053] One advantage of the present invention is that multiple data streams can be isolated in one physical transceiver port. For example, a physical transceiver port with a 100 Mbps data rate can be used to transmit 10 Mbps of video conferencing traffic, 50 Mbps for ERP, 30 Mbps for the boss, and 10 Mbps for the staff. Additionally, an "A to Z" quality of service (QoS) can be guaranteed for all traffic. Another advantage is that the present invention provides precise flow control.

[0054] Figure 7 A block diagram illustrating an example of a network device 700 according to one embodiment of the present invention is shown. Network device 700 is similar to network device 500, and therefore, structures common to both network devices are represented using the same reference numerals.

[0055] like Figure 7 As shown, the virtual circuit 110 receives a fourth transmission request from an application executed on the processor to transmit a fourth input data stream to a remote device via the network 112 at a fourth non-predetermined data rate. In response to the fourth transmission request, the virtual circuit 110 establishes a virtual port VP4 to receive the fourth input data stream from the processor. For example, establishing the virtual port may include allocating a certain amount of memory as a FIFO buffer for the fourth input data stream. In addition, the virtual circuit 110 selects one or more physical transceiver ports PP from a number of physical transceiver ports PP having a total predetermined fixed data rate greater than the first non-predetermined data rate.

[0056] like Figure 7 As shown, when a fourth non-predetermined data rate (e.g., 128 Mbps) of a fourth input data stream is greater than a predetermined fixed data rate (e.g., 100 Mbps) of the physical transceiver port PP, the virtual circuit 110 selects two or more physical transceiver ports, such as the physical transceiver port PP2 and the physical transceiver port PP3, wherein the two or more selected physical transceiver ports have a combined predetermined fixed data rate greater than the fourth non-predetermined data rate of the fourth input data stream.

[0057] Thereafter, the virtual circuit 110 confirms acceptance of the fourth transmission request to the processor, subsequently receives a fourth input data stream at a fourth non-predetermined data rate through the virtual port VP4, and then splits the fourth input data stream received from the virtual port VP4 into two or more split data streams corresponding to two or more selected physical transceiver ports PP2 and PP3, wherein each of the two or more split data streams has a data rate smaller than the predetermined fixed data rate.

[0058] Next, the virtual circuit 110 forms two or more output data streams running at a predetermined fixed data rate, wherein 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 selected pulses in the transmit clock signal. When completed, the virtual circuit 110 forwards the two or more output data streams to the two or more selected physical transceiver ports PP2 and PP3.

[0059] Figure 8 A timing diagram illustrating an example of segmenting data in a data stream according to the present invention is shown. Figure 8 As shown, after being incorporated into the output data stream in the manner described above, virtual circuit 110 can split the data in the data stream into two by, for example, forwarding each odd bit to physical port PP2 and forwarding each even bit to physical port PP3. The split effectively forms two smaller data streams with smaller data rates.

[0060] Alternatively, virtual circuit 110 can 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 of physical port PP2, and forwarding the remaining data at a data rate (e.g., 28 Mbps) to physical port PP3 in the manner described above. In most cases, the number of physical transceiver ports PP is the minimum number required to accommodate the fourth non-predetermined data rate.

[0061] Fig. 9 FIG. 9 is a flow chart showing an example of a method 900 for operating a virtual circuit according to the present invention. Fig. 9 As shown, method 900 begins at 910: receiving a first transmission request from a processor to transmit a first input data stream at a first non-predetermined data rate. The first non-predetermined data rate may be any non-standard data rate, such as 16 Mbps or 128 Mbps.

[0062] The method 900 then moves to 912: establishing a virtual port to receive a first input data stream. Thereafter, the method 900 moves to 914: selecting one or more physical transceiver ports from a plurality of physical transceiver ports that transmit data across a network at a predetermined fixed data rate to form one or more selected physical transceiver ports, wherein the one or more selected physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate.

[0063] Thereafter, the method 900 moves to 916: after one or more physical transceiver ports have been selected, receiving a first input data stream from a processor; and then moves to 920: forming one or more output data streams operating at a predetermined fixed data rate. The one or more output data streams incorporate data from the first input data stream. The data from the first input data stream incorporated into the one or more output data streams is timed to selected pulses operating at the predetermined fixed data rate within a transmit clock signal. Then, the method moves to 922: forwarding the one or more output data streams to the one or more selected physical transceiver ports.

[0064] When the first non-predetermined data rate of the first input data stream is less than the predetermined fixed data rate of the physical transceiver port, the method 900 selects a physical transceiver port from a plurality of physical transceiver ports to form a selected physical transceiver port, wherein the selected physical transceiver port has a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream. In addition, the method 900 forms an output data stream running at a predetermined fixed data rate corresponding to the selected physical transceiver port. The output data stream incorporates data from the input data stream. The data from the input data stream incorporated into the output data stream is timed to a selected pulse in the transmit clock signal.

[0065] When a first non-predetermined data rate of a first input data stream is greater than a predetermined fixed data rate of a physical transceiver port, method 900 selects two or more physical transceiver ports from a plurality of physical transceiver ports, wherein the two or more selected physical transceiver ports have a combined predetermined fixed data rate greater than the non-predetermined data rate of the input data stream.

[0066] In addition, the method 900 divides the input data stream received from the virtual port into two or more split data streams corresponding to two or more selected physical transceiver ports. Each of the two or more split data streams has a non-predetermined data rate that is smaller than the non-predetermined data rate of the input data stream. In addition, the method 900 forms two or more output data streams running 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.

[0067] Reference again Fig. 9 , the method 900 next moves to 924: receiving a second transmission request from the processor to transmit a second input data stream at a second non-predetermined data rate that is less than the predetermined fixed data rate of the selected physical transceiver port. Thereafter, the method 900 moves to 926: determining whether the selected physical transceiver port has an available data rate greater than the second non-predetermined data rate.

[0068] After determining the available data rate, method 900 moves to 930: receiving a second input data stream from the processor. When the available data rate of the selected physical transceiver port is greater than the second non-predetermined data rate, method 900 moves to 932: generating a reformed output data stream to incorporate data from the first input data stream and the second input data stream, wherein the data from the first input data stream and the second input data stream are timed to the selected transmit clock signal. Thereafter, method 900 moves to 934: forwarding the reformed output data stream to the selected physical transceiver port. In one embodiment, method 900 may be stored on a non-transitory computer-readable storage medium having program instructions embedded therein, which, when executed by a processor, causes the processor to perform method 900.

[0069] Fig.10 A block diagram illustrating an example of a network system 1000 according to the present invention is shown. The network system 1000 includes a first network device, a second network device, and a network coupling the first network device 1010A and the second network device 1010B together.

[0070] like Fig.10As shown, the first network device can be implemented using the network device 700, the network device 700 is represented as 700A, 110 is represented as 110A, PP1-PP3 is represented as PP1A-PP3A, and VP1-VP4 is represented as VP1A-VP4A. Similarly, the second network device can also be implemented using the network device 700, the network device 700 is represented as 700B, 110 is represented as 110B, PP1-PP3 is represented as PP1B-PP3B, and VP1-VP4 is represented as VP1B-VP4B.

[0071] In operation, virtual circuit 110A receives a first transmission request from an application executing on a processor to transmit a first input data stream to a remote device at a first non-predetermined data rate via network 112. The first non-predetermined data rate may be any non-standard data rate, such as 16 Mbps or 128 Mbps.

[0072] In response to the first transmission request, the virtual circuit 110A establishes the virtual port VP1 to receive the first input data stream from the processor, and then selects one or more physical transceiver ports PPA from among several physical transceiver ports PPA having a total predetermined fixed data rate greater than the first non-predetermined data rate.

[0073] Thereafter, the virtual circuit 110A confirms acceptance of the first transmission request to the processor, and then receives the first input data stream at a first non-predetermined data rate through the virtual port VP1A, and then forms an output data stream at a predetermined fixed data rate, the output data stream merging data from the first input data stream.

[0074] The data from the first input data stream that is incorporated into the output data stream is timed to selected pulses running at a predetermined fixed data rate within the transmit clock signal. When completed, the virtual circuit 110A forwards the one or more output data streams to one or more selected physical transceiver ports, which in turn transmit the one or more output data streams across the network 112 to the second network device 700B.

[0075] Prior to transmitting the outgoing data streams across the network 112, the selected physical transceiver device PP1A of the first network device 700A sends a network request to the second network device 700B to receive one or more outgoing data streams from one or more selected physical transceiver ports at a first non-predetermined data rate.

[0076] Virtual circuit 110B of second network device 700B receives the first network request and, in response, selects one or more second physical transceiver ports corresponding to the one or more selected first physical transceiver ports from a range of second physical transceiver ports, wherein the one or more selected second physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate.

[0077] Thereafter, the virtual circuit 110B confirms acceptance of the first network request to the first network device 700A, and subsequently receives one or more output data streams at the first non-predetermined data rate via the physical transceiver ports PP1B-PP3B.

[0078] Next, the virtual circuit 110B extracts data of the first input data stream incorporated into the one or more output data streams from the one or more output data streams to form one or more reconstructed data streams running at a first non-predetermined fixed data rate, the one or more reconstructed data streams substantially matching the one or more first input data streams. The virtual circuit 110B then forwards the one or more reconstructed data streams to the second processor.

[0079] When the first non-predetermined data rate of the first input data stream is less than the predetermined fixed data rate of the physical transceiver port PPA, the first virtual circuit 110A selects a first physical transceiver port PP1A from a series of first physical transceiver ports to form a selected first physical transceiver port, wherein the selected first physical transceiver port has a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream. In addition, the second virtual circuit 110B selects a second physical transceiver port PP1B from a plurality of second physical transceiver ports to form a selected second physical transceiver port, wherein the selected second physical transceiver port has the corresponding selected first physical transceiver port PP1A and a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream.

[0080] When the first non-predetermined data rate of the first input data stream is greater than the predetermined fixed data rate of the physical transceiver port, the first virtual circuit 110A selects two or more first physical transceiver ports, such as PP2A and PP3A, from the plurality of first physical transceiver ports, wherein the two or more selected first physical transceiver ports have a combined predetermined fixed data rate greater than the non-predetermined data rate of the input data stream. In addition, the second virtual circuit 110B selects two or more second physical transceiver ports, such as PP2B and PP3B, corresponding to the selected two or more first physical transceiver ports from the plurality of second physical transceiver ports, wherein the two or more selected second physical transceiver ports have a combined predetermined fixed data rate greater than the non-predetermined data rate of the input data stream.

[0081] Fig.11 A block diagram illustrating an example of a communication network 1100 according to the present invention is shown. According to various embodiments of the present disclosure, the communication network 1100 may involve building or generating one or more virtualized elastic physical ports for, but not limited to, a fixed line network.

[0082] The communication 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 the 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.

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

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

[0085] Specifically, the network device 1102 may include a processor 1104, a network card B physical network port 1 and a network card B physical network port 2, each of which may be coupled to the processor 1104, and a memory 1146 (not shown) coupled to the processor 1104 and the network card B physical network port 1 and the network card B physical network port 2. The network card B may be implemented using one or more physical network ports similar to the physical network port 1 and the physical network port 2.

[0086] In various embodiments, each of physical network port 1 and physical network port 2 may be implemented as a layer 2 network port, but is not limited thereto. Note that network device (or system) 1106 may be implemented in a manner similar to reference network device 1102 described above. However, Fig.11 Some elements are not shown.

[0087] In various embodiments, the network device 1106 may include the physical network port 1' and the port 2' of the network card A. However, the network card A may be implemented using one or more physical network ports similar to the physical network port 1' and the port 2'. In addition, in various embodiments, the network device 1106 may include a memory 1148, and the memory 1148 may be coupled to the network card A and the physical network port 1' and the port 2'. In addition, the network device 1106 may include a processor 1152 coupled to the memory 1148 and the network card A and the physical network port 1' and the port 2'.

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

[0089] In various embodiments, network port 1 and network port 1' are peer ports, and network port 2 and network port 2' are also peer ports, but are not limited thereto. In various embodiments, instructions 1150 (e.g., software, firmware, hardware, or any combination thereof) may be used for virtualization creation and management within communication network 1100. In addition, in various embodiments, instructions 1150 may be installed in one or more chips in a field programmable gate array (FPGA) board and may operate on a physical layer, but are not limited thereto.

[0090] exist Fig.11In the embodiment, multiple virtual ports are generated or created at one or more peer physical ports 1 and 1' and peer physical ports 2 and 2'. According to various embodiments of the present disclosure, the generation of multiple virtual ports may be implemented in various ways.

[0091] For example, in various embodiments, multiple virtual ports are created at one or more of the peer physical ports 1 and 1' and the peer physical ports 2 and 2', which virtual ports match the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard except for the network port data transmission rate, but are not limited thereto.

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

[0093] Furthermore, in various embodiments, the virtual port data speed / traffic rate may be limited, and for example, defined by the IEEE 802.11 protocol and negotiation between peer virtual ports a and a'; ports b and b'. Additionally, in various embodiments, the data transmission rate of each of the plurality of virtual ports (e.g., virtual port a, virtual port b, virtual port c, and virtual port d) may be a fraction of the maximum data transmission rate of the corresponding physical network port (e.g., NIC B port 1).

[0094] For example, within the communication network 1100, a virtualized port (e.g., virtual port a) is defined to match but not limited to the IEEE 802.11 protocol, and the transmission 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., NIC B port 1) of a network device or system 1102 may be divided into a plurality of virtual ports (e.g., virtual port a, virtual port b, virtual port c, and virtual port d), each of which matches the IEEE 802.11 protocol, but is not limited thereto. For example, if NIC B physical port 1 has a transmission bit rate of 100 megabits per second (Mbps), it may be divided into 100 virtual ports by various embodiments, each of which has a transmission bit rate of 1 Mbps (not currently shown).

[0095] In various embodiments, once these one hundred virtual ports are established, various embodiments may merge any number of these virtual ports together to create new larger data rate virtual ports capable of handling a specific negotiated data rate (e.g., 11 Gbps) for a specific connection or customer.

[0096] In addition, in various embodiments, it should be noted that the merging of virtual ports together can be implemented across multiple physical ports of a network communication device. In addition, in various embodiments, the merging of virtual ports together can also be implemented across different communication layers. After these types of virtualization are performed, each physical port has been replaced by multiple virtualized ports.

[0097] In various embodiments, virtualized ports can be used for, but not limited to, all traffic management, port-based orchestration, software-defined networking (SDN), software-defined wide area network (SD-WAN), and network virtualization. In addition, in various embodiments, virtual ports can be used to build end-to-end traffic provisioning that easily controls quality of service (QoS) and improves network efficiency.

[0098] As described above, according to various embodiments of the present disclosure, the generation of multiple virtual ports can be implemented in various ways. For example, in various embodiments, multiple virtual ports (e.g., virtual port e, virtual port f, and virtual port g) can be generated (or created) at peer physical ports (port 2 and port 2') by maintaining a MAC (media access control) forwarding table (e.g., which can be used in a layer 2 switch system) to control the forwarding of data packets from the physical port to the virtual port.

[0099] In addition, by using time slots to control the data transmission speed between the physical port and the virtual port, multiple virtual ports (e.g., virtual port e, virtual port f, and virtual port g) can be generated (or created) at the peer physical port (port 2 and port 2'). In various embodiments, since the physical port is "split" into multiple virtual ports. Then, for example, the basic clock cycle can be multiplied, such as 5 milliseconds (ms), which means that one virtual port is 1 / 5 of the maximum data speed of the peer physical port.

[0100] In various embodiments, time division multiple access (TMDA) can be used to create (or generate) virtualized ports, and the virtual ports can be implemented with 1 / x data speed of the maximum data speed of the peer physical port. In addition, each virtual port is made to work or operate like a physical port. Since TDMA can be used to create or generate multiple virtual ports (e.g., virtual port a, virtual port b, virtual port c, and virtual port d) in a physical port (e.g., network card B port 1), multiple virtual ports can be managed and combined to form flexible virtual ports.

[0101] In addition, in various embodiments, flexible virtual ports can be created with virtual ports (e.g., virtual port d and virtual port e) that span or involve multiple physical ports (NIC B port 1 and port 2). Based on this functionality of various embodiments, virtual fibers / circuits can be created and virtualization can occur across telecommunication networks.

[0102] exist Fig.11 In various embodiments, it can be noted that virtual port A is an operating system (OS) and application layer virtual network port, which can directly use virtual port a, virtual port a' via OS interface 1108. In addition, in various embodiments, virtual port B is also an OS and application level virtual network port, which can directly use the merged (or aggregated) virtual port b, virtual port b' and virtual port c, virtual port c' via OS interface 1108.

[0103] When OS 1104 looks at virtual port B, it only looks at a single port with the combined data transfer rate of virtual port b, virtual port b' and virtual port c, virtual port c', rather than looking at two virtual ports b, virtual port b' and virtual port c, virtual port c'. In addition, in various embodiments, virtual port C is also an OS and application-level virtual network port that can directly use the merged (or aggregated) virtual port d, virtual port d' and virtual port e, virtual port e' and virtual port f, virtual port f' via OS interface 1108.

[0104] Virtual port C is generated by merging (or aggregating) multiple virtual ports (e.g., d, d' and e, e' and f, f') across two physical ports (e.g., NIC B port 1 and port 2). Therefore, when OS 104 looks at virtual port C, it only looks at a single port with the combined data transfer rate of virtual port d, virtual port d' and virtual port e, virtual port e' and virtual port f, virtual port f', instead of looking at three virtual ports b, virtual port b' and virtual port c, virtual port c'. In various embodiments, note that each of virtual ports B and C is the result of layer 1 aggregation 1110.

[0105] In various embodiments, virtual port D is also an OS and application layer virtual network port, which can directly use the merged (or aggregated) virtual port b, virtual port b' and virtual port c, virtual port c' and virtual port d, virtual port d' and virtual port e, virtual port e' and virtual port f, virtual port f' via OS interface 1114. Virtual port D is generated by merging (or aggregating) 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., NIC B port 1 and port 2).

[0106] Additionally, virtual port D is the result of the layer 2 aggregation 1112 of virtual port B and virtual port C. Therefore, when OS 1104 looks at virtual port D, it only looks at a single port with the combined data transfer rates of virtual port b, virtual port b' and virtual port c, virtual port c' and virtual port d, virtual port d' and virtual port e, virtual port e' and virtual port f, virtual port f', instead of looking at five virtual ports b, virtual port b' and virtual port c, virtual port c' and virtual port d, virtual port d' and virtual port e, virtual port e' and virtual port f, virtual port f'.

[0107] 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. In addition, in various embodiments, note that each data transmission rate (e.g., which can be a different data transmission rate) 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. In various embodiments, virtual aggregation ports can span physical ports and be dynamic and virtualized. The operating system 1104 can obtain information about how many virtual ports are available and their corresponding data transmission rates from the instructions 1150.

[0108] According to various embodiments, there are benefits associated with the functionality of the communication network 1100 described herein. For example, a virtualized network port (e.g., which works as a physical port) can bring flexible network orchestration. Additionally, each physical network port can support multiple virtualized ports, and the functions of multiple virtualized ports are similar to physical ports and different applications and traffic can be deployed to different virtual ports. In addition, different data rates can be limited or set to maintain quality of service (QoS) and control data traffic. In addition, in various embodiments, more features can be added in different virtual ports for special management.

[0109] Fig.12A flow chart illustrating an example of a method 1200 for virtualizing one or more physical network ports (or interfaces) in a communication network according to the present invention is shown. Fig.12 Specific operations are disclosed in , but these operations are examples. Method 1200 may not include Fig.12 All operations shown. In addition, method 1200 may include various other operations and / or variations of the operations shown.

[0110] Likewise, the sequence of operations of method 1200 may be modified. Not all operations in method 1200 may be performed. In various embodiments, one or more of the operations of method 1200 may be controlled or managed by software, firmware, hardware, or any combination thereof, but is not limited thereto.

[0111] Method 1200 may include processes of various embodiments of the present disclosure, which may be controlled or managed by (multiple) processors and electronic 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 data storage feature, such as volatile memory available to the computer or computing device, non-volatile memory available to the computer or computing device, and / or 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 in a Fig.13 those found within computing system 1300).

[0112] At 1202, a plurality of network physical ports are implemented as peer physical ports. Operation 1202 may be implemented in a variety of ways. For example, in various embodiments, operation 1202 may be implemented in any manner similar to that described and / or illustrated in the present disclosure, but is not limited thereto.

[0113] exist Fig.12 At 1204, multiple peer virtual ports may be generated at each of the multiple peer physical ports and may be implemented at each peer physical port. Operation 1204 may be implemented in a variety of ways. For example, in various embodiments, operation 1204 may be implemented in any manner similar to that described and / or illustrated in the present disclosure, but is not limited thereto.

[0114] At 1206, it may be determined whether the application is requesting the use of a peer physical port. If so, the method 1200 may proceed to 1208. However, if it is determined at 1206 that the application is not requesting the use of a peer physical port, the method 1200 may proceed to the beginning of 1206. This determination may be accomplished in a variety of ways. For example, in various embodiments, the determination may be accomplished in any manner similar to that described and / or illustrated in the present disclosure, but is not limited thereto.

[0115] exist Fig.12 At 1208, during the negotiation of the peer physical port, a data transmission rate desired by the requesting application is determined to operate appropriately. This determination can be accomplished in a variety of ways. For example, in various embodiments, this determination can be accomplished in any manner similar to that described and / or illustrated in the present disclosure, but is not limited thereto.

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

[0117] exist Fig.12 At 1212, multiple virtual ports are aggregated to handle the determined data transmission rate of the requesting application. The aggregation can be implemented in a variety of ways. For example, in various embodiments, the aggregation can be implemented in any manner similar to that described and / or illustrated in the present disclosure, but is not limited thereto.

[0118] At 1214, a virtual port (e.g., aggregated or single) may be assigned to the requesting application, and the operating system interface may be notified of the virtual port assigned to the requesting application. The assignment may be accomplished in a variety of ways. For example, in various embodiments, the assignment may be accomplished in any manner similar to that described and / or illustrated in the present disclosure, but is not limited thereto.

[0119] exist Fig.12At 1216, it is determined whether the application is completed using the allocated virtual port. If so, the method 1200 can proceed to the beginning of operation 1206. However, if it is determined at 1216 that the application is not completed using the allocated virtual port, the method 1200 can proceed to the beginning of operation 1216. Note that this determination can be implemented in a variety of ways. For example, in various embodiments, this determination can be implemented in any manner similar to that described and / or illustrated in the present disclosure, but is not limited thereto.

[0120] Fig.13 A block diagram illustrating an example of a computing system 1300 according to the present invention is shown. In its most basic configuration, the system 1300 may include at least one processing unit (or processor) 1302 for executing the method 900 and a memory 1304. Fig.13 1306. According to various embodiments of the present disclosure, the system 1300 may be implemented in various ways. For example, the system 1300 may be implemented as, but not limited to, a network switch system, a network router system, a network communication device, a network device, a computer system, a laptop computer system, a smart phone, a desktop computer system, etc.

[0121] Reference is now made in detail to various embodiments of the present disclosure, examples of which are shown in the accompanying drawings. Although described in conjunction with various embodiments, it should be understood that these various embodiments are not intended to limit the present disclosure. On the contrary, the present disclosure is intended to cover replacements, modifications and equivalents that may be included within the scope of the present disclosure as interpreted according to the claims. In addition, in the foregoing detailed description of the various embodiments of the present disclosure, many specific details are set forth to provide a thorough understanding of the present disclosure. However, those skilled in the art will recognize that the present disclosure can be practiced without these specific details or their equivalents. In other cases, well-known methods, processes, components and circuits are not described in detail to avoid unnecessarily obscuring the various aspects of the various embodiments of the present disclosure.

[0122] It should be noted that, although for the sake of clarity, the method may be described herein as a sequence of numbered operations, the numbering does not necessarily indicate the order of the operations. It should be understood that some operations may be skipped, performed in parallel, or performed without maintaining a strict order. The accompanying drawings showing various embodiments according to the present disclosure are semi-schematic and not to scale, and in particular, some dimensions are for clarity of presentation and are exaggeratedly shown in the accompanying drawings. Similarly, although for ease of description, the views in the accompanying drawings generally show similar orientations, such depictions in the accompanying drawings are arbitrary for the most part. Generally, various embodiments according to the present disclosure can be operated in any orientation.

[0123] Some parts of the specific embodiments are given in the form of processes, logic blocks, processing and other symbolic representations of the operations of the data bits in the computer memory. The technical personnel in the field of data processing use these descriptions and representations to effectively convey the essence of their work to other technical personnel in the field. In the present disclosure, processes, logic blocks, processes, etc. are considered to be self-consistent sequences of operations or instructions that lead to desired results. These operations are operations that utilize the physical manipulation of physical quantities. Usually, although not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared and otherwise manipulated in a computing system. Mainly for general reasons, it is sometimes proven to be convenient to refer to these signals as transactions, bits, values, elements, symbols, characters, samples, pixels, etc.

[0124] It should be remembered, however, that all of these and similar terms will be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless otherwise stated, as will be apparent from the following discussion, it should be understood that throughout this disclosure, discussions utilizing terms such as "generate," "determine," "allocate," "aggregate," "utilize," "virtualize," "process," "access," "execute," "store," etc. refer to the actions and processes of a computer system or similar electronic computing device or processor. A computing system or similar electronic computing device or processor manipulates and transforms data represented as physical (electronic) quantities in a computer system memory, registers, other such information storage devices, and / or other computer-readable media into other data similarly represented as physical quantities in a computer system memory or registers or other such information storage devices, transmission, or display devices.

[0125] With reference to the drawings of the embodiments of the present application, the technical solutions in the embodiments of the present application have been clearly and completely described in the previous sections. It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned 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 can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented in an order different from that shown or described herein.

[0126] The functions described in the method of this embodiment, if implemented in the form of a software functional unit and sold or used as an independent product, can be stored in a computing device readable storage medium. Based on such an understanding, a part of the embodiment of the present application or a part of the technical solution that contributes to the prior art can be implemented 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 perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: a USB drive device, a portable hard disk, a read-only memory (ROM), a random access memory (RAM), a disk, an optical disk, etc. that can store program code.

[0127] The various embodiments in the specification of the present application are described in a progressive manner, and each embodiment focuses on its difference from other embodiments, and the same or similar parts between the various embodiments may be referred to as another case. The described embodiments are only a part of the embodiments, not all embodiments of the present application. All other embodiments obtained by ordinary technicians in this field 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.

[0128] The above description of the disclosed embodiments enables those skilled in the art to make or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application is not limited to the embodiments shown herein, but to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A network device, comprising: a plurality of physical transceiver ports that transmit data across a network at a predetermined fixed data rate; as well as a virtual circuit coupled to the plurality of physical transceiver ports, the virtual circuit being configured to: receiving a first transmission request from a processor to transmit a first input data stream at a first non-predetermined data rate; establishing a first virtual port to receive the first input data stream; selecting one or more physical transceiver ports from the plurality of physical transceiver ports to form one or more selected physical transceiver ports in response to the first transmission request, wherein the one or more selected physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate; receiving the first input data stream from the processor through the virtual port after the one or more physical transceiver ports have been selected; forming one or more output data streams operating at the predetermined fixed data rate, the one or more output data streams incorporating the data from the first input data stream, the data from the first input data stream incorporated into the one or more output data streams being timed to selected pulses within a transmit clock signal operating at the predetermined fixed data rate; as well as forwarding the one or more outgoing data streams to the one or more selected physical transceiver ports, wherein when the first non-predetermined data rate of the first input data stream is less than the predetermined fixed data rate of the physical transceiver port, the virtual circuit is used to select a physical transceiver port from the plurality of physical transceiver ports to form a selected physical transceiver port having a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream, wherein the virtual circuit is further configured to form an output data stream operating at the predetermined fixed data rate, the output data stream incorporating the data from the input data stream, the data from the input data stream incorporated into the output data stream being timed to selected pulses within the transmit clock signal, and The virtual circuit is also used for: receiving a second transmission request from the processor to transmit a second input data stream at a second non-predetermined data rate less than the predetermined fixed data rate of the selected physical transceiver port; establishing a second virtual port to receive the second input data stream; as well as A determination is made as to whether the selected physical transceiver port has an available data rate greater than the second non-predetermined data rate.

2. The network device according to claim 1, wherein the virtual circuit is further used for: receiving the second input data stream from the processor at the second non-predetermined data rate after determining the available data rate; generating a modified output data stream to incorporate the data from the first input data stream and the second input data stream when the available data rate of the selected physical transceiver port is greater than the second non-predetermined data rate, wherein the data from the first input data stream and the second input data stream are clocked to a selected transmit clock signal; as well as The modified outgoing data stream is forwarded to the selected physical transceiver port.

3. The network device of claim 2 , wherein the predetermined fixed data rate has a data rate of x bits per second, and the virtual circuit subdivides the predetermined fixed data rate of x bits per second of the physical transceiver port into fractional parts, allocates the fractional parts to the first input data flow and the second input data flow having a non-predetermined data rate smaller than the predetermined fixed data rate of the physical transceiver port, and combines the fractional parts so that the combined bits per second of the combined data flow is equal to or less than the predetermined fixed data rate of x bits per second of the physical transceiver port.

4. The network device of claim 2, wherein determining whether the selected physical transceiver port has an available data rate greater than the second non-predetermined data rate comprises: subtracting the first non-scheduled data rate from the predetermined fixed data rate of the first input data stream to obtain the available data rate; and comparing the available data rate to the second non-predetermined data rate.

5. The network device of claim 1 , wherein when the non-predetermined data rate of the input data stream is greater than the predetermined fixed data rate of a physical transceiver port, the virtual circuit is configured to: establishing a virtual port to receive the input data stream from the processor; and Two or more physical transceiver ports are selected from the plurality of physical transceiver ports, wherein the two or more selected physical transceiver ports have a combined predetermined fixed data rate that is greater than the non-predetermined data rate of the input data stream.

6. The network device of claim 5 , wherein the virtual circuit is further configured to split the input data stream received from the virtual port into two or more split data streams corresponding to the two or more selected physical transceiver ports, each of the two or more split data streams having a non-predetermined data rate that is smaller than the predetermined fixed data rate.

7. The network device of claim 6, wherein the virtual circuit is further used to form two or more output data streams operating 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 into the two or more output data streams being timed to selected pulses within the transmit clock signal.

8. A method of operating a network device, the method comprising: receiving a first transmission request from a processor to transmit a first input data stream at a first non-predetermined data rate; establishing a virtual port to receive the first input data stream; selecting one or more physical transceiver ports from a plurality of physical transceiver ports that transmit data across a network at a predetermined fixed data rate to form one or more selected physical transceiver ports, wherein the one or more selected physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate; receiving the first input data stream from the processor through the virtual port after the one or more physical transceiver ports have been selected; forming one or more output data streams operating at the predetermined fixed data rate, the one or more output data streams incorporating the data from the first input data stream, the data from the first input data stream incorporated into the one or more output data streams being timed to selected pulses within a transmit clock signal operating at the predetermined fixed data rate; as well as forwarding the one or more outgoing data streams to the one or more selected physical transceiver ports, The method further comprises: when the first non-predetermined data rate of the first input data stream is less than the predetermined fixed data rate of the physical transceiver port: selecting a physical transceiver port from the plurality of physical transceiver ports to form a selected physical transceiver port, wherein the selected physical transceiver port has a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream; establishing a virtual port to receive the input data stream; and forming an output data stream corresponding to the selected physical transceiver port to operate at the predetermined fixed data rate, the output data stream incorporating the data from the input data stream, the data from the input data stream incorporated into the output data stream being timed to selected pulses within the transmit clock signal; The method further comprises: receiving a second request from the processor to transmit a second input data stream at a second non-predetermined data rate, the second non-predetermined data rate being less than the predetermined fixed data rate of the selected physical transceiver port; determining whether the selected physical transceiver port has an available data rate greater than the second non-predetermined data rate; receiving the second input data stream from the processor after determining the available data rate; generating a reformatted output data stream to incorporate the data from the first input data stream and the second input data stream when the available data rate of the selected physical transceiver port is greater than the second non-predetermined data rate, wherein the data from the first input data stream and the second input data stream are clocked to a selected transmit clock signal; and The reformulated outgoing data stream is forwarded to the selected physical transceiver port.

9. The method according to claim 8, further comprising: When the first non-predetermined data rate of the first input data stream is greater than the predetermined fixed data rate of the physical transceiver port: selecting two or more physical transceiver ports from the plurality of physical transceiver ports, wherein the two or more selected physical transceiver ports have a combined predetermined fixed data rate greater than the non-predetermined data rate of the input data stream; establishing a virtual port to receive the input data stream; as well as The input data stream received from the virtual port is split into two or more split data streams corresponding to the two or more selected physical transceiver ports, each of the two or more split data streams having a non-predetermined data rate less than the non-predetermined data rate of the input data stream.

10. The method according to claim 9, further comprising: Two or more output data streams operating at the predetermined fixed data rate are formed, the two or more output data streams incorporating the data from the two or more segmented data streams, the data from the segmented data streams incorporated into the two or more output data streams being timed to selected pulses within the transmit clock signal.

11. A network system comprising: network; a first network device coupled to the network, the first network device having: a plurality of first physical transceiver ports that transmit data across the network at a predetermined fixed data rate; and a first virtual circuit coupled to the plurality of first physical transceiver ports, the first virtual circuit being configured to: receiving a first transmission request from a processor to transmit a first input data stream at a first non-predetermined data rate; establishing a first virtual port to receive the first input data stream; selecting one or more first physical transceiver ports from the plurality of first physical transceiver ports to form one or more selected first physical transceiver ports, wherein the one or more selected first physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate; receiving the first input data stream from the processor through the first virtual port after the one or more first physical transceiver ports have been selected; forming one or more output data streams operating at the predetermined fixed data rate, the one or more output data streams incorporating the data from the first input data stream, the data from the first input data stream incorporated into the one or more output data streams being timed to selected pulses within a transmit clock signal operating at the predetermined fixed data rate; as well as forwarding the one or more outgoing data streams to the one or more selected first physical transceiver ports; as well as a second network device coupled to the network, the second network device having: a plurality of second physical transceiver ports that transmit data across the network; and a second virtual circuit coupled to the plurality of second physical transceiver ports, the second virtual circuit being configured to: receiving a first network request from the first virtual circuit to receive the one or more output data streams from the one or more selected first physical transceiver ports at the first non-predetermined data rate; selecting one or more second physical transceiver ports from the plurality of second physical transceiver ports to form one or more selected second physical transceiver ports corresponding to the one or more selected first physical transceiver ports in response to the request from the first virtual circuit, wherein the one or more selected second physical transceiver ports have a combined predetermined fixed data rate greater than the first non-predetermined data rate; as well as receiving the one or more outgoing data streams from the first network device using the selected one or more second physical transceiver ports, The second virtual circuit is used for: extracting from the one or more output data streams the data from the first input data stream incorporated into the one or more output data streams to form one or more reconstructed data streams operating at the first non-predetermined data rate, the one or more reconstructed data streams substantially matching the one or more first input data streams; as well as forwarding the one or more reconstructed data streams to a second processor, wherein when the first non-predetermined data rate of the first input data stream is less than the predetermined fixed data rate of the physical transceiver port, the first virtual circuit is used to select a first physical transceiver port from the plurality of first physical transceiver ports to form a selected first physical transceiver port, wherein the selected first physical transceiver port has a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream, and the second virtual circuit is used to select a second physical transceiver port from a plurality of second physical transceiver ports to form a selected second physical transceiver port, wherein the selected second physical transceiver port has a corresponding selected first physical transceiver port and a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream, wherein the first virtual circuit is further configured to form an output data stream operating at the predetermined fixed data rate, the output data stream incorporating the data from the input data stream, the data from the input data stream incorporated into the output data stream being timed to selected pulses within the transmit clock signal, and The first virtual circuit is further used for: receiving a second transmission request from the processor to transmit a second input data stream at a second non-predetermined data rate less than the predetermined fixed data rate of the selected first physical transceiver port; establishing a second virtual port to receive the second input data stream; as well as A determination is made as to whether the selected first physical transceiver port has an available data rate greater than the second non-predetermined data rate.

12. The network system according to claim 11, wherein when the first non-predetermined data rate of the first input data stream is greater than the predetermined fixed data rate of the physical transceiver port, the first virtual circuit is used to select two or more first physical transceiver ports from the plurality of first physical transceiver ports, wherein the two or more selected first physical transceiver ports have a combined predetermined fixed data rate greater than the non-predetermined data rate of the input data stream, and the second virtual circuit is used to select two or more second physical transceiver ports corresponding to the selected two or more first physical transceiver ports from the plurality of second physical transceiver ports, wherein the two or more selected second physical transceiver ports have a combined predetermined fixed data rate greater than the non-predetermined data rate of the input data stream.

13. A non-transitory computer-readable storage medium having program instructions embedded therein, wherein the program instructions, when executed by a processor, cause the processor to perform a method of operating a network device, the method comprising: receiving a first transmission request from a processor to transmit a first input data stream at a first non-predetermined data rate; establishing a virtual port to receive the first input data stream; selecting one or more physical transceiver ports from a plurality of physical transceiver ports that transmit data across a network at a predetermined fixed data rate to form one or more selected physical transceiver ports, wherein the one or more selected physical transceiver ports have a total predetermined fixed data rate greater than the first non-predetermined data rate; receiving the first input data stream from the processor through the virtual port after the one or more physical transceiver ports have been selected; forming one or more output data streams operating at the predetermined fixed data rate, the one or more output data streams incorporating the data from the first input data stream, the data from the first input data stream incorporated into the one or more output data streams being timed to selected pulses within a transmit clock signal operating at the predetermined fixed data rate; as well as forwarding the one or more outgoing data streams to the one or more selected physical transceiver ports, The method further comprises: when the first non-predetermined data rate of the first input data stream is less than the predetermined fixed data rate of the physical transceiver port: selecting a physical transceiver port from the plurality of physical transceiver ports to form a selected physical transceiver port, wherein the selected physical transceiver port has a predetermined fixed data rate greater than the first non-predetermined data rate of the first input data stream; establishing a virtual port to receive the input data stream; and forming an output data stream corresponding to the selected physical transceiver port to operate at the predetermined fixed data rate, the output data stream incorporating the data from the input data stream, the data from the input data stream incorporated into the output data stream being timed to selected pulses within the transmit clock signal, The method further comprises: receiving a second request from the processor to transmit a second input data stream at a second non-predetermined data rate, the second non-predetermined data rate being less than the predetermined fixed data rate of the selected physical transceiver port; determining whether the selected physical transceiver port has an available data rate greater than the second non-predetermined data rate; receiving the second input data stream from the processor after determining the available data rate; generating a reformatted output data stream to incorporate the data from the first input data stream and the second input data stream when the available data rate of the selected physical transceiver port is greater than the second non-predetermined data rate, wherein the data from the first input data stream and the second input data stream are clocked to a selected transmit clock signal; and The reformulated outgoing data stream is forwarded to the selected physical transceiver port.

Citation Information

Patent Citations

  • Variable rate high-speed input and output in optical communication networks

    US20020039211A1

  • Transmission device, transmission control method, and recording medium

    US20180213462A1