Transmission method, device, equipment and network
Patent Information
- Application Number
- CN202380095017.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-03-13
- Filing Date
- 2023-11-23
- Publication Date
- 2025-10-03
AI Technical Summary
Existing tree-topology-based connection methods and data transmission between multimedia devices are limited and cannot meet the needs of multi-device interaction in the Internet of Things.
Virtual channels for business operations are established between devices connected by ports. Free connection and data transmission between devices are achieved by using the packet forwarding rules indicated by the router's forwarding table. Bidirectional transmission of business flows is supported, and the bandwidth and direction of the virtual channels can be flexibly configured.
It enhances the flexibility of networking and data transmission between devices, supports multiple signal or data transmission methods, and improves the freedom of connection and data transmission efficiency between devices.
Smart Images

Figure CN120752901A_ABST
Abstract
Description
Transmission method, device, equipment and network
[0001] This application claims priority to a patent application filed with the State Intellectual Property Office on March 13, 2023, with application number PCT / CN2023 / 081172 and application name “Routing Method, Routing Information Configuration Method and Electronic Device,” the entire contents of which are incorporated herein by reference. Technical Field
[0002] The present application relates to the field of communications, and in particular to a transmission method, apparatus, device, and network. Background Art
[0003] Currently, multimedia devices are interconnected using a tree-like topology and transmit data based on the High Definition Multimedia Interface (HDMI) protocol. With the development of the Internet of Things (IoT), the number of multimedia devices is increasing, and the amount of information exchanged between these devices is increasing. This has limited the connection and data transmission between devices based on the traditional tree-like topology.
[0004] Summary of the Invention
[0005] The present application provides a transmission method, apparatus, device and network, thereby improving the flexibility of networking and data transmission between devices.
[0006] In a first aspect, a transmission method is provided. A first device and a second device are connected via a port. The method includes: obtaining a packet of a first service flow from a receive buffer; and transmitting the packet of the first service flow through a send buffer of a first service virtual channel between the first device and the second device according to a router forwarding table. The router forwarding table is used to indicate a packet forwarding rule based on the service virtual channel. The service virtual channel is used to support bidirectional transmission of service flows between the two devices.
[0007] The transmission method provided by the present application enables free connection between devices through ports, realizes bidirectional transmission of service flows between interconnected devices based on service virtual channels, and forwards service flow messages according to the message forwarding rules based on the service virtual channels indicated by the router forwarding table, thereby realizing free connection and data transmission between devices and improving the flexibility of networking and data transmission between devices.
[0008] In a possible implementation, the message of the first service flow includes a first channel identifier, where the first channel identifier indicates a first service virtual channel.
[0009] Therefore, virtual channels of different service flows are distinguished based on the shuttle identity (Shuttle ID).
[0010] In another possible implementation, the forward bandwidth of the first service virtual channel is inconsistent with the reverse bandwidth of the first service virtual channel. The forward direction is the direction from the first device to the second device, and the reverse direction is the direction from the second device to the first device.
[0011] Thus, multiple signals or data can be transmitted between devices, improving the flexibility of data transmission.
[0012] In another possible implementation, the service virtual channel is a unidirectional virtual channel, with a forward bandwidth of 0 or a reverse bandwidth of 0.
[0013] In another possible implementation, the forward bandwidth of the first service virtual channel is consistent with the reverse bandwidth of the first service virtual channel.
[0014] In another possible implementation, the first device and the second device are connected through a port, including: the first device and the second device are connected through a unified multimedia interconnection.
[0015] In another possible implementation, the first device includes a management adapter, multiple service adapters, and multiple ports. Each port includes a management virtual channel and multiple service virtual channels. The management adapter and the multiple service adapters constitute a virtual port.
[0016] In another possible implementation, the router forwarding table includes inflow information and outflow information. The inflow information is used to indicate the port identifier and channel identifier corresponding to the inflow, and the outflow information is used to indicate the destination port identifier and destination channel identifier corresponding to the outflow.
[0017] In another possible implementation, obtaining the first service flow message from the receiving buffer includes: obtaining the first service flow message from the receiving buffer of the first service adapter in the first device. The first service flow message is obtained by converting the signal or data to be transmitted.
[0018] Thus, the device can send its own message obtained from the service adapter as a message of the service flow through the service virtual channel.
[0019] In another possible implementation, obtaining the message of the first business flow from the receiving buffer includes: obtaining the message of the first business flow from the receiving buffer of the second business virtual channel, and the receiving port prohibiting forwarding the message of the business virtual channel of the receiving port to another business virtual channel of the receiving port.
[0020] Thus, the device forwards the message received from one service virtual channel to the message of the service flow through another service virtual channel.
[0021] In another possible implementation, the method further includes: forwarding the message of the first service flow to a sending buffer of the second service adapter in the first device according to a router forwarding table.
[0022] Thus, the device forwards the acquired message to the service adapter, which then converts the message into a signal or data.
[0023] In another possible implementation, the first service adapter and the second service adapter in the first device form a virtual path to implement message transmission between the adapters.
[0024] In another possible implementation, the router forwarding table indicates multiple outgoing flow information, and the method further includes: transmitting the message of the first business flow through the sending buffer of the third business virtual channel indicated by the router forwarding table, when the message of the same business flow is forwarded to another port, the port has at most one business virtual channel.
[0025] In another possible implementation, the virtual path between the two adapters includes multiple cascaded virtual channels, and the virtual path supports bidirectional transmission.
[0026] Thus, the device realizes the multicast function based on the service virtual channel.
[0027] In another possible implementation, the router forwarding table further includes a reception count, where the reception count is used to indicate the number of virtual paths using the service virtual channel.
[0028] This allows the device to forward messages based on the received count.
[0029] In another possible implementation, the method further includes: transmitting the message of the second service flow through the sending buffer of the fourth service virtual channel according to the router forwarding table, and the first service virtual channel and the fourth service virtual channel belong to the same port.
[0030] This enables the transmission of multiple service flows through multiple virtual channels on the same link.
[0031] In another possible implementation, the method further includes: acquiring a first management message from the management virtual channel, and forwarding the first management message to a management adapter in the first device.
[0032] In another possible implementation, the method further includes: acquiring a second management message from the management adapter of the first device, and forwarding the second management message to a management virtual channel in a port designated by the management adapter in the first device.
[0033] Thus, the forwarding of management messages between devices is achieved.
[0034] In a second aspect, a transmission network is provided, the transmission network including a first device, a second device, and a routing device, wherein the first device, the second device, and the routing device are connected via a port;
[0035] The first device is configured to transmit a message of a first service flow to the second device through the routing device, where the message of the first service flow is obtained after converting the first data;
[0036] The first device is further configured to transmit a message of a second service flow to the second device through the routing device, where the message of the second service flow is obtained after converting the second data;
[0037] The second device is used to transmit the message of the third service flow to the first device through the routing device, where the message of the third service flow is obtained after converting the third data.
[0038] In one possible implementation, the first device is further configured to obtain a message of the first service flow from a receive buffer of a first service adapter in the first device; the first device is further configured to obtain a message of the second service flow from a receive buffer of a second service adapter in the first device.
[0039] In another possible implementation, the first device is specifically configured to transmit, according to a first router forwarding table, a message of a first service flow to a routing device through a send buffer of a first service virtual channel, where the first service virtual channel is a virtual channel between the first device and the routing device, the router forwarding table is configured to indicate a message forwarding rule based on the service virtual channel, and the service virtual channel is configured to support bidirectional transmission of service flows between the two devices;
[0040] The routing device is configured to receive a message of the first service flow through a receiving buffer of the first service virtual channel;
[0041] The routing device is further configured to transmit the message of the first service flow to the second device through the sending buffer of the second service virtual channel according to the second router forwarding table, where the second service virtual channel is a virtual channel between the routing device and the second device;
[0042] The second device is specifically configured to receive the message of the first service flow through the receiving buffer of the second service virtual channel;
[0043] The second device is further configured to forward the message of the first service flow to the receiving buffer of the service adapter in the second device according to the third router forwarding table, and the service adapter restores the signal or data obtained by the first service flow.
[0044] In another possible implementation, the first device is specifically configured to transmit, according to the first router forwarding table, a message of the second service flow to the routing device through a sending buffer of a third service virtual channel, where the third service virtual channel is a virtual channel between the first device and the routing device;
[0045] The routing device is further configured to receive the message of the second service flow through the receiving buffer of the third service virtual channel;
[0046] The routing device is further configured to transmit the message of the second service flow to the second device through the sending buffer of the fourth service virtual channel according to the second router forwarding table, where the fourth service virtual channel is a virtual channel between the routing device and the second device;
[0047] The second device is specifically configured to receive a message of the second service flow through a receiving buffer of the fourth service virtual channel;
[0048] The second device is further configured to forward the message of the second service flow to the receiving buffer of the service adapter in the second device according to the third router forwarding table.
[0049] In another possible implementation, the second device is further configured to obtain the message of the third service flow from a receiving buffer of a third service adapter in the second device.
[0050] In another possible implementation, the second device is specifically configured to transmit, according to the third router forwarding table, a message of the third service flow to the routing device through a sending buffer of a fifth service virtual channel, where the fifth service virtual channel is a virtual channel between the second device and the routing device;
[0051] The routing device is further configured to receive a message of the third service flow through a receiving buffer of the fifth service virtual channel;
[0052] The routing device is further configured to transmit the message of the third service flow to the first device through the sending buffer of the sixth service virtual channel according to the second router forwarding table, where the sixth service virtual channel is a virtual channel between the routing device and the first device;
[0053] The first device is specifically configured to receive a message of a third service flow through a receiving buffer of a sixth service virtual channel;
[0054] The first device is further configured to forward the message of the third service flow to the receiving buffer of the service adapter in the first device according to the first router forwarding table.
[0055] According to a third aspect, a transmission network is provided. The transmission network includes a first device, a second device, and a third device, wherein the first device, the second device, and the third device are connected via a port.
[0056] The first device is configured to obtain a message of a first service flow from a receiving buffer of a service adapter of the first device, where the message of the first service flow is obtained after converting the first data;
[0057] The first device is further configured to transmit a message of the first service flow to the second device through a send buffer of the first service virtual channel according to a first router forwarding table, the router forwarding table being configured to indicate a message forwarding rule based on the service virtual channel, the service virtual channel being configured to support bidirectional transmission of service flows between the two devices;
[0058] The second device is configured to receive the message of the first service flow through the receiving buffer of the first service virtual channel;
[0059] The second device is further configured to transmit the message of the first service flow to the third device through the sending buffer of the second service virtual channel according to the second router forwarding table;
[0060] The second device is further configured to forward the message of the first service flow to a receiving buffer of the service adapter in the second device according to the second router forwarding table, and the service adapter restores the signal or data obtained by the first service flow;
[0061] A third device is configured to receive the message of the first service flow through the receiving buffer of the second service virtual channel;
[0062] The third device is further configured to forward the message of the first service flow to the receiving buffer of the service adapter in the third device according to the third router forwarding table, and the service adapter restores the first service flow to obtain the signal or data.
[0063] In a fourth aspect, a transmission network is provided, which includes a first device, a second device, a third device and multiple routing devices, and the first device, the second device, the third device and the multiple routing devices are connected through ports; the first device is used to execute the operating steps of the method in the first aspect or any possible implementation of the first aspect.
[0064] In a possible implementation manner, the network topology of the transmission network is a star topology or a mesh topology.
[0065] In a fifth aspect, a transmission device is provided, comprising modules for executing the operation steps of the method in the first aspect or any possible implementation of the first aspect. For example, the transmission device comprises a receiving module and a sending module.
[0066] A receiving module, configured to obtain a message of a first service flow from a receiving buffer;
[0067] A sending module is used to transmit the message of the first business flow through the sending buffer of the first business virtual channel according to the router forwarding table, the first business virtual channel is a virtual channel between the first device and the second device, the router forwarding table is used to indicate the message forwarding rules based on the business virtual channel, and the business virtual channel is used to support bidirectional transmission of business flows between the two devices.
[0068] In a possible implementation, the message of the first service flow includes a first channel identifier, where the first channel identifier indicates a first service virtual channel.
[0069] In another possible implementation, the forward bandwidth of the first service virtual channel is inconsistent with the reverse bandwidth of the first service virtual channel. The forward direction is the direction from the first device to the second device, and the reverse direction is the direction from the second device to the first device.
[0070] In another possible implementation, the service virtual channel is a unidirectional virtual channel, with a forward bandwidth of 0 or a reverse bandwidth of 0.
[0071] In another possible implementation, the forward bandwidth of the first service virtual channel is consistent with the reverse bandwidth of the first service virtual channel.
[0072] In another possible implementation, the first device and the second device are connected through a port, including: the first device and the second device are connected through a unified multimedia interconnection.
[0073] In another possible implementation, the first device includes a management adapter, multiple service adapters, and multiple ports. Each port includes a management virtual channel and multiple service virtual channels. The management adapter and the multiple service adapters constitute a virtual port.
[0074] In another possible implementation, the router forwarding table includes inflow information and outflow information. The inflow information is used to indicate the port identifier and channel identifier corresponding to the inflow, and the outflow information is used to indicate the destination port identifier and destination channel identifier corresponding to the outflow.
[0075] In another possible implementation, when the receiving module obtains the message of the first service flow from the receiving buffer, it is specifically configured to obtain the message of the first service flow from the receiving buffer of the first service adapter in the first device. The message of the first service flow is obtained by converting the signal or data to be transmitted.
[0076] In another possible implementation, when the receiving module obtains the message of the first business flow from the receiving buffer, it is specifically used to: obtain the message of the first business flow from the receiving buffer of the second business virtual channel, and the receiving port is prohibited from forwarding the message of the business virtual channel of the receiving port to another business virtual channel of the receiving port.
[0077] In another possible implementation, the sending module is further configured to forward the message of the first service flow to a sending buffer of the second service adapter in the first device according to a router forwarding table.
[0078] In another possible implementation, the first service adapter and the second service adapter in the first device form a virtual path.
[0079] In another possible implementation, the router forwarding table indicates multiple outgoing flow information, and the sending module is further used to: transmit the message of the first business flow through the sending buffer of the third business virtual channel indicated by the router forwarding table. When the message of the same business flow is forwarded to another port, the port has at most one business virtual channel.
[0080] In another possible implementation, the virtual path between the two adapters includes multiple cascaded virtual channels, and the virtual path supports bidirectional transmission.
[0081] In another possible implementation, the router forwarding table further includes a reception count, where the reception count is used to indicate the number of virtual paths using the service virtual channel.
[0082] In another possible implementation, the sending module is further configured to: transmit the message of the second service flow through the sending buffer of the fourth service virtual channel according to the router forwarding table, and the first service virtual channel and the fourth service virtual channel belong to the same port.
[0083] In another possible implementation, the receiving module is further configured to: obtain a first management message from the management virtual channel; and the sending module is further configured to forward the first management message to a management adapter in the first device.
[0084] In another possible implementation, the receiving module is further configured to: obtain a second management message from the management adapter of the first device; and the sending module is further configured to forward the second management message to a management virtual channel in a port specified by the management adapter in the first device.
[0085] In a sixth aspect, an electronic device is provided, which includes a memory and a processor, the memory being used to store a set of computer instructions; when the processor executes the set of computer instructions, the processor executes the operating steps of the method in the first aspect or any possible implementation of the first aspect.
[0086] In the seventh aspect, a chip is provided, comprising one or more interface circuits and one or more processors; the interface circuit is used to receive signals from a memory of an electronic device and send signals to the processor, the signals including computer instructions stored in the memory; when the processor executes the computer instructions, the processor executes the operating steps of the method in the first aspect or any possible implementation of the first aspect.
[0087] In an eighth aspect, a computer-readable storage medium is provided, which stores a computer program. When the computer program runs on a computer or a processor, the computer or the processor executes the operating steps of the method in the first aspect or any possible implementation of the first aspect.
[0088] The technical effects brought about by any design method in the second to eighth aspects can be referred to the technical effects brought about by the first aspect or different design methods in the first aspect, and will not be repeated here.
[0089] Based on the implementation methods provided in the above aspects, this application can also be further combined to provide more implementation methods.
[0090] The present application provides a routing method, a routing information configuration method, and an electronic device. The routing method can multicast messages (i.e., multicast messages of the same data stream to multiple receiving terminals), thereby quickly and efficiently implementing data stream multicast services; and can also save resources (e.g., bandwidth resources, equipment resources, etc.).
[0091] [Corrected 30.11.2023 according to Rule 91] In a ninth aspect, an embodiment of the present application provides a routing method, the method comprising: first, reading a message from a first buffer area, the first buffer area corresponding to a source port of the received message; then, determining a plurality of target outflow information based on routing information, a first port identifier of the source port, and a first shuttle identifier of the source shuttle obtained from a message header of the message; wherein the routing information comprises a plurality of outflow information groups, one outflow information group comprises a plurality of outflow information, and one outflow information group corresponds to a shuttle of one port; thereafter, determining a plurality of target ports and a plurality of target shuttles based on the plurality of target outflow information, the plurality of target ports and the plurality of target shuttles corresponding one to one, and one target outflow information being used to determine a target port and a target shuttle; subsequently, adding the message to a plurality of second buffer areas, one second buffer area corresponding to one target port.
[0092] Because the routing information includes multiple outbound flow information corresponding to a shuttle at a port, one outbound flow information can be used to identify a port and a shuttle. Furthermore, based on the first port identifier and the first shuttle identifier of the source shuttle, multiple target outbound flow information is read from the routing information to determine multiple target ports and multiple target shuttles. Subsequently, based on the multiple target ports and multiple target shuttles, message multicasting can be achieved; that is, the same message can be sent to multiple devices simultaneously. Compared to the prior art, the routing method of the present application does not require the addition of additional equipment, data backhaul, or the sending of multiple data streams, thereby enabling fast and efficient data stream multicast services while also saving resources.
[0093] Illustratively, a shuttle (i.e., a shuttle) can refer to a bidirectional virtual channel between two ports on the same physical link (i.e., two ports between two directly connected end devices) for transmitting all messages of the same data stream. The shuttle identifier can also be referred to as a shuttle ID. Illustratively, this application combines all adapters in an end device into a virtual port (Port 0), where an adapter is a shuttle on that port, and the adapter ID of the adapter is the shuttle ID.
[0094] Exemplarily, the source port may refer to a port that receives messages sent by other end devices / devices of the end device itself, the source shuttle may refer to a shuttle that receives messages sent by other end devices / devices of the end device itself, and the source shuttle may be one of the multiple shuttles of the source port.
[0095] In one possible approach, a receive buffer (RBuff) and a transmit buffer (SBuff) can be established for one or more shuttles with a higher priority based on their priorities. The number of receive buffers included in each port is smaller than the number of shuttles it includes, and the number of transmit buffers included in each port is smaller than the number of shuttles it includes. Exemplarily, the first buffer is the receive buffer corresponding to the source port, and the second buffer is the transmit buffer corresponding to the source port.
[0096] In one possible approach, a receive buffer and a transmit buffer can be established for each shuttle. Each port can have the same number of receive buffers as the number of shuttles it contains, and each port can have the same number of receive buffers as the number of shuttles it contains. In this case, the first buffer can be the receive buffer (RBuff) corresponding to the source shuttle of the source port, and the second buffer can be the transmit buffer (SBuff) corresponding to the target shuttle of the target port. This application uses the example of one receive buffer and one transmit buffer corresponding to one shuttle.
[0097] Exemplarily, the target port may refer to a port for sending messages to other end devices / devices of the end device itself, the target shuttle may refer to a shuttle for sending messages to other end devices / devices of the end device itself, and the target shuttle may be one of the multiple shuttles of the target port.
[0098] For example, a port can be uniquely identified based on a port identifier; a shuttle can be uniquely identified based on a port identifier and a shuttle identifier.
[0099] Exemplarily, the routing information may also include multiple inflow information, and a shuttle of a port may correspond to one inflow information; wherein, in the process of sending messages to other end devices / devices of the end device itself, the messages in the second buffer area may be scheduled according to the inflow information.
[0100] For example, assume that an end device includes M ports, and the numbers of shuttles corresponding to these M ports are N1, N2, N3, ..., NM, respectively. Any two values of N1, N2, N3, ..., NM may be the same or different, and this application does not impose any restrictions thereon. For example, the routing information in the end device may include M inbound flow information sets and M outbound flow information sets corresponding to the M ports, where each port corresponds to one inbound flow information set and one outbound flow information set. M, N1, N2, N3, ..., NM are all positive integers.
[0101] For example, for the kth port (k is a positive integer between 1 and M, inclusive), assuming that the kth port corresponds to Nk shuttles, an inbound flow information set corresponding to the kth port may include Nk inbound flow information (wherein, the inbound flow information may also be referred to as an inbound node). And an outbound flow information set corresponding to the kth port may include Nk outbound flow information groups (wherein, the outbound flow information groups may be referred to as an outbound linked list), each outbound flow information group including one or more outbound flow information (wherein, the outbound flow information may also be referred to as an outbound node). A shuttle of the kth port may correspond to one inbound flow information in the inbound flow information set corresponding to the kth port, and may correspond to one outbound flow information group in the outbound flow information set corresponding to the kth port. The inbound flow information corresponding to a shuttle of the kth port and the first outbound flow information in the corresponding outbound flow information group may be referred to as an entry node. The inbound flow information and the corresponding outbound flow information group corresponding to a shuttle of the kth port may be referred to as a routing table entry; routing information may include multiple routing table entries.
[0102] Exemplarily, the inflow information may be used to describe characteristics of the data flow received by the port, such as data flow priority, data flow scheduling weight, data flow bandwidth, whether flow control is enabled, whether shared buffering is used, and the like.
[0103] Exemplarily, the outflow information may be used to describe features related to the port (which may include information related to the port and the corresponding shuttle, and related characteristics of the corresponding sending buffer, etc.).
[0104] It should be understood that in one possible scenario, the partial outbound flow information group of the routing information includes only one outbound flow information. When only one target outbound flow information is determined based on the first port identifier, the first shuttle identifier, and the routing information, the message can be unicast. In this case, a target port and a target shuttle can be determined based on the target outbound flow information, and the message can be added to the second buffer corresponding to the target port.
[0105] For example, both the source port and the destination port may refer to a Unified MultiMedia Interconnection (UMI) interface, which is a high-speed interface. The UMI interface may be used for transmitting ultra-high-definition video and audio signals, supporting third-party protocol tunneling and inter-device power supply. The Unified MultiMedia Interconnection (UMI) interface may also be referred to as the Unified Multimedia Interconnection.
[0106] For example, the UMI interface supports direct connection between a source device (e.g., a set-top box) and a sink device (e.g., a television) / docking station; or supports multi-device networking, where the source device and the sink device / docking station can be networked via a routing device or a composite device.
[0107] Exemplarily, the UMI interface supports bidirectional transmission of audio and video data / third-party protocol data. That is, while the source device transmits audio and video data / third-party protocol data to the sink device / dock, it can also receive audio and video data / third-party protocol data transmitted back by the sink device / dock.
[0108] [Corrected as of November 30, 2023, in accordance with Rule 91] According to the ninth aspect, the routing information includes first routing information and second routing information, the first routing information including the first outbound flow information of an outbound flow information group, and the second routing information including the remaining outbound flow information of the outbound flow information group; the multiple target outbound flow information includes the first outbound flow information corresponding to the message and the remaining outbound flow information corresponding to the message; determining the multiple target outbound flow information based on the routing information, the first port identifier of the source port, and the first shuttle identifier of the source shuttle obtained from the message header includes: reading the first outbound flow information corresponding to the message from the first routing information based on the first shuttle identifier and the first port identifier; and reading the remaining outbound flow information corresponding to the message from the second routing information based on the first outbound flow information corresponding to the message. This improves routing efficiency and allows for rapid determination of the target port and target shuttle.
[0109] [Corrected on 30.11.2023 according to Rule 91] Exemplarily, other outgoing flow information refers to outgoing flow information other than the first outgoing flow information in the flow information group.
[0110] [Corrected 30.11.2023 according to Rule 91] Exemplarily, the first routing information may include multiple table entry nodes. Exemplarily, the first address information may be calculated based on the first shuttle identifier and the first port identifier; and then, the first outbound flow information corresponding to the message may be read from the table entry node storing the first address information.
[0111] [Corrected 30.11.2023 according to Rule 91] According to the ninth aspect, or any implementation of the ninth aspect above, the first outflow information corresponding to the message includes the first identification information; based on the first outflow information corresponding to the message, other outflow information corresponding to the message is read from the second routing information, including: when it is determined based on the first identification information that other outflow information corresponding to the message exists in the second routing information, based on the first identification information, the other outflow information corresponding to the message is read from the second routing information. Compared with directly querying the second routing information, the present application reads the other outflow information corresponding to the message from the second routing information when it is determined that other outflow information corresponding to the message exists in the second routing information. This can reduce the time for querying the second routing information, avoid invalid queries, and improve the efficiency of determining other outflow information corresponding to the message.
[0112] [Corrected 30.11.2023 according to Rule 91] For example, the second address information may be calculated based on the first identification information, and then the information stored in the second address information may be read to obtain other outflow information corresponding to the message.
[0113] [Corrected 30.11.2023 according to Rule 91] According to the ninth aspect, or any implementation of the ninth aspect, based on the first identification information, other outbound flow information corresponding to the message is read from the second routing information, including: based on the first identification information, reading the i-th outbound flow information corresponding to the message from the second routing information, the i-th outbound flow information including the second identification information, wherein the initial value of i is 2; based on the second identification information included in the i-th outbound flow information, judging whether the i+1-th outbound flow information corresponding to the message exists in the second routing information; when it is determined that the i+1-th outbound flow information corresponding to the message exists in the second routing information based on the second identification information included in the i-th outbound flow information, reading the i+1-th outbound flow information corresponding to the message from the second routing information based on the second identification information included in the i-th outbound flow information, the i+1-th outbound flow information corresponding to the message includes the second identification information; adding 1 to i, and returning to execute based on the second identification information included in the i-th outbound flow information, judging whether the i+1-th outbound flow information corresponding to the message exists in the second routing information. In this way, based on the current outbound flow information, it is determined whether the next outbound flow information exists in the second routing information. When it is determined that the next outbound flow information corresponding to the message exists in the second routing information, the next outbound flow information is read from the second routing information. This can reduce the time for querying the second routing information, avoid invalid queries, and improve the efficiency of determining other outbound flow information corresponding to the message.
[0114] [Corrected as of November 30, 2023, in accordance with Rule 91] According to the ninth aspect, or any implementation of the ninth aspect, adding the message to the plurality of second buffers includes: copying the message to the second buffer corresponding to the first destination port, and forwarding the message to the second buffer corresponding to the second destination port; wherein the second destination port is the last destination port, and the first destination port is a port other than the second destination port in the plurality of destination ports. In this way, multicasting of the message can be achieved.
[0115] [Corrected on 30.11.2023 according to Rule 91] According to the ninth aspect, or any implementation of the ninth aspect, the target outflow information includes a second port identifier and a second shuttle identifier, and based on multiple target outflow information, multiple target ports and multiple target shuttles are determined, including: determining multiple target ports based on multiple second port identifiers included in multiple target outflow information; determining a target shuttle from multiple shuttles of a target port based on a second shuttle identifier included in one target outflow information.
[0116] [Corrected 30.11.2023 according to Rule 91] According to the ninth aspect, or any implementation method of the ninth aspect above, when the first identification information is preset information, it is determined that other outgoing flow information corresponding to the message does not exist in the second routing information; when the first identification information is address information, it is determined that other outgoing flow information corresponding to the message exists in the second routing information.
[0117] [Corrected 30.11.2023 according to Rule 91] For example, the first identification information may be used to indicate whether other outgoing flow information corresponding to the message exists in the second routing information.
[0118] [Corrected 30.11.2023 in accordance with Rule 91] For example, the address information can be used to determine the address of other outgoing flow information corresponding to the message; for example, the address information can be a pointer to the address of other outgoing flow information corresponding to the message. When the first identification information is address information, the first identification information can also be used to determine the address of other outgoing flow information corresponding to the message.
[0119] [Corrected 30.11.2023 according to Rule 91] For example, the preset information can be 0 or other values, and this application does not limit this.
[0120] [Corrected 30.11.2023 according to Rule 91] It should be understood that the second identification information of the i-th outgoing flow information can be used to indicate whether the i+1-th outgoing flow information corresponding to the message exists in the second routing information.
[0121] [Corrected as of November 30, 2023, according to Rule 91] According to the ninth aspect, or any implementation of the ninth aspect, when it is determined based on the first identification information that no other outbound flow information corresponding to the message exists in the second routing information, a first destination port and a first destination shuttle are determined based on the first outbound flow information, and the first destination port and the first destination shuttle correspond to each other; and the message is forwarded to the second buffer corresponding to the first destination port. In this way, unicast of the message can be achieved.
[0122] [Corrected 30.11.2023 according to Rule 91] According to the ninth aspect, or any implementation of the ninth aspect, the message is a message of multimedia data.
[0123] [Corrected 30.11.2023 according to Rule 91] It should be understood that the message may also be a message of other data, such as a message of third-party protocol data, and this application does not impose any restrictions on this.
[0124] [Corrected 30.11.2023 according to Rule 91] In a tenth aspect, an embodiment of the present application provides a method for configuring routing information, the method comprising: determining an inflow port and multiple outflow ports corresponding to the inflow port; for the j-th outflow port among the multiple outflow ports: based on the port identifier of the j-th outflow port, configuring a first preset field of the j-th outflow information in the outflow information group; and based on the shuttle identifier of the outflow shuttle of the j-th outflow port, configuring a second preset field of the j-th outflow information; wherein the outflow information group corresponds to the inflow shuttle of the inflow port; when the j-th outflow port is not the last outflow port, configuring a third preset field of the j-th outflow information based on the address information of the j+1-th outflow information in the outflow information group; when the j-th outflow port is the last outflow port, configuring the third preset field of the j-th outflow information using the preset information.
[0125] [Corrected 30.11.2023 according to Rule 91] It should be understood that when there is only one outflow port corresponding to the inflow port, the first preset field of an outflow information in the outflow information group can be configured based on the port identifier of the outflow port; and the second preset field of the outflow information can be configured based on the shuttle identifier of the outflow shuttle of the outflow port; and the third preset field of the outflow information can be configured using preset information, wherein the outflow information group corresponds to the inflow shuttle of the inflow port.
[0126] [Corrected 30.11.2023 according to Rule 91] Exemplarily, the address information of the j+1th outgoing flow information can be used to determine the address of the j+1th outgoing flow information, for example, it can be the value of a pointer pointing to the address of the j+1th outgoing flow information.
[0127] [Corrected 30.11.2023 according to Rule 91] It should be understood that the outgoing flow information may also include other preset fields. During the routing information configuration process, other preset fields in the outgoing flow information may also be configured, and this application does not impose any restrictions on this.
[0128] [Corrected 30.11.2023 according to Rule 91] It should be understood that during the configuration of routing information, the preset fields included in the inflow information may also be configured.
[0129] [Corrected 30.11.2023 according to Rule 91] Exemplarily, in the ninth aspect and any implementation of the ninth aspect, the second port identifier can be extracted from the first preset field of the target outflow information, the second shuttle identifier can be extracted from the second preset field of the target outflow information, and the second identification information / first identification information can be extracted from the third preset field of the target outflow information.
[0130] [Corrected 30.11.2023 according to Rule 91] In an eleventh aspect, an embodiment of the present application provides a routing device, which may include:
[0131] [Corrected 30.11.2023 according to Rule 91] A message reading module, configured to read a message from a first buffer area, the first buffer area corresponding to a source port for receiving the message;
[0132] [Corrected 30.11.2023 according to Rule 91] A routing module, configured to determine a plurality of target outbound flow information based on routing information, a first port identifier of a source port, and a first shuttle identifier of a source shuttle obtained from a message header of a message; the routing information includes a plurality of outbound flow information groups, one outbound flow information group includes a plurality of outbound flow information, and one outbound flow information group corresponds to one shuttle of one port;
[0133] [Corrected 30.11.2023 according to Rule 91] A port and shuttle determination module, configured to determine a plurality of target ports and a plurality of target shuttles based on a plurality of target outflow information, wherein the plurality of target ports and the plurality of target shuttles correspond one to one, and one target outflow information is used to determine one target port and one target shuttle;
[0134] [Corrected 30.11.2023 according to Rule 91] A message adding module is used to add messages to a plurality of second buffer areas, one second buffer area corresponding to one target port.
[0135] [Corrected 30.11.2023 according to Rule 91] It should be understood that the routing device is capable of executing the routing method in the ninth aspect or any possible implementation of the ninth aspect.
[0136] [Corrected 30.11.2023 in accordance with Rule 91] The eleventh aspect and any implementation of the eleventh aspect correspond to the ninth aspect and any implementation of the ninth aspect, respectively. The technical effects corresponding to the eleventh aspect and any implementation of the eleventh aspect can be found in the technical effects corresponding to the ninth aspect and any implementation of the ninth aspect, and will not be repeated here.
[0137] [Corrected 30.11.2023 in accordance with Rule 91] In a twelfth aspect, an embodiment of the present application provides a routing information configuration device, which may include: a port determination module, configured to determine an inflow port and a plurality of outflow ports corresponding to the inflow port;
[0138] [Corrected 30.11.2023 according to Rule 91] A configuration module, used for: for the j-th outflow port among multiple outflow ports: configuring the first preset field of the j-th outflow information in the outflow information group based on the port identifier of the j-th outflow port; and configuring the second preset field of the j-th outflow information based on the shuttle identifier of the outflow shuttle of the j-th outflow port; wherein the outflow information group corresponds to the inflow shuttle of the inflow port; when the j-th outflow port is not the last outflow port, configuring the third preset field of the j-th outflow information based on the address information of the j+1-th outflow information in the outflow information group; when the j-th outflow port is the last outflow port, configuring the third preset field of the j-th outflow information using the preset information.
[0139] [Corrected 30.11.2023 according to Rule 91] In the thirteenth aspect, an embodiment of the present application provides an electronic device, comprising: a memory and a processor, the memory being coupled to the processor; the memory storing program instructions, which, when executed by the processor, enables the electronic device to execute the routing method in the ninth aspect or any possible implementation of the ninth aspect.
[0140] [Corrected 30.11.2023 in accordance with Rule 91] The thirteenth aspect and any implementation of the thirteenth aspect correspond to the ninth aspect and any implementation of the ninth aspect, respectively. The technical effects corresponding to the thirteenth aspect and any implementation of the thirteenth aspect can be found in the technical effects corresponding to the ninth aspect and any implementation of the ninth aspect, and will not be repeated here.
[0141] [Corrected 30.11.2023 according to Rule 91] In the fourteenth aspect, an embodiment of the present application provides an electronic device, comprising: a memory and a processor, the memory being coupled to the processor; the memory storing program instructions, which, when executed by the processor, enables the electronic device to execute the routing information configuration method in the tenth aspect or any possible implementation of the tenth aspect.
[0142] [Corrected 30.11.2023 in accordance with Rule 91] The fourteenth aspect and any implementation of the fourteenth aspect correspond to the tenth aspect and any implementation of the tenth aspect, respectively. The technical effects corresponding to the fourteenth aspect and any implementation of the fourteenth aspect can be found in the technical effects corresponding to the tenth aspect and any implementation of the tenth aspect, and will not be repeated here.
[0143] [Corrected 30.11.2023 according to Rule 91] In the fifteenth aspect, an embodiment of the present application provides a chip, comprising one or more interface circuits and one or more processors; the interface circuit is used to receive signals from a memory of an electronic device and send signals to the processor, the signals including computer instructions stored in the memory; when the processor executes the computer instructions, the electronic device executes the routing method in the ninth aspect or any possible implementation of the ninth aspect.
[0144] [Corrected 30.11.2023 in accordance with Rule 91] The fifteenth aspect and any implementation of the fifteenth aspect correspond to the ninth aspect and any implementation of the ninth aspect, respectively. The technical effects corresponding to the fifteenth aspect and any implementation of the fifteenth aspect can be found in the technical effects corresponding to the ninth aspect and any implementation of the ninth aspect, and will not be repeated here.
[0145] [Corrected 30.11.2023 according to Rule 91] In the sixteenth aspect, an embodiment of the present application provides a chip, comprising one or more interface circuits and one or more processors; the interface circuit is used to receive signals from a memory of an electronic device and send signals to the processor, the signals including computer instructions stored in the memory; when the processor executes the computer instructions, the electronic device executes the routing information configuration method in the tenth aspect or any possible implementation of the tenth aspect.
[0146] [Corrected 30.11.2023 in accordance with Rule 91] The sixteenth aspect and any implementation of the sixteenth aspect correspond to the tenth aspect and any implementation of the tenth aspect, respectively. The technical effects corresponding to the sixteenth aspect and any implementation of the sixteenth aspect can be found in the technical effects corresponding to the tenth aspect and any implementation of the tenth aspect, and will not be repeated here.
[0147] [Corrected 30.11.2023 according to Rule 91] In the seventeenth aspect, an embodiment of the present application provides a computer storage medium, wherein the computer-readable storage medium stores a computer program, which, when the computer program runs on a computer or a processor, enables the computer or the processor to execute the routing method in the ninth aspect or any possible implementation of the ninth aspect.
[0148] [Corrected 30.11.2023 in accordance with Rule 91] The seventeenth aspect and any implementation of the seventeenth aspect correspond to the ninth aspect and any implementation of the ninth aspect, respectively. The technical effects corresponding to the seventeenth aspect and any implementation of the seventeenth aspect can be found in the technical effects corresponding to the ninth aspect and any implementation of the ninth aspect, and will not be repeated here.
[0149] [Corrected 30.11.2023 according to Rule 91] In the eighteenth aspect, an embodiment of the present application provides a computer storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program runs on a computer or a processor, the computer or the processor executes the routing information configuration method in the tenth aspect or any possible implementation of the tenth aspect.
[0150] [Corrected 30.11.2023 in accordance with Rule 91] The eighteenth aspect and any implementation of the eighteenth aspect correspond to the tenth aspect and any implementation of the tenth aspect, respectively. The technical effects corresponding to the eighteenth aspect and any implementation of the eighteenth aspect can be found in the technical effects corresponding to the tenth aspect and any implementation of the tenth aspect, and will not be repeated here.
[0151] [Corrected 30.11.2023 according to Rule 91] In the nineteenth aspect, an embodiment of the present application provides a computer program product, which includes a software program. When the software program is executed by a computer or a processor, the steps of the routing method in the ninth aspect or any possible implementation of the ninth aspect are executed.
[0152] [Corrected 30.11.2023 in accordance with Rule 91] The nineteenth aspect and any implementation of the nineteenth aspect correspond to the ninth aspect and any implementation of the ninth aspect, respectively. The technical effects corresponding to the nineteenth aspect and any implementation of the nineteenth aspect can be found in the technical effects corresponding to the ninth aspect and any implementation of the ninth aspect, and will not be repeated here.
[0153] [Corrected 30.11.2023 according to Rule 91] In the twentieth aspect, an embodiment of the present application provides a computer program product, which includes a software program. When the software program is executed by a computer or a processor, the steps of the routing information configuration method in the tenth aspect or any possible implementation of the tenth aspect are executed.
[0154] [Corrected 30.11.2023 in accordance with Rule 91] The twentieth aspect and any implementation of the twentieth aspect correspond to the tenth aspect and any implementation of the tenth aspect, respectively. The technical effects corresponding to the twentieth aspect and any implementation of the twentieth aspect can be found in the technical effects corresponding to the tenth aspect and any implementation of the tenth aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0155] FIG1 is a schematic diagram of an adapter provided by the present application;
[0156] FIG2 is a schematic diagram of a virtual channel provided by the present application;
[0157] FIG3 is a schematic diagram of a virtual path provided by the present application;
[0158] FIG4 is a schematic diagram of a multicast provided by the present application;
[0159] FIG5 is a schematic diagram of a virtual port provided by the present application;
[0160] FIG6 is a schematic diagram of a router forwarding message provided by the present application;
[0161] FIG7 is a schematic diagram of a reception counting method provided by the present application;
[0162] FIG8 is a schematic diagram of a flow chart of a transmission method provided by the present application;
[0163] FIG9 is a schematic diagram of the structure of a transmission network provided by the present application;
[0164] FIG10 is a schematic diagram of the structure of another transmission network provided by the present application;
[0165] FIG11 is a schematic diagram of the structure of another transmission network provided by the present application;
[0166] FIG12 is a schematic diagram of the structure of a transmission device provided by this application
[0167] FIG13 is a schematic structural diagram of a computer device provided by the present application;
[0168] FIG14a is a schematic diagram of an exemplary shuttle car;
[0169] FIG14 b is a schematic diagram of an exemplary pathway;
[0170] FIG14c is a schematic diagram of an exemplary end device;
[0171] FIG14d is a schematic diagram of an exemplary end device;
[0172] FIG15a is a schematic diagram illustrating an exemplary application scenario;
[0173] FIG15b is a schematic diagram illustrating an exemplary application scenario;
[0174] FIG16a is a schematic diagram showing exemplary routing information;
[0175] FIG16b is a schematic diagram showing exemplary routing information;
[0176] FIG17a is a schematic diagram showing an exemplary data structure of inflow information;
[0177] FIG17b is a schematic diagram showing an exemplary data structure of outflow information;
[0178] FIG18a is a schematic diagram illustrating an exemplary process of configuring routing information;
[0179] FIG18b is a schematic diagram showing an exemplary data structure of outgoing flow information after configuration;
[0180] FIG18c is a schematic diagram showing an exemplary data structure of outgoing flow information after configuration;
[0181] FIG18d is a schematic diagram showing the data structure of the configured outflow information;
[0182] FIG18e is a schematic diagram showing an exemplary data structure of outgoing flow information after configuration;
[0183] FIG19a is a schematic diagram showing an exemplary data structure of configured inflow information;
[0184] FIG19 b is a schematic diagram showing an exemplary data structure of configured inflow information;
[0185] FIG20 is a schematic diagram illustrating an exemplary routing process;
[0186] FIG21 is a schematic diagram illustrating an exemplary routing process;
[0187] FIG22 is a schematic structural diagram of an exemplary routing device;
[0188] FIG23 is a schematic structural diagram illustrating an exemplary apparatus for configuring routing information;
[0189] FIG24 is a schematic structural diagram of an exemplary device. DETAILED DESCRIPTION
[0190] To facilitate understanding, the main terms involved in this application are first explained.
[0191] Adapter: Responsible for converting signals / data (such as audio and video, management control information, and third-party protocol data) from external components to messages.
[0192] For example, adapters are divided into three categories: management adapters, audio and video adapters, and third-party protocol adapters (such as Universal Serial Bus (USB) adapters). Management adapters can also be called management control adapters. Audio and video adapters can also be called audio and video signal adapters.
[0193] A management adapter is a special adapter that is an entity that discovers, manages, and configures the network.
[0194] The management adapter provides functions such as device management, port management, bandwidth management, device control, and content protection.
[0195] Audio and video adapters are divided into audio and video transmitter adapters and audio and video receiver adapters. The audio and video transmitter adapter obtains audio and video data from the audio and video source component and encapsulates it into audio and video message formats, forming an audio and video service flow. The router forwards the audio and video service flow to the corresponding port. The port processes the audio and video service flow and generates a signal, which is transmitted to the router of the other device via connectors and cables.
[0196] The router is also responsible for obtaining the restored audio and video traffic from the port and forwarding it to the corresponding audio and video receiving adapter for processing. The process of restoring the audio and video traffic from the port is as follows: 1. Acquire the signal from the peer device; 2. Restore the signal on each channel into a data stream; 3. Restore the data stream into the audio and video traffic.
[0197] The third-party protocol adapter receives third-party protocol data from third-party protocol components (such as USB and Peripheral Component Interconnect express (PCIe)) and encapsulates it into third-party protocol packets to form a third-party protocol service flow. The router forwards the third-party protocol service flow to the corresponding port, which processes the packet and generates a signal; the signal is transmitted to the router of the opposite device through the connector and cable. The router is also responsible for obtaining the third-party protocol service flow restored by the port and forwarding the third-party protocol service flow to the corresponding third-party protocol adapter for processing. After processing, the third-party protocol adapter obtains the third-party protocol data and sends it to the third-party protocol component.
[0198] As shown in Table 1, this application provides definitions of adapter types, versions, and subtypes.
[0199] Table 1
[0200] Adapters of the same type and version can communicate. Subtypes are used to identify different adapters of the same type and version. Subtype 01 represents a sending adapter in a unidirectional flow and a downstream adapter in a bidirectional flow. Subtype 02 represents a receiving adapter in a unidirectional flow and an upstream adapter in a bidirectional flow. Subtype 0 indicates an adapter that can function as both a sending and receiving adapter in a unidirectional flow, or as both an upstream and downstream adapter in a bidirectional flow.
[0201] The management adapter's adapter ID is 0. All adapters in the device, except the management adapter, are service adapters, responsible for converting external service signals and data into messages, and vice versa. Examples of service adapters include audio and video adapters and third-party protocol adapters.
[0202] When a manufacturer needs to customize an adapter type, they apply for the adapter type and version and define subtypes based on the adapter's uplink / downlink or send / receive capabilities.
[0203] For example, as shown in FIG1 , a schematic diagram of an adapter provided in the present application is provided. Device A includes N adapters. Adapter 0 is responsible for the mutual conversion between management control information and messages. Adapter 4 is responsible for the mutual conversion between audio and video signals and messages. Adapter 5 is responsible for the mutual conversion between third-party protocol data 1 and messages. Adapter N is responsible for the mutual conversion between third-party protocol data 2 and messages. Adapter 0 is a management adapter. Adapters 4 to N are service adapters.
[0204] Devices can include not only a management adapter and multiple service adapters, but also multiple ports. The adapters convert the signals or data to be transmitted into messages, which are then transmitted via the ports and network to the target device. The target device's adapter then converts the messages back into data and signals.
[0205] The ports are suitable for transmitting high-speed signals from audio and video devices and third-party protocol devices (such as USB / PCIe / Ethernet). The ports provide the following capabilities.
[0206] Bidirectional audio and video transmission meets the audio and video transmission needs of devices such as TVs, personal computers (PCs), and mobile phones, and supports audio and video content transmission protection and visual lossless compression.
[0207] Third-party protocol data transmission enables interaction between devices and third-party protocol devices; the third-party protocol can be USB3, and will subsequently support Ethernet, PCIe, etc.
[0208] Bidirectional power supply can meet the power supply needs of electronic devices with power not exceeding 480W.
[0209] Virtual channel (Shuttle): Messages transporting the same service flow on a link constitute a virtual channel. A port can have multiple virtual channels. Multiple service flows can be transported via multiple virtual channels on the same link. The virtual channels for different service flows are distinguished by the channel identifier (ShuttleID). A virtual channel is also called a shuttle. A channel identifier is also called a shuttle identifier. A channel identifier (ShuttleID) is also called a virtual channel identifier.
[0210] As shown in FIG2 , the virtual channel with a channel identifier of 7 transmits messages of service flow 1 , and the virtual channel with a channel identifier of 5 transmits messages of service flow 2 .
[0211] Virtual channels support bidirectional data transmission. For example, as shown in Figure 2, device A transmits packets from service flow 1 to device B via virtual channel 7 on port 1 of the device itself. Device B transmits packets from service flow 1 to device A via virtual channel 7 on port 1 of the device itself. Device B transmits packets from service flow 2 to device A via virtual channel 5 on port 1 of the device itself. Device A transmits packets from service flow 2 to device B via virtual channel 5 on port 1 of the device itself.
[0212] In this application, inconsistent bandwidths are permitted for the same virtual channel in both directions. Specifically, when the bandwidth in one direction of a virtual channel is greater than 0 and the bandwidth in the other direction is 0, the virtual channel is considered a unidirectional virtual channel. For example, if the forward bandwidth of a virtual channel is greater than 0 and the reverse bandwidth is 0, the virtual channel is considered a unidirectional virtual channel. For another example, if the reverse bandwidth of a virtual channel is greater than 0 and the forward bandwidth is 0, the virtual channel is considered a unidirectional virtual channel. The forward direction can be from device A to device B, and the reverse direction can be from device B to device A.
[0213] Optionally, the bidirectional bandwidth of the same virtual channel is allowed to be consistent.
[0214] Virtual Channel: A virtual channel between two adapters is formed by cascading one or more virtual channels. For example, as shown in Figure 3, the bold line represents the virtual channel from adapter 4 of device A to adapter 5 of device D. This virtual channel contains three virtual channels: virtual channel 7 between devices A and B, virtual channel 4 between devices B and C, and virtual channel 13 between devices C and D.
[0215] In this application, a virtual path is a bidirectional path. The direction from a subtype 01 adapter to a subtype 02 adapter is defined as the forward direction, and the direction from a subtype 02 adapter to a subtype 01 adapter is defined as the reverse direction. The bidirectional bandwidth of a virtual path can be inconsistent. A unidirectional virtual path is essentially a special virtual path with a reverse bandwidth of 0. A unidirectional virtual path can refer to a virtual path with a reverse bandwidth of 0.
[0216] In some embodiments, a virtual path can be represented by a four-tuple, such as (device ID, adapter ID, device ID, adapter ID). For example, as shown in FIG3 , a virtual path can be represented by (device A, adapter 4, device D, adapter 5).
[0217] A port's virtual channel can be represented by a two-tuple, such as (PortID, ChannelID) or [PortID, ShuttleID]. For example, [5,7] represents virtual channel 7 on port 5 in a router. [1,4] represents virtual channel 4 on port 1 in a router.
[0218] An adapter can be represented by a two-tuple, such as [0,AdapterID]. For ease of description, the following distinction between AdapterID and ShuttleID is omitted. When the port ID is 0, the ShuttleID is the AdapterID. For example, [0,4] represents the adapter with adapter ID 4 in a router. Alternatively, [0,4] can represent virtual channel 4 on port 0 in a router.
[0219] In this application, the device supports multicast functionality, allowing the data / video stream generated by the same transmitting adapter to be transmitted to multiple receiving adapters. For example, as shown in Figure 4 , adapter 4 of device A sends a service stream, adapter 7 of device B receives the service stream, adapter 6 of device C receives the service stream, and adapter 5 of device D receives the service stream. The corresponding three virtual paths include (device A, adapter 4, device B, adapter 7), (device A, adapter 4, device C, adapter 6), and (device A, adapter 4, device D, adapter 5).
[0220] During multicast, the same virtual channel can be used by multiple virtual paths. As shown in Figure 4, the virtual channel with channel ID 7 between device A and device B is used by the three virtual paths mentioned above.
[0221] In some embodiments, adapters and virtual channels are logically equivalent, meaning that adapters are logically treated as virtual channels. For model simplicity, all adapters on a router constitute a virtual port, with each adapter acting as a virtual channel on the virtual port. The adapter ID (AdapterID) can also be replaced with a channel ID (ShuttleID). For example, port 0 on a router is treated as a virtual port, while ports 1 through n on the router are treated as physical ports.
[0222] 5 , the router includes n adapters, which constitute a virtual port, and the virtual port is used as port 0. The router may also include other physical ports, such as port 1 and port 2.
[0223] In some embodiments, each port can include n virtual channels. Virtual channel 0 in the port serves as a management virtual channel, while virtual channels 1 through 3 are reserved for future expansion. Virtual channels 4 through n serve as service virtual channels. Service virtual channels are used to transmit service flow packets. Management virtual channels are used to transmit transport layer management data packets (TLMDPs) for management adapters.
[0224] A router is a component responsible for traffic management and routing. It receives packets from an adapter's receive buffer (RBuff) or a virtual channel's receive buffer (RBuff) and forwards them to another adapter's transmit buffer (TBuff) or a virtual channel's transmit buffer (TBuff).
[0225] In some embodiments, when forwarding a message, the router may obtain the message from the receiving buffer (RBuff) and send the message to the sending buffer (TBuff) corresponding to the receiving buffer according to the router forwarding table.
[0226] For example, a message is obtained from a receiving buffer (RBuff) of an adapter (Adapter), and the message is sent to a sending buffer (TBuff) of a corresponding virtual channel in a corresponding port according to a router forwarding table.
[0227] For another example, a message is obtained from the receiving buffer (RBuff) of the adapter (Adapter), and the message is sent to the sending buffer (TBuff) of other adapters according to the router forwarding table.
[0228] For another example, a message is obtained from the receiving buffer (Rbuff) of the virtual channel of the port, and the message is sent to the sending buffer (TBuff) of the adapter according to the router forwarding table.
[0229] For another example, a message is obtained from the receiving buffer (Rbuff) of the virtual channel of a port, and the message is sent to the sending buffer (TBuff) of the virtual channel of another port according to the router forwarding table.
[0230] It's important to note that the receive buffer (RBuff) and transmit buffer (TBuff) are both referenced to the router. The router's receive buffer is called RBuff, while the router's transmit buffer is called TBuff. The adapter's receive buffer is the buffer used by the router to send data to the adapter, while the adapter's transmit buffer is the buffer used by the router to receive data from the adapter.
[0231] A router forwarding table specifies the packet forwarding rules for service virtual channels, specifically the rules for forwarding packets received from an inbound virtual channel to an outbound virtual channel. A router forwarding table contains both inbound and outbound information. A router forwarding table entry can be represented by {inbound information | outbound information}.
[0232] The inflow information includes a single inflow node and is used to describe the port identifier and channel identifier corresponding to the inflow.
[0233] Outbound flow information includes one or more outbound flow nodes. Outbound flow information is used to describe relevant information such as the destination port identifier and destination channel identifier of the forwarded message.
[0234] For example, as shown in Table 2, the router forwarding table represents.
[0235] Table 2
[0236] As shown in Table 2, the router forwarding table contains five router forwarding table entries. The first router forwarding table entry is represented as {[0,4]|[1,n],[2,4]}. The inbound information contains only one inbound node [0,4], indicating that the message is received from the receive buffer of adapter 4 of the router. The outbound information contains two outbound nodes, [1,n] and [2,4], indicating that the router needs to forward the message to the send buffer of virtual channel n of port 1 and the send buffer of virtual channel 4 of port 2 at the same time.
[0237] The second router forwarding table entry is represented as {[1,n]|[0,4]}. The inflow information contains the inflow node [1,n], indicating that the message is received from the receive buffer of virtual channel n of port 1 of the router; the outflow information contains the outflow node [0,4], indicating that the router forwards the message to the send buffer of adapter 4.
[0238] The third router forwarding table entry is represented as {[2,4]|[0,4]}. The inflow information contains the inflow node [2,4], indicating that the message is received from the receive buffer of virtual channel 4 of port 2 of the router; the outflow information contains the outflow node [0,4], indicating that the router forwards the message to the send buffer of adapter 4.
[0239] The fourth router forwarding table entry is represented as {[1,4]|[2,n]}. The inflow information contains the inflow node [1,4], indicating that the message is received from the receive buffer of virtual channel 4 of port 1 of the router; the outflow information contains the outflow node [2,n], indicating that the router forwards the message to the send buffer of virtual channel n of port 2.
[0240] The fifth router forwarding table entry is represented as {[2,n]|[1,4]}. The inflow information contains the inflow node [2,n], indicating that the message is received from the receive buffer of virtual channel n of port 2 of the router; the outflow information contains the outflow node [1,4], indicating that the router forwards the message to the send buffer of virtual channel 4 of port 1.
[0241] As shown in Figure 6, a schematic diagram of a router forwarding message provided by this application is shown. The router forwards the message based on the routing rules described in Table 2.
[0242] It should be noted that the two service virtual channels on port 0 can forward packets. That is, the router can forward packets from the receive buffer of one service virtual channel on port 0 to the transmit buffer of another service virtual channel on port 0 based on the routing rules in the router forwarding table. Other ports on the router are prohibited from forwarding packets from their service virtual channels to another service virtual channel on the same port. In other words, a receiving port is prohibited from forwarding packets from its service virtual channel to another service virtual channel on the receiving port.
[0243] Furthermore, when forwarding packets from the same service virtual channel to another port, there can be at most one service virtual channel on that port. That is, a receiving port forwards packets from the receiving port's service virtual channel to another service virtual channel on the sending port, and can only forward packets to one service virtual channel on the sending port. For example, in the first router forwarding entry in Table 2, when forwarding packets from service virtual channel [0,4] to port 1, there can only be one service virtual channel [1,n] on that port, and packets cannot be forwarded to other service virtual channels on port 1.
[0244] In this application, the device supports multicast functionality. When the device uses the multicast functionality, the same service virtual channel can be used by multiple virtual channels. To facilitate management of the router forwarding table, a receive count (ReceiverCount) is added to the outbound flow node to describe the number of virtual channels using the service virtual channel, that is, the number of devices receiving the service flow corresponding to the virtual channel under the target port. After adding the receive count, the outbound flow information changes from the two-tuple [Port, ShuttleID] to the three-tuple [Port, ShuttleID, ReceiverCount].
[0245] For example, as shown in Figure 7 (a), devices A, B, C, and D are cascaded. The router forwarding entry {[0,4]|[2,7,3]} in device A indicates that virtual channel 7 of target port 2 in device A has three receivers, meaning it is shared by three virtual paths. When a virtual path (device A, adapter 4, device C, adapter 6) is released, the receive count of the virtual path in forwarding node [2,7,3] in the router forwarding entry on device A is decremented by 1. The receive count in forwarding node [2,4,2] in the router forwarding entry on device B is decremented by 1, and the receive count in forwarding node [0,6,1] in the router forwarding entry on device C is decremented by 1. If the receive count is not zero after decrement, it indicates that the router forwarding entry still has other receivers and the forwarding node should not be deleted. If the receive count is zero after decrement, it indicates that the forwarding node no longer has any receivers and should be deleted. As shown in (b) of FIG7 , the router forwarding table entry after the virtual path (device A, adapter 4, device C, adapter 6) is released.
[0246] Note that the above is only an example. In actual implementation, flow management-related information may be added to the inflow node and outflow node, such as priority, scheduling weight, bandwidth, whether flow control is enabled, whether shared cache is used, etc. This application does not limit this.
[0247] The above describes the forwarding rules for service flow messages. This application also provides the following forwarding rules for router forwarding management messages.
[0248] Transport layer management data packets received from the management virtual channel of non-0 port are directly forwarded to the management adapter of this router for processing and are not forwarded to other ports.
[0249] When the management adapter generates a new transport layer management data packet, it must also provide the forwarding output port for the packet. The router sends the transport layer management data packet to the management virtual channel of the designated port of the management adapter.
[0250] In this application, devices can be connected directly through ports or through routers. A system consisting of multiple devices connected together is called a transmission network.
[0251] The transmission method provided in this application is described below.
[0252] FIG8 is a flow chart of a transmission method provided by the present application. Here, a first device and a second device are connected via a port as an example. As shown in FIG8 , the method includes the following steps.
[0253] Step 810: The first device obtains a message of the first service flow from the receiving buffer.
[0254] The first device can obtain a message of the first service flow from a receive buffer of a service adapter (step 811). For example, the first service adapter of the first device generates a message of the first service flow by converting a signal or data to be transmitted. The first device obtains the message of the first service flow from the receive buffer of the first service adapter in the first device.
[0255] The first device may obtain the message of the first service flow from the receive buffer of the service virtual channel (step 812). For example, the first device may also be connected to a third device through a port. The first device may receive the message of the first service flow sent by the third device through the second service virtual channel and obtain the message of the first service flow from the receive buffer of the second service virtual channel.
[0256] Step 820: The first device transmits the message of the first service flow through the sending buffer of the first service virtual channel according to the router forwarding table.
[0257] The router forwarding table is used to indicate message forwarding rules based on service virtual channels. Service virtual channels are used to support bidirectional transmission of service flows between two devices. Based on the router forwarding table, a first device determines to transmit messages of a first service flow through a first service virtual channel. The first service virtual channel is the virtual channel between the first device and the second device. Based on the router forwarding table, the first device then transmits the messages of the first service flow through the send buffer of the first service virtual channel. For example, the first message of the first service flow is forwarded to the send buffer of the first service virtual channel, and then forwarded to the second device through the first service virtual channel.
[0258] It should be noted that the receiving port is prohibited from forwarding the message of the service virtual channel of the receiving port to another service virtual channel of the receiving port. For example, the first virtual channel and the second virtual channel belong to different ports in the first device.
[0259] The message of the first service flow includes a first channel identifier, and the first channel identifier indicates a first service virtual channel.
[0260] Step 830: The second device receives the message of the first service flow through the receiving buffer of the first service virtual channel.
[0261] Step 840: The second device sends the message of the first service flow through the sending buffer of the first service virtual channel.
[0262] The second device receives a first message of the first service flow through a receiving buffer of the first service virtual channel, and sends a second message of the first service flow through a sending buffer of the first service virtual channel.
[0263] Optionally, the first device may also forward the message of the first service flow to the sending buffer of the second service adapter in the first device according to the router forwarding table (step 850).
[0264] It should be noted that since the adapter and the virtual channel are logically equivalent, that is, the adapter is regarded as a virtual channel, then two service adapters can form a virtual path. For example, the first service adapter and the second service adapter in the first device form a virtual path.
[0265] Optionally, the router forwarding table indicates multiple outgoing flow information. The first device can also be connected to a fourth device through a port. In this case, the first device transmits the message of the first service flow through the send buffer of the third service virtual channel indicated in the router forwarding table (step 860). That is, the third service virtual channel is a virtual channel between the first device and the fourth device. The first device transmits the message of the first service flow to the fourth device through the third service virtual channel.
[0266] It should be noted that when packets of the same service flow are forwarded to another port, the port can have at most one service virtual channel.
[0267] Optionally, the first device may also be connected to a fifth device via a port. Based on the router forwarding table, the first device transmits the second service flow message through the send buffer of the fourth service virtual channel (step 870). Specifically, the fourth service virtual channel is a virtual channel between the first device and the fifth device. The first device transmits the second service flow message to the fifth device via the fourth service virtual channel. The first service virtual channel and the fourth service virtual channel belong to the same port.
[0268] Optionally, the first device obtains a first management message from the management virtual channel and forwards the first management message to the management adapter in the first device (step 880). For example, the first device obtains the first management message from the receive buffer of virtual channel 0 of port 1 and forwards the first management message to the transmit buffer of virtual channel 0 of port 0 in the first device.
[0269] Optionally, the first device obtains the second management message from the management adapter of the first device and forwards the second management message to the management virtual channel of the port specified by the management adapter of the first device (step 890). For example, the first device obtains the second management message from the receive buffer of virtual channel 0 of port 0 of the first device and forwards the second management message to the transmit buffer of virtual channel 0 of port 1 of the first device.
[0270] In some embodiments, other devices may be connected between the first device and the second device. The virtual path between the adapter of the first device and the adapter of the second device may include multiple cascaded virtual channels, and the virtual path supports bidirectional transmission. The router forwarding table also includes a receive count.
[0271] The following is an example to illustrate the structure of the transmission network.
[0272] Figure 9 is a schematic diagram of the structure of a transmission network provided by this application. As shown in Figure 9, the transmission network includes device A, device B, and a routing device, and devices A, device B, and the routing device are connected through ports.
[0273] Device A is used to transmit a message of a first service flow to device B through a routing device, where the message of the first service flow is obtained after converting the first data.
[0274] Device A is further configured to transmit a message of the second service flow to device B through the routing device. The message of the second service flow is obtained after converting the second data.
[0275] Device B is used to transmit the message of the third service flow to device A through the routing device, where the message of the third service flow is obtained after converting the third data.
[0276] Device A is further configured to obtain the message of the first service flow from the receiving buffer of the first service adapter in device A.
[0277] Device A is further configured to obtain the message of the second service flow from the receiving buffer of the second service adapter in device A.
[0278] Device A is specifically configured to transmit a message of a first service flow to a routing device through a sending buffer of a first service virtual channel according to a first router forwarding table. The first service virtual channel is a virtual channel between device A and the routing device. The router forwarding table is configured to indicate a message forwarding rule based on the service virtual channel. The service virtual channel is configured to support bidirectional transmission of service flows between the two devices.
[0279] The routing device is configured to receive a message of the first service flow through a receiving buffer of the first service virtual channel.
[0280] The routing device is further configured to transmit the message of the first service flow to device B through the sending buffer of the second service virtual channel according to the second router forwarding table. The second service virtual channel is a virtual channel between the routing device and device B.
[0281] Device B is specifically configured to receive the message of the first service flow through the receiving buffer of the second service virtual channel.
[0282] Device B is further configured to forward the message of the first service flow to the receiving buffer of the service adapter in device B according to the third router forwarding table, and the service adapter restores the first service flow to obtain the signal or data.
[0283] Device A is specifically configured to transmit the message of the second service flow to the routing device through the sending buffer of the third service virtual channel according to the first router forwarding table. The third service virtual channel is a virtual channel between device A and the routing device.
[0284] The routing device is further configured to receive the message of the second service flow through the receiving buffer of the third service virtual channel.
[0285] The routing device is further configured to transmit the message of the second service flow to device B through the sending buffer of the fourth service virtual channel according to the second router forwarding table. The fourth service virtual channel is a virtual channel between the routing device and device B.
[0286] Device B is specifically configured to receive the message of the second service flow through the receiving buffer of the fourth service virtual channel.
[0287] Device B is further configured to forward the message of the second service flow to the receiving buffer of the service adapter in device B according to the third router forwarding table.
[0288] Device B is further configured to obtain the message of the third service flow from the receiving buffer of the third service adapter in device B.
[0289] Device B is specifically configured to transmit the message of the third service flow to the routing device through the sending buffer of the fifth service virtual channel according to the third router forwarding table. The fifth service virtual channel is a virtual channel between device B and the routing device.
[0290] The routing device is further configured to receive the message of the third service flow through the receiving buffer of the fifth service virtual channel.
[0291] The routing device is further configured to transmit the message of the third service flow to device A through the sending buffer of the sixth service virtual channel according to the second router forwarding table. The sixth service virtual channel is a virtual channel between the routing device and device A.
[0292] Device A is specifically configured to receive the message of the third service flow through the receiving buffer of the sixth service virtual channel.
[0293] Device A is further configured to forward the message of the third service flow to the receiving buffer of the service adapter in device A according to the first router forwarding table.
[0294] Figure 10 is a schematic diagram of the structure of a transmission network provided by this application. As shown in Figure 10, the transmission network includes device A, device B, and device C, and devices A, B, and C are connected through ports.
[0295] Device A is configured to obtain a message of a first service flow from a receiving buffer of a service adapter of device A, where the message of the first service flow is obtained by converting the first data.
[0296] Device A is further used to transmit the message of the first service flow to device B through the sending buffer of the first service virtual channel according to the first router forwarding table. The router forwarding table is used to indicate the message forwarding rules based on the service virtual channel. The service virtual channel is used to support bidirectional transmission of service flows between the two devices.
[0297] Device B is configured to receive packets of the first service flow through a receiving buffer of the first service virtual channel.
[0298] Device B is further configured to transmit the message of the first service flow to device C through the sending buffer of the second service virtual channel according to the second router forwarding table.
[0299] Device B is further configured to forward the message of the first service flow to the receiving buffer of the service adapter in device B according to the second router forwarding table, and the service adapter restores the first service flow to obtain the signal or data.
[0300] Device C is configured to receive the message of the first service flow through the receiving buffer of the second service virtual channel.
[0301] Device C is further configured to forward the message of the first service flow to the receiving buffer of the service adapter in device C according to the third router forwarding table, and the service adapter restores the first service flow to obtain the signal or data.
[0302] In other embodiments, the transmission network includes a first device, a second device, a third device, and multiple routing devices, wherein the first device, the second device, the third device, and the multiple routing devices are connected via ports. The devices are configured to perform the method steps described in the above embodiments. The network topology of the transmission network is a star topology or a mesh topology.
[0303] Figure 11 is a schematic diagram of the structure of a transmission network provided by this application. As shown in Figure 11, the transmission network includes device A, device B, device C and multiple routing devices, and devices A, device B, device C and the routing devices are connected through ports.
[0304] Device A and device B transmit packets of the first service flow through the routing device.
[0305] Device A and device C transmit packets of the second service flow through the routing device.
[0306] Device B and device C transmit packets of the third service flow through the routing device.
[0307] Regarding the transmission method of the service flow message, please refer to the description of the above embodiment and will not be repeated here.
[0308] It is understood that in order to implement the functions in the above embodiments, the device includes hardware structures and / or software modules that perform the corresponding functions. Those skilled in the art should easily appreciate that, in combination with the units and method steps of each example described in the embodiments disclosed in this application, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in hardware or in a computer software-driven hardware manner depends on the specific application scenario and design constraints of the technical solution.
[0309] The transmission method provided by the present application is described in detail above in conjunction with Figures 1 to 11. The apparatus provided by the present application will be described below in conjunction with Figure 12. These apparatuses can be used to implement the functions of the apparatus in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments. In this embodiment, the apparatus can be the apparatus shown in Figure 1, or it can be a module (such as a chip) applied to the apparatus.
[0310] As shown in Figure 12, the transmission device 1200 includes a receiving module 1210, a sending module 1220, and a storage module 1230. The transmission device 1200 is used to implement the functions of the server in the method embodiment shown in Figure 4 or Figure 5 above.
[0311] The receiving module 1210 is configured to obtain the message of the first service flow from the receiving buffer. For example, the receiving module 1210 is configured to execute step 510 in FIG5 .
[0312] Transmitting module 1220 is configured to transmit packets of a first service flow through a transmit buffer of a first service virtual channel according to a router forwarding table. The first service virtual channel is a virtual channel between a first device and a second device. The router forwarding table is configured to indicate packet forwarding rules based on the service virtual channel. The service virtual channel is configured to support bidirectional transmission of service flows between the two devices. For example, transmitting module 1220 is configured to execute step 430 in FIG. 4 .
[0313] Optionally, the receiving module 1210 is specifically configured to obtain a message of the first service flow from a receiving buffer of the first service adapter in the first device. The message of the first service flow is obtained by converting the signal or data to be transmitted.
[0314] Optionally, the receiving module 1210 is specifically configured to obtain the message of the first service flow from the receiving buffer of the second service virtual channel, and the receiving port is prohibited from forwarding the message of the service virtual channel of the receiving port to another service virtual channel of the receiving port.
[0315] Optionally, the sending module 1220 is further configured to forward the message of the first service flow to a sending buffer of the second service adapter in the first device according to a router forwarding table.
[0316] Optionally, the sending module 1220 is further configured to transmit the message of the first service flow through the sending buffer of the third service virtual channel indicated in the router forwarding table. When the message of the same service flow is forwarded to another port, the port has at most one service virtual channel.
[0317] Optionally, the sending module 1220 is further configured to transmit the message of the second service flow through the sending buffer of the fourth service virtual channel according to the router forwarding table, and the first service virtual channel and the fourth service virtual channel belong to the same port.
[0318] The storage module 1230 is used to store messages and router forwarding tables.
[0319] It should be understood that the transmission device 1200 of the embodiment of the present application can be implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), wherein the PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. Alternatively, when the transmission method shown in FIG. 8 is implemented by software, the transmission device 1200 and the client 700 and their respective modules can also be software modules.
[0320] According to the embodiment of the present application, the transmission device 1200 may correspond to executing the method described in the embodiment of the present application, and the above-mentioned and other operations and / or functions of each unit in the transmission device 1200 are respectively for implementing the corresponding processes of each method in Figure 8. For the sake of brevity, they will not be repeated here.
[0321] Figure 13 is a schematic diagram of the structure of a computer device 1300 provided in this application. As shown in Figure 13, computer device 1300 includes a processor 1310, a bus 1320, a memory 1330, a communication interface 1340, a memory 1350 (also referred to as a main memory unit), and a router 1360. Processor 1310, memory 1330, memory 1350, communication interface 1340, and router 1360 are connected via bus 1320.
[0322] It should be understood that in this embodiment, the processor 1310 may be a CPU, but may also be other general-purpose processors, digital signal processors (DSP), ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc.
[0323] The processor may also be a graphics processing unit (GPU), a neural network processing unit (NPU), a microprocessor, an ASIC, or one or more integrated circuits for controlling the execution of the program of the present application.
[0324] The communication interface 1340 is used to implement communication between the computer device 1300 and an external device or component. In this application, when the computer device 1300 is used to implement the functions of the device shown in Figure 8, the communication interface 1340 is used to receive and send messages.
[0325] Router 1360 is used to forward packets according to the router forwarding table.
[0326] The bus 1320 may include a path for transmitting information between the above-mentioned components (such as the processor 1310, the memory unit 1350, and the storage 1330). In addition to the data bus, the bus 1320 may also include a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as bus 1320 in the figure. The bus 1320 may be a Peripheral Component Interconnect Express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus 1320 can be divided into an address bus, a data bus, a control bus, etc.
[0327] As an example, computer device 1300 may include multiple processors. The processor may be a multi-core (multi-CPU) processor. A processor herein may refer to one or more devices, circuits, and / or computing units for processing data (e.g., computer program instructions).
[0328] It is worth noting that FIG13 only takes the computer device 1300 including 1 processor 1310 and 1 memory 1330 as an example. Here, the processor 1310 and the memory 1330 are respectively used to indicate a type of device or equipment. In a specific embodiment, the number of each type of device or equipment can be determined according to business requirements.
[0329] Memory 1350 may be a volatile memory pool or a nonvolatile memory pool, or may include both volatile and nonvolatile memory. Nonvolatile memory may be read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory may be random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDR SDRAM), enhanced synchronous DRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DR RAM). Memory 1350 is used to store messages, etc.
[0330] The memory 1330 may correspond to a storage medium for storing information such as messages in the above method embodiments, for example, a disk such as a mechanical hard disk or a solid-state drive.
[0331] The computer device 1300 may be a general-purpose device or a dedicated device. For example, the computer device 1300 may be an edge device (e.g., a box carrying a chip with processing capabilities). Alternatively, the computer device 1300 may be a server or other device with computing capabilities.
[0332] It should be understood that the computer device 1300 according to this embodiment may correspond to the transmission device 1200 in this embodiment, and may correspond to the corresponding subject executing any method in Figure 8, and the above-mentioned and other operations and / or functions of each module in the transmission device 1200 are respectively for realizing the corresponding processes of each method in Figure 8. For the sake of brevity, they will not be repeated here.
[0333] The method steps in this embodiment can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, mobile hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and storage medium can be located in an ASIC. In addition, the ASIC can be located in a computing device. Of course, the processor and storage medium can also exist as discrete components in a computing device.
[0334] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the process or function described in the embodiments of the present application is performed in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer program or instruction can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer program or instruction can be transmitted from one website, computer, server or data center to another website, computer, server or data center via wired or wireless means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, a hard disk, or a tape; it can also be an optical medium, such as a digital video disc (DVD); it can also be a semiconductor medium, such as a solid state drive (SSD). The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present application, and such modifications or substitutions should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.
[0335] 1. Terminal device
[0336] End devices may include source devices, sink devices, and docking stations.
[0337] 2. Source device
[0338] The source device may refer to a device having a main downstream port (MDP) and an audio and video transmission adapter.
[0339] For example, the source device may include a set-top box, a DVD, a personal computer (PC), a game console, a host of a split-type TV, etc., and this application does not impose any restrictions on this.
[0340] It should be understood that the source device may include multiple downstream ports and multiple audio and video transmission adapters; one audio and video transmission adapter can be used to send one channel of audio and video data, that is, the source device can support the simultaneous transmission of multiple channels of audio and video data.
[0341] It should be understood that the source device may also include other adapters, such as an audio and video receiving adapter, a management control adapter, a third-party protocol adapter, etc., and this application does not limit this. Among them, third-party protocols such as Universal Serial Bus (USB), Peripheral Component Interconnect Express (PCIe), Ethernet, etc., are not limited in this application.
[0342] 3. Host equipment
[0343] A sink device may refer to a device having an upstream port (Main Upstream Port, MUP) and an audio and video receiving adapter.
[0344] For example, the sink device may include a television, a monitor, audio equipment, etc.
[0345] It should be understood that the sink device may include multiple uplink ports and multiple audio and video receiving adapters; wherein one audio and video receiving adapter can receive one channel of audio and video data, that is, the sink device can support receiving multiple audio and video data at the same time.
[0346] It should be understood that the host device may also include other adapters, such as an audio and video transmission adapter, a management control adapter, a third-party protocol adapter, etc., and this application does not impose any restrictions on this.
[0347] 4. Docking station
[0348] A docking station can be a device with an upstream port (MUP), an audio and video receiving adapter, and a legacy audio and video interface. The docking station device supports converting UMI audio and video data (i.e., audio and video data received through the MUP) into legacy audio and video interface data.
[0349] 5. Routing devices
[0350] A router device refers to a device with routing functionality, including downlink and uplink ports, but without audio and video transmitter and receiver adapters. Routers only support data routing (such as UMI audio and video data) and do not support message encryption / decryption or encapsulation / decapsulation.
[0351] 6. Composite equipment
[0352] A composite device may refer to a source device or a sink device that has both an upstream port and a downstream port.
[0353] For example, the MDP and MUP mentioned above are both Unified MultiMedia Interconnection (UMI), a high-speed interface. The UMI interface can be used to transmit ultra-high-definition video and audio signals, and supports third-party protocol tunneling and inter-device power supply.
[0354] Exemplarily, the UMI interface supports direct connection between a source device (e.g., a set-top box) and a sink device (e.g., a television) / docking station; or supports multi-device networking, where the source device and the sink device / docking station can be networked through a routing device or a composite device.
[0355] For example, the UMI interface can support bidirectional transmission of audio and video data / third-party protocol data. That is, while the source device transmits audio and video data / third-party protocol data to the sink device / dock, it can also receive audio and video data / third-party protocol data transmitted back by the sink device / dock.
[0356] Exemplarily, an end device may include a UMI controller, which may include: a UMI interface (including an MUP and / or MDP), an adapter, and a routing device (Router). The Router may be used to read a message from a buffer and forward or copy the message to another buffer; the Router may be used to execute the routing method described herein.
[0357] 7. Shuttle
[0358] FIG. 14 a is a schematic diagram of a shuttle car shown as an example.
[0359] For example, device A in FIG14 a is a source device, and device A may include adapter 0, adapter 1, adapter 2, MDP, and Router A. It should be understood that FIG14 a is merely an example of a source device in the present application, and the source device in the present application may include more or fewer components than those shown in device A in FIG14 a , and the present application does not limit this.
[0360] For example, device B in FIG14 a is a sink device, and device B may include adapter 0, adapter 1, adapter 2, an MUP, and Router B. It should be understood that FIG14 a is merely an example of a sink device in the present application, and the sink device in the present application may include more or fewer components than those shown in device B in FIG14 a , and the present application does not limit this.
[0361] Referring to Figure 14a , on the physical link between device A's MDP and device B's MUP, data stream messages are transmitted between the MDP of device A and the MUP of device B like shuttle buses. The shuttle buses carrying messages of different data streams can be identified by their shuttle IDs. For example, in Figure 14a , the shuttle bus with shuttle ID 7 transmits messages of data stream 1 (including forward messages and reverse messages of data stream 1), while the shuttle bus with shuttle ID 5 transmits messages of data stream 2 (including forward messages and reverse messages of data stream 2).
[0362] For example, a bidirectional virtual channel between two ports on the same physical link (i.e., two ports between two directly connected end devices) used to transmit all packets of the same data stream can be called a shuttle. The shuttle ID can refer to a shuttle identifier, which uniquely identifies a shuttle.
[0363] 8. Access
[0364] A path (also called a channel) can refer to a bidirectional virtual channel between the adapters of two end devices, used to transmit all messages of a data stream (including forward messages and reverse messages); wherein a path can be composed of 0, 1, or more shuttles.
[0365] FIG14 b is a schematic diagram showing an exemplary path.
[0366] For example, in Figure 14b, device A is the source device, devices B and C are routing devices, and device D is the sink device. Device A may include adapter 2, MDP2, MUP1, and Router A; device B may include MUP1, MDP2, and Router B; device C may include MUP1, MDP2, and Router C; and device D may include adapter 5, MUP1, and Router D.
[0367] 14b , illustratively, the shuttle between the MDP2 of device A and the MUP1 of device B is a shuttle with Shuttle ID=7; the shuttle between the MDP2 of device B and the MUP1 of device B is a shuttle with Shuttle ID=1; and the shuttle between the MDP2 of device C and the MUP1 of device D is a shuttle with Shuttle ID=13.
[0368] Referring to Figure 14b, the path in Figure 14b refers to a bidirectional virtual channel between the adapter 2 of device A and the adapter 5 of device D; the path includes three shuttles: the shuttle with Shuttle ID=7 between device A and device B, the shuttle with Shuttle ID=1 between device B and device C, and the shuttle with Shuttle ID=13 between device C and device D.
[0369] Figure 14c is a schematic diagram of an exemplary end device. Figure 14c shows a UMI controller of the composite device.
[0370] 14c, illustratively, a composite device includes n (n is a positive integer) adapters, each of which has a corresponding adapter ID. For example, adapter 1 has an adapter ID of 1, adapter 2 has an adapter ID of 2, ..., and adapter n has an adapter ID of n. Each adapter has a corresponding receive buffer (RBufft) and a send buffer (SBuff).
[0371] Referring to FIG14c , a composite device exemplarily includes two ports: an MDP and an MUP. Each port has a corresponding port ID; for example, the MDP's Port ID is 1, and the MUP's Port ID is 2. Each port corresponds to multiple shuttles, each of which has a corresponding shuttle ID. For example, if an MDP corresponds to n shuttles, the first shuttle has Shuttle ID 1, the second shuttle has Shuttle ID 2, ..., and the nth shuttle has Shuttle ID n. For another example, if an MUP corresponds to n shuttles, the first shuttle has Shuttle ID 1, the second shuttle has Shuttle ID 2, ..., and the nth shuttle has Shuttle ID n.
[0372] In one possible approach, during the routing process, a receive buffer (RBuff) and a transmit buffer (SBuff) can be established for each shuttle. The number of receive buffers included in each port is the same as the number of shuttles it contains, and the number of receive buffers included in each port is the same as the number of shuttles it contains. In other words, each shuttle has a corresponding RBufft and SBufft, as shown in Figure 14c.
[0373] In one possible approach, during the routing process, a receive buffer and a transmit buffer can be established for one or more shuttles with a higher priority based on their priorities. The number of receive buffers included in each port is smaller than the number of shuttles it contains, and the number of transmit buffers included in each port is smaller than the number of shuttles it contains. This application uses the example of FIG14c where each shuttle has a corresponding RBufft and SBufft as an example.
[0374] As shown in Figure 14c, adapters and shuttles are logically equivalent. All adapters on the UMI controller can be combined to form a virtual port (Port 0). Each adapter is a shuttle on that port, and the Adapter ID is the Shuttle ID, as shown in Figure 14d.
[0375] Exemplarily, the scheduling algorithm for the message in SBuff in the port in FIG14c and FIG14d may be a weighted round-robin scheduling algorithm (WRR), that is, sending messages to ports of other end devices / end devices themselves according to information such as the priority and weight of the message.
[0376] The routing method involved in this application can be applied to multicast scenarios and unicast scenarios.
[0377] Figure 15a is a schematic diagram of an exemplary application scenario. In the embodiment of Figure 15a, a one-way multicast scenario of video data is shown, that is, device A sends a video stream, and devices B, C, and D receive the video stream.
[0378] Referring to Figure 15a, exemplarily, a video stream can be sent by the adapter 2 of device A (wherein, adapter 2 can be an audio and video sending adapter), and received by the adapter 7 of device B (wherein, adapter 7 can be an audio and video receiving adapter), the adapter 3 of device C (wherein, adapter 3 can be an audio and video receiving adapter) and the adapter 5 of device D (wherein, adapter 5 can be an audio and video receiving adapter).
[0379] For example, device A may be a source device, device B and device C may be composite devices, and device D may be a sink device. For example, device A is a DVD player, device B is a speaker, and device C and device D are monitors.
[0380] Figure 15b is a schematic diagram illustrating an exemplary application scenario. In the embodiment of Figure 15b, a bidirectional unicast scenario of third-party protocol data is shown, where device A sends a third-party protocol data stream and device C receives the third-party protocol data stream, or vice versa.
[0381] Referring to Figure 15b, illustratively, a data stream can be sent by the adapter 2 of device A (wherein, adapter 2 can be a USB3 tunnel adapter), passed through port 1 (MUP1) and port 2 (MDP2) of device B, and port 1 (MUP1) of device C, and transmitted to the adapter 3 of device C (wherein, adapter 3 can be a USB3 tunnel adapter).
[0382] Referring to Figure 15b, illustratively, a data stream can be sent by the adapter 3 of device C (wherein, adapter 3 can be a USB3 tunnel adapter), passed through port 2 (MDP2) and port 1 (MUP1) of device B, and port 2 (MDP2) of device A, and transmitted to the adapter 2 of device A (wherein, adapter 2 can be a USB3 tunnel adapter).
[0383] Exemplarily, device A may be a source device, device B may be a routing device or a composite device, and device C may be a sink device.
[0384] For example, the present application can pre-configure routing information so that, during the actual transmission of data streams, routing can be performed according to the pre-configured routing information to achieve multicast or unicast. The following is an example of configuring routing information in an end device.
[0385] For example, assume that an end device includes M ports, and the numbers of shuttles corresponding to these M ports are N1, N2, N3, ..., NM, respectively. Any two values of N1, N2, N3, ..., NM may be the same or different, and this application does not impose any restrictions thereon. For example, the routing information in the end device may include M inbound flow information sets and M outbound flow information sets corresponding to the M ports, where each port corresponds to one inbound flow information set and one outbound flow information set. M, N1, N2, N3, ..., NM are all positive integers.
[0386] For example, for the kth port (k is a positive integer between 1 and M, inclusive), assuming that the kth port corresponds to Nk shuttles, an inbound flow information set corresponding to the kth port may include Nk inbound flow information (wherein, the inbound flow information may also be referred to as an inbound node). And an outbound flow information set corresponding to the kth port may include Nk outbound flow information groups (wherein, the outbound flow information groups may be referred to as an outbound linked list), each outbound flow information group including one or more outbound flow information (wherein, the outbound flow information may also be referred to as an outbound node). A shuttle of the kth port may correspond to one inbound flow information in the inbound flow information set corresponding to the kth port, and may correspond to one outbound flow information group in the outbound flow information set corresponding to the kth port. The inbound flow information corresponding to a shuttle of the kth port and the first outbound flow information in the corresponding outbound flow information group may be referred to as an entry node. The inbound flow information and the corresponding outbound flow information group corresponding to a shuttle of the kth port may be referred to as a routing table entry; routing information may include multiple routing table entries.
[0387] Figure 16a is a schematic diagram of exemplary routing information. In Figure 16a, the number of shuttles corresponding to each port is the same, which is N.
[0388] Referring to Figure 16a, for example, Port 0 corresponds to N shuttles, and the shuttle IDs (Shuttle IDs) of these N shuttles are 0, 1, 2, ..., N-1, respectively. Port 0 corresponds to an inflow information set (as shown by the dashed box on the left side of Figure 16a) and an outflow information set (as shown by the dashed box on the right side of Figure 16a). The inflow information set includes N inflow information corresponding to the N shuttles, and the outflow information set includes N outflow information groups corresponding to the N shuttles. For the convenience of subsequent description, the inflow information corresponding to the shuttle with Shuttle ID = s and corresponding to the port with Port ID = p can be referred to as the inflow information corresponding to [Port ID = p, Shuttle ID = s]; and the outflow information group corresponding to the shuttle with Shuttle ID = s and corresponding to the port with Port ID = p can be referred to as the outflow information group corresponding to [Port ID = p, Shuttle ID = s].
[0389] Among them, the outflow information group corresponding to [Port ID=0, Shuttle ID=0] includes one outflow information, the outflow information group corresponding to [Port ID=0, Shuttle ID=1] includes one outflow information, the outflow information group corresponding to [Port ID=0, Shuttle ID=2] includes two outflow information,..., the outflow information group corresponding to [Port ID=0, Shuttle ID=N-1] includes three outflow information.
[0390] Referring to Figure 16a, for example, Port 1 corresponds to N shuttles, and the shuttle IDs (Shuttle IDs) of these N shuttles are 0, 1, 2, ..., N-1, respectively. Port 1 corresponds to one inflow information set and one outflow information set; the inflow information set includes N inflow information corresponding to the N shuttles, and the outflow information set includes N outflow information sets corresponding to the N shuttles. The outflow information set corresponding to [Port ID = 1, Shuttle ID = 0] includes one outflow information, the outflow information set of the shuttle [Port ID = 1, Shuttle ID = 1] includes one outflow information, the outflow information set of the shuttle [Port ID = 1, Shuttle ID = 2] includes two outflow information, ..., and the outflow information set of the shuttle [Port ID = 1, Shuttle ID = N-1] includes one outflow information.
[0391] ......
[0392] Referring to Figure 16a, for example, Port M-1 corresponds to N shuttles, whose shuttle IDs are 0, 1, 2, ..., N-1, respectively. Port M-1 corresponds to one inflow information set and one outflow information set; the inflow information set includes N inflow information corresponding to the N shuttles, and the outflow information set includes N outflow information sets corresponding to the N shuttles. Specifically, the outflow information set corresponding to the shuttle [Port ID = M-1, Shuttle ID = 0] includes two outflow information sets, the outflow information set corresponding to the shuttle [Port ID = M-1, Shuttle ID = 1] includes two outflow information sets, the outflow information set corresponding to the shuttle [Port ID = M-1, Shuttle ID = 2] includes two outflow information sets, ..., and the outflow information set corresponding to the shuttle [Port ID = M-1, Shuttle ID = N-1] includes two outflow information sets.
[0393] Exemplarily, routing information can be divided into first routing information and second routing information, and the first routing information and the second routing information can be stored in blocks (for example, they can be stored in blocks in registers) to facilitate management and use of routing information. The first routing information can include M sets of inbound flow information and the first outbound flow information in each outbound flow information group (or, the first routing information can include multiple table entry nodes), and the second routing information can include other outbound flow information in each outbound flow information group, where the other outbound flow information is the outbound flow information in the outbound flow information group other than the first outbound flow information.
[0394] Figure 16b is a schematic diagram of exemplary routing information. Figure 16b is the first routing information and the second routing information obtained by splitting the routing information in Figure 16a.
[0395] 16b , illustratively, the first routing information may include M inflow information sets corresponding to M ports, and the first outflow information of each outflow information group in the M outflow information sets corresponding to the M ports. The second routing information may include other outflow information of each outflow information group in the M outflow information sets corresponding to the M ports. All outflow information in the second routing information is uniformly numbered, rather than numbered according to the Port ID and Shuttle ID; for example, the "1 to 255" on the left side of each outflow information in the second routing information of FIG16b may indicate the sequence number (or storage address) of the outflow information.
[0396] Referring again to FIG. 16a , illustratively, the outbound flow information group corresponding to [Port ID=0, Shuttle ID=0] includes only one outbound flow information; furthermore, the outbound flow information corresponding to [Port ID=0, Shuttle ID=0] in the first routing information of FIG. 16b is the outbound flow information in the outbound flow information group corresponding to [Port ID=0, Shuttle ID=0] in the routing information of FIG. 16a ; the second routing information of FIG. 16b does not include the other outbound flow information in the outbound flow information group corresponding to [Port ID=0, Shuttle ID=0]. The "0" included in the outbound flow information corresponding to [Port ID=0, Shuttle ID=0] in the first routing information of FIG. 16b may indicate that the outbound flow information is the last outbound flow information for [Port ID=0, Shuttle ID=0].
[0397] Referring again to FIG. 16a , illustratively, the outbound flow information group corresponding to [Port ID=0, Shuttle ID=1] includes only one outbound flow information; furthermore, the outbound flow information corresponding to [Port ID=0, Shuttle ID=1] in the first routing information of FIG. 16b is the outbound flow information in the outbound flow information group corresponding to [Port ID=0, Shuttle ID=1] in the routing information of FIG. 16a ; the second routing information of FIG. 16b does not include the other outbound flow information in the outbound flow information group corresponding to [Port ID=0, Shuttle ID=1]. The "0" included in the outbound flow information corresponding to [Port ID=0, Shuttle ID=1] in the first routing information of FIG. 16b may indicate that the outbound flow information is the last outbound flow information for [Port ID=0, Shuttle ID=1].
[0398] Referring again to FIG. 16a , illustratively, the outflow information group corresponding to [Port ID=0, Shuttle ID=2] includes two outflow information; furthermore, the outflow information corresponding to [Port ID=0, Shuttle ID=2] in the first routing information of FIG. 16b is the first outflow information in the outflow information group corresponding to [Port ID=0, Shuttle ID=2] in the routing information of FIG. 16a ; the outflow information corresponding to [Port ID=0, Shuttle ID=2] in the second routing information of FIG. 16b is the second outflow information in the outflow information group corresponding to [Port ID=0, Shuttle ID=2] in the routing information of FIG. 16a . The “3” contained in the outflow information corresponding to [Port ID=0, Shuttle ID=2] in the first routing information of FIG. 16b may represent the sequence number (or storage address) of the next outflow information corresponding to [Port ID=0, Shuttle ID=2] in the second routing information. In the second routing information of FIG16b , an outgoing flow information with a sequence number (or storage address) of “3” contains “0”, indicating that the outgoing flow information is the last outgoing flow information.
[0399] ......
[0400] Referring again to FIG. 16a , illustratively, the outbound flow information group corresponding to [Port ID=0, Shuttle ID=N-1] includes three outbound flow information. Furthermore, the outbound flow information corresponding to [Port ID=0, Shuttle ID=N-1] in the first routing information of FIG. 16b is the first outbound flow information in the outbound flow information group corresponding to [Port ID=0, Shuttle ID=N-1] in the routing information of FIG. 16a . The outbound flow information corresponding to [Port ID=0, Shuttle ID=N-1] in the second routing information of FIG. 16b is the second and third outbound flow information in the outbound flow information group corresponding to [Port ID=0, Shuttle ID=N-1] in the routing information of FIG. 16a . The “7” contained in the outbound flow information corresponding to [Port ID=0, Shuttle ID=N-1] in the first routing information of FIG. 16b may represent the sequence number (or storage address) of the next outbound flow information corresponding to [Port ID=0, Shuttle ID=N-1] in the second routing information. The "8" included in the outgoing flow information with a sequence number (or storage address) of "7" in the second routing information of FIG16b may indicate the sequence number (or storage address) of the next outgoing flow information in the second routing information. The "0" included in the outgoing flow information with a sequence number (or storage address) of "8" in the second routing information of FIG16b indicates that the outgoing flow information is the last outgoing flow information.
[0401] It should be understood that the same can be applied to other ports, which will not be described in detail here.
[0402] Exemplarily, the first routing information may be used for unicast, and the second routing information may be used for multicast; thus, dividing the routing information into the first routing information and the second routing information can improve routing efficiency.
[0403] Illustratively, inbound flow information can be used to describe characteristics of data flows received by a port, such as data flow priority, data flow scheduling weight, data flow bandwidth, whether flow control is enabled, whether shared buffering is used, etc. The data structure of the inbound flow information can be shown in FIG17a . For example, the fields included in the inbound flow information in FIG17a can be explained with reference to Table 3 below.
[0404] Table 3
[0405] It should be understood that Figure 17a is only an example of the data structure of the inflow information of the present application, and the data structure of the inflow information of the present application may be other data structures; and the inflow information of the present application may contain more or fewer fields than shown in Figure 17a, and the present application does not impose any restrictions on this.
[0406] Exemplarily, the outflow information can be used to describe characteristics related to the port (which may include relevant information between the port and the corresponding shuttle, and relevant characteristics of the corresponding sending buffer area, etc.); wherein, the data structure of the outflow information can be as shown in Figure 17b; the fields included in the outflow information in Figure 17b can be explained with reference to the following Table 4.
[0407] Table 4
[0408] It should be understood that Figure 17b is only an example of the data structure of the outflow information of the present application, and the data structure of the outflow information of the present application may be other data structures; and the outflow information of the present application may contain more or fewer fields than shown in Figure 17b, and the present application does not impose any restrictions on this.
[0409] Among them, the values included in the outgoing flow information in Figure 16b, such as "0", "3", "7", "9", "6", "10", "15", "5", and "8", can be the values of NEXT_NODE_POINTER in the flow information.
[0410] For example, the inbound and outbound information corresponding to a shuttle in the first routing information is 16 (0x10) bytes, while the outbound information corresponding to a shuttle in the second routing information is 8 bytes. Assuming that each port on the end device supports the same maximum number of shuttles (MAX_SHUTTLE_ID), which is N (N is a positive integer), each port requires 0x10*N bytes to store the first routing information. Assuming the end device supports M-1 ports, plus port 0, which represents the end device itself by default (a virtual port composed of all adapters), the size of the first routing information for this end device is 0x10*N*M.
[0411] For example, the register base address of the first routing information can be pre-configured, and the register base address of the first routing information can be represented by ROUTER_TABLE_BASE. The register base address of the second routing information can also be pre-configured, and the register base address of the second routing information can be represented by ROUTER_FNODE_BASE. In this case, the address of an inflow information corresponding to [PortID=p, ShuttleID=s] can be: ROUTER_TABLE_BASE+0x10*(MAX_SHUTTLE_ID+1)*p+0x10*s (1)
[0412] The address of the first outgoing flow information corresponding to [PortID=p, ShuttleID=s] can be: ROUTER_TABLE_BASE+0x10*(MAX_SHUTTLE_ID+1)*p+0x10*s+8 (2)
[0413] For example, in an outgoing flow information, when NEXT_NODE_POINTER=r, the address of other outgoing flow information pointed to by NEXT_NODE_POINTER is: ROUTER_FNODE_BASE+8*r (3)
[0414] The following uses FIG. 15a as an example to illustrate the configuration process of routing information.
[0415] FIG18a is a schematic diagram illustrating an exemplary process of configuring routing information.
[0416] S501: Determine an inflow port and a plurality of outflow ports corresponding to the inflow port.
[0417] For example, in Figure 15a, after device B is connected to device A, device C is connected to device B, and device D is connected to device C, device B, device C, and device D can all set device A as the source device in response to user operations; thereafter, device A can initiate path configuration; wherein, path configuration includes bandwidth allocation, shuttle allocation, priority allocation, weight allocation, port allocation, etc.
[0418] The following describes the path configuration process using the following examples: configuring path 1 between adapter 2 of device A and adapter 7 of device B, configuring path 2 between adapter 2 of device A and adapter 3 of device C, and configuring path 3 between adapter 2 of device A and adapter 5 of device D. Path 1, path 2, and path 3 all transmit the same data stream.
[0419] First, make port assignments.
[0420] For example, port 0 in device A, MDP2 of device A, MUP1 of device B, port 0 in device B, MDP2 of device B, MUP1 of device C, port 0 in device C, MDP2 of device C, MUP1 of device D, and port 0 in device D can be configured as ports for forming a path.
[0421] Next, bandwidth allocation, priority allocation, and weight allocation are performed.
[0422] For example, the priorities of the data streams transmitted by channel 1, channel 2, and channel 3 may all be set to 1, the weights may all be set to 1, and the transmission bandwidths may all be set to 0x66B.
[0423] Then, the shuttle car is configured.
[0424] For example, from device A, select the adapter with Shuttle ID=2 (ie, adapter 2).
[0425] For example, from all shuttles between MDP2 of device A and MUP1 of device B, an idle shuttle, such as the shuttle with Shuttle ID=7, is selected as the shuttle for transmitting the data stream.
[0426] For example, from device B, the adapter with Shuttle ID=7 (ie, adapter 7) is selected.
[0427] For example, from all shuttles between MDP2 of device B and MUP1 of device C, an idle shuttle, such as the shuttle with Shuttle ID=1, is selected as the shuttle for transmitting the data stream.
[0428] For example, from device C, the adapter with Shuttle ID=3 (ie, adapter 3) is selected.
[0429] For example, from all shuttles between MDP2 of device C and MUP1 of device D, an idle shuttle, for example, the shuttle with Shuttle ID=13, is selected as the shuttle for transmitting the data stream.
[0430] For example, from device D, the adapter with Shuttle ID=5 (ie, adapter 5) is selected.
[0431] After the path configuration is completed, path configuration information may be obtained. The path configuration information may include priority information, weight information, bandwidth information, port identifier, and shuttle identifier.
[0432] The following describes the process of configuring routing information in an end device using an end device as an example. It should be noted that the end device may also include a management control device, and the management control device in the end device may configure routing information, that is, the management control device may execute S501 to S504.
[0433] For example, based on the above description, it can be seen that the path between end devices is a bidirectional path, and the data flow can also be a bidirectional data flow; when the directions of the transmitted data flow are different, the port (hereinafter referred to as the inflow port) used to receive the data flow sent by other end devices / end device devices (such as audio and video acquisition devices, third-party protocol controllers, etc.) in the same end device is different from the port (hereinafter referred to as the outflow port) used to send data flow to other end devices / end device devices (such as audio and video processing devices, third-party protocol controllers, etc.). Among them, the data flow sent from the source device to the composite device / sink device / dock can be called the forward data flow, and the data flow sent from the composite device / sink device / dock to the source device can be called the reverse data flow.
[0434] Exemplarily, based on the path configuration information and the direction of data flow, an inlet port and one or more outlet ports located on the path can be determined from the multiple ports included in the end device; and the inlet shuttle of the inlet port (i.e., the shuttle for receiving data streams sent by other end devices / the end device itself) and the outflow shuttle of each outflow port (i.e., the shuttle for sending data streams to other end devices / the end device itself) can be determined.
[0435] For example, for device A in Figure 15a: when the transmitted data flow is a forward data flow, the inbound port is port 0 (Port ID=0) in device A, and the inbound shuttle is adapter 2 (i.e., the shuttle with shuttle ID=2); the outbound port is MDP2 (Port ID=2) in device A, and the outbound shuttle is the shuttle with shuttle ID=7. When the transmitted data flow is a reverse data flow, the inbound port is MDP2 (Port ID=2) in device A, and the inbound shuttle is the shuttle with shuttle ID=7; the outbound port is port 0 (Port ID=0) in device A, and the outbound shuttle is adapter 2 (i.e., the shuttle with shuttle ID=2).
[0436] For example, for device B in Figure 15a: when the transmitted data flow is a forward data flow, the inbound port is MUP1 (Port ID=1) in device B, and the inbound shuttle is the shuttle with Shuttle ID=7; one outbound port is Port 0 (Port ID=0) in device B, and the corresponding outbound shuttle is Adapter 7 (i.e., the shuttle with Shuttle ID=7); another outbound port is MDP2 (Port ID=2) in device B, and the outbound shuttle is the shuttle with Shuttle ID=1. When the transmitted data flow is a reverse data flow, one inbound port is Port 0 in device B, and the corresponding inbound shuttle is Adapter 7 (i.e., the shuttle with Shuttle ID=7); another inbound port is MDP2 (Port ID=2) in device B, and the corresponding inbound shuttle is the shuttle with Shuttle ID=1; the outbound port is MUP1 (Port ID=1) in device B, and the outbound shuttle is the shuttle with Shuttle ID=7.
[0437] For example, for device C in Figure 15a: when the transmitted data flow is a forward data flow, the inbound port is MUP1 (Port ID=1) in device C, and the inbound shuttle is the shuttle with Shuttle ID=1; one outbound port is Port 0 (Port ID=0) in device C, and the corresponding outbound shuttle is Adapter 3 (i.e., the shuttle with Shuttle ID=3); another outbound port is MDP2 (Port ID=2) in device C, and the outbound shuttle is the shuttle with Shuttle ID=13. When the transmitted data flow is a reverse data flow, one inbound port is Port 0 in device C, and the corresponding inbound shuttle is Adapter 3 (i.e., the shuttle with Shuttle ID=3); another inbound port is MDP2 (Port ID=2) in device C, and the corresponding inbound shuttle is the shuttle with Shuttle ID=13; the outbound port is MUP1 (Port ID=1) in device C, and the outbound shuttle is the shuttle with Shuttle ID=1.
[0438] For example, for device D in Figure 15a: when the transmitted data flow is a forward data flow, the inflow port is MUP1 (Port ID=1) in device D, and the inflow shuttle is the shuttle with Shuttle ID=13; the outflow port is Port 0 (Port ID=0) in device D, and the outflow shuttle is Adapter 5 (i.e., the shuttle with Shuttle ID=5). When the transmitted data flow is a reverse data flow, the inflow port is Port 0 (Port ID=0) in device D, and the inflow shuttle is Adapter 5 (i.e., the shuttle with Shuttle ID=5); the outflow port is MUP1 (Port ID=1) in device D, and the outflow shuttle is the shuttle with Shuttle ID=13.
[0439] Assuming that the port identifier of the inflow port is Port ID=p1, and the shuttle identifier of the inflow shuttle between the inflow port and other end devices / the end device itself is Shuttle ID=s1, then the outflow information group corresponding to [Port ID=p1, ShuttleID=s1] can be configured with reference to S502~S504.
[0440] Assume that the number of outbound ports is R (R is an integer greater than 1). When there are R outbound ports, the outbound information group corresponding to [Port ID=p1, Shuttle ID=s1] may include R outbound flow information. The following describes the j-th outbound flow information in the outbound information group corresponding to the configuration [Port ID=p1, Shuttle ID=s1], taking the j-th outbound port among the R outbound ports as an example, where j is a positive integer less than or equal to R.
[0441] S502. Based on the port identifier of the j-th outflow port, configure the first preset field of the j-th outflow information in the outflow information group; and based on the shuttle identifier of the outflow shuttle of the j-th outflow port, configure the second preset field of the j-th outflow information; wherein the outflow information group corresponds to the inflow shuttle of the inflow port.
[0442] The first preset field may refer to the PORT_ID field in Table 4 above, and the second preset field may refer to the SHUTTLE_ID field in Table 4 above.
[0443] S503: When the jth outbound port is not the last outbound port, configure the third preset field of the jth outbound information based on the address information of the j+1th outbound information in the outbound information group.
[0444] Exemplarily, the third preset field may refer to the NEXT_NODE_POINTER field in Table 4 above.
[0445] Illustratively, the address information of the j+1th outgoing flow information may be used to determine the address of the j+1th outgoing flow information; for example, it may refer to the value of a pointer pointing to the address of the j+1th outgoing flow information.
[0446] S504: When the j-th outbound port is the last outbound port, configure the third preset field of the j-th outbound information using preset information.
[0447] Exemplarily, the preset information may be 0.
[0448] For example, for device B in Figure 15a, when the transmitted data flow is a forward data flow, the inflow port is MUP1 (Port ID=1) in device B, and the outflow ports are port 0 (Port ID=0) and MDP2 (Port ID=2) in device B.
[0449] Assume that the first outflow port is port 0 and the second outflow port is MDP2.
[0450] [Corrected 30.11.2023 according to Rule 91] For the first outbound port: the port identifier Port ID=0 of port 0 can be used to configure the first preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=7]; the shuttle identifier Shuttle ID=7 of the outbound shuttle of port 0 can be used to configure the second preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=7]; and the value of the pointer pointing to the address of the second outbound information corresponding to [Port ID=1, Shuttle ID=7] (such as 5) can be used to configure the third preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=7], as shown in (1) in Figure 18b. In addition, the fourth preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=7] (i.e., the RECEIVER_COUNT field in Table 4 above) can also be configured based on the number of end devices connected to port 0 in device B.
[0451] [Corrected 30.11.2023 according to Rule 91] For the second outbound port: the first preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=7] can be configured using the port identifier Port ID=2 of MDP2; the second preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=7] can be configured using the shuttle identifier Shuttle ID=1 of MDP2's outbound shuttle; and the third preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=7] can be configured using the preset information, as shown in (2) in Figure 18b. In addition, the fourth preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=7] can also be configured based on the number of end devices connected to MDP2 in device B.
[0452] [Corrected 30.11.2023 according to Rule 91] For example, for device C in Figure 15a, when the transmitted data flow is a forward data flow, the inflow port is MUP1 (Port ID=1) in device C, and the outflow ports are port 0 (Port ID=0) and MDP2 (Port ID=2) in device C.
[0453] [Corrected 30.11.2023 according to Rule 91] Assume that the first outflow port is port 0 and the second outflow port is MDP2.
[0454] [Corrected 30.11.2023 according to Rule 91] For the first outbound port: the port identifier Port ID=0 of port 0 can be used to configure the first preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=1]; the shuttle identifier Shuttle ID=3 of the outbound shuttle of port 0 can be used to configure the second preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=1]; and the value of the pointer used to point to the address of the second outbound information corresponding to [Port ID=1, Shuttle ID=1] (such as 7) can be used to configure the third preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=1], as shown in (1) in Figure 18c. In addition, the fourth preset field in the first outbound information corresponding to [Port ID=1, Shuttle ID=1] can also be configured according to the number of terminal devices connected to port 0 in device C.
[0455] [Corrected 30.11.2023 according to Rule 91] For the second outbound port: the first preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=1] can be configured using the port identifier Port ID=2 of MDP2; the second preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=1] can be configured using the shuttle identifier Shuttle ID=13 of MDP2's outbound shuttle; and the third preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=1] can be configured using the preset information, as shown in (2) in Figure 18c. In addition, the fourth preset field in the second outbound information corresponding to [Port ID=1, Shuttle ID=1] can also be configured based on the number of end devices connected to MDP2 in device C.
[0456] [Corrected 30.11.2023 according to Rule 91] For example, when there is one outbound port, the outbound information group corresponding to [Port ID=p1, ShuttleID=s1] may include one outbound information; and one outbound information in the outbound information group corresponding to [Port ID=p1, ShuttleID=s1] may be configured with reference to S502 and S504.
[0457] [Corrected 30.11.2023 according to Rule 91] For example, for device A in Figure 15a, when the transmitted data flow is a forward data flow, the inflow port is port 0 (Port ID=0) in device A, and the outflow port is MDP2 (Port ID=2) in device A.
[0458] [Corrected 30.11.2023 according to Rule 91] For example, the port ID of MDP2, Port ID=2, can be used to configure the first preset field in the outbound flow information corresponding to [Port ID=0, Shuttle ID=2]. The shuttle ID of MDP2's outbound flow shuttle, Shuttle ID=7, can be used to configure the second preset field in the outbound flow information corresponding to [Port ID=0, Shuttle ID=2]. And the preset information can be used to configure the third preset field in the outbound flow information corresponding to [Port ID=0, Shuttle ID=2], as shown in (1) in Figure 18d. In addition, the fourth preset field in the outbound flow information corresponding to [Port ID=0, Shuttle ID=2] can also be configured based on the number of terminal devices connected to MDP2 in device A.
[0459] [Corrected 30.11.2023 according to Rule 91] For example, for device A in Figure 15a, when the transmitted data flow is a reverse data flow, the inflow port is MDP2 (Port ID=2) in device A, and the outflow port is port 0 (Port ID=0) in device A.
[0460] [Corrected 30.11.2023 according to Rule 91] For example, the port ID of port 0, Port ID=0, can be used to configure the first preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=7]; the shuttle ID of the outgoing flow shuttle of port 0, Shuttle ID=2, can be used to configure the second preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=7]; and the preset information can be used to configure the third preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=7], as shown in (2) in Figure 18d. In addition, the fourth preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=7] can also be configured based on the number of terminal devices connected to port 0 in device A.
[0461] [Corrected 30.11.2023 according to Rule 91] For example, for device B in Figure 15a, when the transmitted data flow is a reverse data flow, the inflow port is MDP2 (Port ID=2) and port 0 (Port ID=0) in device B, and the outflow port is MUP1 (Port ID=1) in device B.
[0462] [Corrected 30.11.2023 according to Rule 91] For example, the port identifier Port ID=1 of MUP1 can be used to configure the first preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=1]; the shuttle identifier Shuttle ID=7 of the outgoing flow shuttle of MUP1 can be used to configure the second preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=1]; and the preset information can be used to configure the third preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=1], as shown in (1) in Figure 18e. In addition, the fourth preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=1] can also be configured based on the number of terminal devices connected to MUP1 in device B.
[0463] [Corrected 30.11.2023 according to Rule 91] For example, the port identifier Port ID=1 of MUP1 can be used to configure the first preset field in the outgoing flow information corresponding to [Port ID=0, Shuttle ID=7]; the shuttle identifier Shuttle ID=7 of the outgoing flow shuttle of MUP1 can be used to configure the second preset field in the outgoing flow information corresponding to [Port ID=0, Shuttle ID=7]; and the preset information can be used to configure the third preset field in the outgoing flow information corresponding to [Port ID=0, Shuttle ID=7], as shown in (2) in Figure 18e. In addition, the fourth preset field in the outgoing flow information corresponding to [Port ID=2, Shuttle ID=1] can also be configured based on the number of terminal devices connected to MUP1 in device B.
[0464] [Corrected 30.11.2023 according to Rule 91] Similarly, the configuration of each outbound flow information in the routing information of device C and device D can also refer to the configuration of each outbound flow information in the routing information of device A and device B mentioned above, and will not be repeated here.
[0465] [Corrected 30.11.2023 according to Rule 91] For example, an inflow information corresponding to an inflow shuttle of an inflow port in the first routing information may also be configured according to priority information, weight information, and bandwidth information.
[0466] [Corrected 30.11.2023 according to Rule 91] For example, assuming that the port identifier of the inflow port is Port ID=p1, and the shuttle identifier of the inflow shuttle between the inflow port and other end devices / the end device itself is Shuttle ID=s1; based on the priority information, weight information, and bandwidth information, an inflow information corresponding to [Port ID=p1, Shuttle ID=s1] in the first routing information can be configured.
[0467] [Corrected 30.11.2023 according to Rule 91] For example, based on the priority information, the fifth preset field of the incoming flow information corresponding to [Port ID=p1, Shuttle ID=s1] (i.e., the PRIOR field in the above Table 3) can be configured; based on the weight information, the sixth preset field of the incoming flow information corresponding to [Port ID=p1, Shuttle ID=s1] (i.e., the WEIGHT field in the above Table 3) can be configured; based on the bandwidth information, the seventh preset field of the incoming flow information corresponding to [Port ID=p1, Shuttle ID=s1] (i.e., the BANDWIDTH field in the above Table 3) can be configured.
[0468] [Corrected 30.11.2023 according to Rule 91] Assume that the priority is 1, the weight is 1, and the bandwidth is 0x66B.
[0469] [Corrected 30.11.2023 according to Rule 91] For example, for device A in FIG15a, when the transmitted data flow is a forward data flow, the inbound port is port 0, and the inbound flow information corresponding to [Port ID = 0, Shuttle ID = 2] is configured, as shown in (1) in FIG19a. When the transmitted data flow is a reverse data flow, the inbound flow information corresponding to [Port ID = 2, Shuttle ID = 7] is configured, as shown in (2) in FIG19a. In FIG19a (2), UD = 1, indicating that the data flow is a unidirectional return flow, that is, there is no reverse data flow, and the bandwidth is 0.
[0470] [Corrected 30.11.2023 according to Rule 91] For example, for device B in FIG15a, when the transmitted data flow is a forward data flow and the inflow port is MUP1, the inflow information corresponding to [Port ID=1, ShuttleID=7] in device B is configured as shown in (1) in FIG19b. When the transmitted data flow is a reverse data flow and the inflow ports are port 0 and MDP2, the inflow information corresponding to [Port ID=0, ShuttleID=7] is configured as shown in (2) in FIG19b, and the inflow information corresponding to [Port ID=2, ShuttleID=1] is configured as shown in (3) in FIG19b. In FIG19b (2) and FIG19b (3), UD=1 indicates that the data flow is a unidirectional return flow, that is, there is no reverse data flow and the bandwidth is 0.
[0471] Similarly, the configuration of each inbound flow information in the routing information of device C and device D may refer to the configuration of each inbound and outbound flow information in the routing information of device A and device B, and will not be repeated here.
[0472] After the routing information is configured, data streams can be transmitted between end devices through the established path. The following describes the process of routing data streams based on the configured routing information on the path. This application uses the example of data stream transmission via messages.
[0473] FIG20 is a schematic diagram illustrating an exemplary routing method.
[0474] S701: Read a message from a first buffer area, where the first buffer area corresponds to a source port for receiving the message.
[0475] For example, a message may be read from a receiving buffer (RBuff) corresponding to a port of the end device, and then the message may be multicasted with reference to S702 to S703 below. The receiving buffer is used to store messages received from other end devices / devices of the end device itself.
[0476] For purposes of illustration, the port that receives a message from another end device / the end device's own device may be referred to as the source port corresponding to the message; the shuttle that receives the message from another end device / the end device's own device may be referred to as the source shuttle corresponding to the message. The source shuttle corresponding to the message corresponds to the source port corresponding to the message, i.e., the source shuttle corresponding to the message is one of the multiple shuttles of the source port corresponding to the message. The port identifier of the source port may be referred to as the first port identifier, and the shuttle identifier of the source shuttle may be referred to as the first shuttle identifier. Furthermore, the receive buffer area used to store the message, i.e., the receive buffer area corresponding to the source port, may be referred to as the first buffer area.
[0477] S702 : Determine multiple target outflow information based on the routing information, the first port identifier of the source port, and the first shuttle identifier of the source shuttle obtained from the message header of the message.
[0478] The message header of the message carries the first shuttle vehicle identifier of the source shuttle vehicle corresponding to the message; and after reading the message from the first buffer area, the first shuttle vehicle identifier of the source shuttle vehicle can be obtained from the message header.
[0479] For example, based on the above description of routing information, one outbound flow information group in the routing information corresponds to one shuttle at one port. Furthermore, a target outbound flow information group can be determined based on the first shuttle identifier of the source shuttle, the first port identifier of the source port, and the routing information. This target outbound flow information group can include one or more target outbound flow information. The specific process will be described later.
[0480] For example, when target outflow information is obtained, it indicates that the message needs to be unicast. Based on this target outflow information, a target port and a target shuttle can be determined, with each target port corresponding to a target shuttle. Next, based on the target port and the target shuttle, a second buffer can be determined; the second buffer is the send buffer (SBuff) corresponding to the target port. The message can then be added to the second buffer. Specifically, the message can be forwarded to the second buffer.
[0481] For example, when multiple target outflow information is obtained, it indicates that the message needs to be multicasted, and the following S703 to S704 can be executed:
[0482] S703: Determine multiple target ports and multiple target shuttles based on multiple target outflow information.
[0483] Exemplarily, for each target outflow information in the plurality of target outflow information, a target port and a target shuttle can be determined based on the target outflow information, and one target port corresponds to one target shuttle; in this way, multiple target ports and multiple target shuttles can be determined, and multiple target ports and multiple target shuttles correspond one to one.
[0484] Exemplarily, each target outflow information may include a second port identifier and a second shuttle identifier. In this way, a target port can be determined based on a second port identifier in a target outflow information; and a target shuttle can be determined from multiple shuttles of the target port based on a second shuttle identifier in the target outflow information.
[0485] S704: Add the message to multiple second buffer areas, where one second buffer area corresponds to one target port.
[0486] For example, a second buffer area can be determined based on a target port and a target shuttle for the target port; further, multiple second buffer areas can be determined. A second buffer area can be a send buffer area (SBuff) corresponding to a target port. The message can then be added to the multiple second buffer areas.
[0487] In one possible approach, the message can be copied to the second buffer area corresponding to the first target port, and the message can be forwarded to the second buffer area corresponding to the second target port; wherein the second target port is the last target port, and the first target port is a port among multiple target ports except the second target port.
[0488] The second buffer area may be used to store messages to be sent to other end devices / devices of the end device itself.
[0489] It should be noted that S701 to S704 may be executed by a routing device in a UMI controller of the end device.
[0490] This allows for multicasting of messages, meaning the same message can be sent to multiple devices simultaneously. Compared to existing technologies, this approach eliminates the need for additional equipment, data backhaul, or the need to send multiple data streams, enabling fast and efficient data stream multicasting while also saving resources.
[0491] The following describes the unicast and multicast processes of a message in detail.
[0492] FIG21 is a schematic diagram illustrating an exemplary routing process.
[0493] S801: Read a message from a first buffer area, where the first buffer area corresponds to a source port for receiving the message.
[0494] For example, S801 may refer to the description of S701 above, which will not be repeated here.
[0495] S802 : Based on the first shuttle identifier and the first port identifier, read first outflow information corresponding to the message from the first routing information, where the first outflow information corresponding to the message includes first identifier information.
[0496] For example, based on the above description of routing information, the routing information may include first routing information and second routing information. The first outflow information corresponding to the message may be read from the first routing information based on the first shuttle identifier and the first port identifier.
[0497] Exemplarily, based on the above description, the first routing information may include multiple table entry nodes; the first address information may be calculated based on the first shuttle identifier and the first port identifier. Specifically, the first shuttle identifier and the first port identifier may be substituted into the above formula (2) to perform calculations to determine the first address information. Subsequently, the information stored in the first address information may be read to obtain the table entry node corresponding to both the first shuttle identifier and the first port identifier.
[0498] Exemplarily, the inflow information may be read from the table entry node; when the value of the VALID field in the inflow information is 0, or the value of the UD field is 1, the message may be discarded; otherwise, the first outflow information may be read from the table entry node.
[0499] Exemplarily, the first outgoing flow information corresponding to the message may include a second port identifier, a second shuttle identifier, and first identifier information. The second port identifier may be extracted from a first preset field of the first outgoing flow information corresponding to the message; the second shuttle identifier may be extracted from a second preset field of the first outgoing flow information corresponding to the message; and the first identifier may be extracted from a third preset field of the first outgoing flow information corresponding to the message.
[0500] The second port identifier in the first outgoing flow information corresponding to the message can be used to determine the first destination port corresponding to the message; the second shuttle identifier in the first outgoing flow information corresponding to the message can be used to determine the first destination shuttle corresponding to the message, and the first destination shuttle corresponds to the first destination port. The first identifier can be used to indicate whether other outgoing flow information corresponding to the message (i.e., the second outgoing flow information) exists in the second routing information, and when the second outgoing flow information corresponding to the message exists in the second routing information, it can be used to determine the storage address of the second outgoing flow information.
[0501] S803: Determine a first target port based on the second port identifier in the first outgoing flow information; and determine a first target shuttle based on the second shuttle identifier in the first outgoing flow information.
[0502] S804: Based on the first identification information, determine whether the second routing information contains the i-th outgoing flow information corresponding to the message, where the initial value of i is 2.
[0503] In S804, i=2.
[0504] For example, when the first identification information is preset information, it can be determined that the second outbound flow information corresponding to the message does not exist in the second routing information; that is, except for the first destination port corresponding to the message, no other destination ports corresponding to the message exist on the local device. In this case, it can be determined that unicast is performed for the message, and S805 can be executed.
[0505] For example, when the first identification information is address information, it can be determined that the second routing information contains second outbound flow information corresponding to the message; that is, in addition to the first destination port corresponding to the message, the local device also has other destination ports corresponding to the message. In this case, S807 and S806 can be executed.
[0506] It should be noted that S804 and S803 can be executed in parallel.
[0507] S805 : When it is determined based on the first identification information that the second outgoing flow information corresponding to the message does not exist in the second routing information, the message is forwarded to the second buffer area corresponding to the first target port.
[0508] S806: When it is determined based on the first identification information that the second outgoing flow information corresponding to the message exists in the second routing information, the message is copied to a second buffer area corresponding to the first target port.
[0509] S807, when it is determined based on the first identification information that the i-th outflow information corresponding to the message exists in the second routing information, based on the first identification information, read the i-th outflow information corresponding to the message from the second routing information, the i-th outflow information includes the second identification information, and the initial value of i is 2.
[0510] Illustratively, in S807, i=2.
[0511] Exemplarily, when it is determined based on the first identification information that the second outgoing flow information corresponding to the message exists in the second routing information, the second outgoing flow information corresponding to the message can be read from the second routing information based on the first identification information. Exemplarily, the first identification information can be a pointer to the address of the second outgoing flow information, and the second address information can be calculated based on the first identification information (for example, the first identification information can be substituted into the above formula (3) to calculate the second address information); then, the information stored in the second address information can be read to obtain the second outgoing flow information corresponding to the message.
[0512] Exemplarily, the second outgoing flow information corresponding to the message may include a second port identifier, a second shuttle identifier, and second identification information. The second port identifier may be extracted from a first preset field of the second outgoing flow information corresponding to the message; the second shuttle identifier may be extracted from a second preset field of the second outgoing flow information corresponding to the message; and the second identification information may be extracted from a third preset field of the second outgoing flow information corresponding to the message.
[0513] The second port identifier in the second outgoing flow information corresponding to the message can be used to determine the second destination port corresponding to the message; the second shuttle identifier in the second outgoing flow information corresponding to the message can be used to determine the second destination shuttle corresponding to the message, and the second destination shuttle corresponds to the outgoing flow information of the second destination port. The second identifier in the second outgoing flow information corresponding to the message can be used to indicate whether other outgoing flow information corresponding to the message (i.e., third outgoing flow information) exists in the second routing information, and when the third outgoing flow information corresponding to the message exists in the second routing information, can be used to determine the storage address of the third outgoing flow information.
[0514] S808 : Determine the i th target port based on the second port identifier in the i th outgoing flow information; and determine the i th target shuttle based on the second shuttle identifier in the i th outgoing flow information.
[0515] S809: Based on the second identification information included in the i-th outgoing flow information, determine whether the second routing information contains the (i+1)-th outgoing flow information corresponding to the message.
[0516] Exemplarily, when the second identification information included in the i-th outgoing flow information is preset information, it can be determined that the i+1-th outgoing flow information corresponding to the message does not exist in the second routing information; in this case, S811 can be executed.
[0517] Exemplarily, when the second identification information included in the i-th outgoing flow information is address information, it can be determined that the i+1-th outgoing flow information corresponding to the message exists in the second routing information; in this case, S810 and S812 can be executed.
[0518] It should be understood that S808 and S809 can be executed in parallel.
[0519] S810 , when it is determined based on the second identification information in the i th outgoing flow information that the second routing information contains the (i+1) th outgoing flow information corresponding to the message, the message is copied to the second buffer area corresponding to the i th target port.
[0520] S811 : When it is determined based on the second identification information in the i th outgoing flow information that the (i+1) th outgoing flow information corresponding to the message does not exist in the second routing information, forward the message to the second buffer area corresponding to the i th target port.
[0521] S812. When it is determined that the i+1th outflow information corresponding to the message exists in the second routing information based on the second identification information included in the i-th outflow information, the i+1th outflow information corresponding to the message is read from the second routing information based on the second identification information, and the i+1th outflow information corresponding to the message includes the second identification information.
[0522] Exemplarily, when it is determined that the second routing information contains the (i+1)th outflow information corresponding to the message based on the second identification information included in the (i)th outflow information, the (i+1)th outflow information corresponding to the message can be read from the second routing information based on the second identification information. Exemplarily, the second identification information included in the (i)th outflow information can be a pointer to the address of the (i+1)th outflow information, and the second address information can be calculated based on the second identification information (for example, the second identification information can be substituted into the above formula (3) to calculate the second address information); then, the information stored in the second address information can be read to obtain the (i+1)th outflow information corresponding to the message.
[0523] Exemplarily, the (i+1)th outgoing flow information corresponding to the message may include a second port identifier, a second shuttle identifier, and second identification information. The second port identifier may be extracted from a first preset field of the (i+1)th outgoing flow information corresponding to the message; the second shuttle identifier may be extracted from a second preset field of the (i+1)th outgoing flow information corresponding to the message; and the second identification information may be extracted from a third preset field of the (i+1)th outgoing flow information corresponding to the message.
[0524] The second port identifier in the (i+1)th outgoing flow information corresponding to the message can be used to determine the (i+1)th destination port corresponding to the message; the second shuttle identifier in the (i+1)th outgoing flow information corresponding to the message can be used to determine the (i+1)th destination shuttle corresponding to the message, and the (i+1)th destination shuttle corresponds to the (i+1)th destination port. The second identifier in the (i+1)th outgoing flow information corresponding to the message can be used to indicate whether other outgoing flow information corresponding to the message (i.e., the (i+2)th outgoing flow information) exists in the second routing information, and when the (i+2)th outgoing flow information corresponding to the message exists in the second routing information, it can be used to determine the storage address of the (i+2)th outgoing flow information.
[0525] S813, increment i by 1.
[0526] For example, after obtaining the i+1th outflow information, i+1 can be set, and then the process returns to S808. It should be understood that when S808 and S809 are executed in parallel, after i+1 is set, the process returns to S808 and S809.
[0527] It should be understood that, in the process of copying or forwarding a message, the routing device may first modify the port identifier of the target port in the message header to a second port identifier found through routing information; and modify the shuttle identifier of the target shuttle in the message header to a second shuttle identifier found through routing information; and then store the message with the modified port identifier and shuttle identifier in the second cache area.
[0528] It should be understood that when the physical connection between the ports of any two devices on a path is disconnected, each device on the path can release bandwidth based on the routing information. For example, after device B and device C are disconnected in Figure 15a, device B can release the bandwidth of the shuttle with Shuttle=1 between device B's MDP2 and device C's MUP1 based on the routing information; and release the bandwidth of device B's adapter 7. In addition, device B can notify device A and then negotiate with device A to release the bandwidth of the shuttle with Shuttle=7 between device B's MUP1 and device A's MUP1. Device A can also release the bandwidth of device A's adapter 2. Similarly, devices C and D can also release bandwidth in this manner, which will not be further described here.
[0529] Compared with the existing technology in which bandwidth can only be released by the host device and other devices disconnected from the source device cannot release bandwidth, the present application is more flexible in releasing bandwidth based on routing information, can release bandwidth in a timely manner, and avoid waste of resources.
[0530] FIG22 is a schematic diagram of the structure of an exemplary routing device. The routing device can be used to execute the method of the aforementioned embodiment. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects of the corresponding method provided above, and will not be repeated here. The routing device may include:
[0531] The message reading module 901 is used to read the message from the first buffer area, where the first buffer area corresponds to the source port of the received message;
[0532] The routing module 902 is configured to determine a plurality of target outbound flow information based on the routing information, the first port identifier of the source port, and the first shuttle identifier of the source shuttle obtained from the message header of the message; the routing information includes a plurality of outbound flow information groups, each outbound flow information group includes a plurality of outbound flow information, and each outbound flow information group corresponds to a shuttle of each port;
[0533] A port and shuttle determination module 903 is configured to determine multiple target ports and multiple target shuttles based on multiple target outflow information. The multiple target ports and multiple target shuttles correspond one to one, and one target outflow information is used to determine one target port and one target shuttle.
[0534] The message adding module 904 is configured to add messages to a plurality of second buffer areas, where one second buffer area corresponds to one target port.
[0535] Exemplarily, the routing information includes first routing information and second routing information, the first routing information includes first outbound flow information of an outbound flow information group, and the second routing information includes other outbound flow information of the outbound flow information group; the multiple target outbound flow information includes the first outbound flow information corresponding to the message and other outbound flow information corresponding to the message;
[0536] The routing module 902 is specifically configured to read the first outgoing flow information corresponding to the message from the first routing information based on the first shuttle identifier and the first port identifier; and read other outgoing flow information corresponding to the message from the second routing information based on the first outgoing flow information corresponding to the message.
[0537] Exemplarily, the first outgoing flow information corresponding to the message includes the first identification information; the routing module 902 is specifically used to read the other outgoing flow information corresponding to the message from the second routing information based on the first identification information when it is determined that there is other outgoing flow information corresponding to the message in the second routing information based on the first identification information.
[0538] Exemplarily, the routing module 902 is specifically used to read the i-th outflow information corresponding to the message from the second routing information based on the first identification information, the i-th outflow information including the second identification information, wherein the initial value of i is 2; based on the second identification information included in the i-th outflow information, determine whether the i+1-th outflow information corresponding to the message exists in the second routing information; when it is determined that the i+1-th outflow information corresponding to the message exists in the second routing information based on the second identification information included in the i-th outflow information, read the i+1-th outflow information corresponding to the message from the second routing information based on the second identification information included in the i-th outflow information, the i+1-th outflow information corresponding to the message includes the second identification information; add 1 to i, and return to execute based on the second identification information included in the i-th outflow information, to determine whether the i+1-th outflow information corresponding to the message exists in the second routing information.
[0539] Exemplarily, the message adding module 904 is specifically used to copy the message to the second cache area corresponding to the first target port, and forward the message to the second cache area corresponding to the second target port; wherein the second target port is the last target port, and the first target port is a port among multiple target ports other than the second target port.
[0540] Exemplarily, the target outflow information includes a second port identifier and a second shuttle identifier. The port and shuttle determination module 903 is specifically configured to determine multiple target ports based on multiple second port identifiers included in multiple target outflow information; and to determine a target shuttle from multiple shuttles of a target port based on a second shuttle identifier included in one target outflow information.
[0541] Exemplarily, when the first identification information is preset information, it is determined that other outflow information corresponding to the message does not exist in the second routing information; when the first identification information is address information, it is determined that other outflow information corresponding to the message exists in the second routing information.
[0542] Exemplarily, the port and shuttle determination module 903 is further configured to, when it is determined based on the first identification information that no other outbound flow information corresponding to the message exists in the second routing information, determine the first target port and the first target shuttle based on the first outbound flow information, and the first target port and the first target shuttle correspond to each other; and the message adding module 904 is further configured to forward the message to the second buffer area corresponding to the first target port.
[0543] Exemplarily, the message is a message of multimedia data.
[0544] FIG23 is a schematic diagram of the structure of an exemplary routing information configuration device. The routing information configuration device can be used to execute the method of the aforementioned embodiment. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects of the corresponding method provided above, and will not be repeated here. The routing information configuration device can be part of the above-mentioned management and control device. The routing information configuration device may include:
[0545] A port determination module 1001 is configured to determine an inflow port and a plurality of outflow ports corresponding to the inflow port;
[0546] The configuration module 1002 is used to configure, for the j-th outflow port among multiple outflow ports: based on the port identifier of the j-th outflow port, a first preset field of the j-th outflow information in the outflow information group; and based on the shuttle identifier of the outflow shuttle of the j-th outflow port, a second preset field of the j-th outflow information; wherein the outflow information group corresponds to the inflow shuttle of the inflow port; when the j-th outflow port is not the last outflow port, based on the address information of the j+1-th outflow information in the outflow information group, a third preset field of the j-th outflow information is configured; when the j-th outflow port is the last outflow port, the preset information is used to configure the third preset field of the j-th outflow information.
[0547] In an example, FIG24 shows a schematic block diagram of a device 1100 according to an embodiment of the present application. The device 1100 may include: a processor 1101 and a transceiver / transceiver pin 1102 , and optionally, a memory 1103 .
[0548] The various components of the device 1100 are coupled together via a bus 1104, wherein the bus 1104 includes, in addition to a data bus, a power bus, a control bus, and a status signal bus. However, for the sake of clarity, all buses are referred to as bus 1104 in the figure.
[0549] Optionally, the memory 1103 may be used for instructions in the aforementioned method embodiment. The processor 1101 may be used to execute instructions in the memory 1103 and control the receiving pin to receive a signal and control the transmitting pin to send a signal.
[0550] The apparatus 1100 may be the electronic device or a chip of the electronic device in the above method embodiment.
[0551] Among them, all relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module and will not be repeated here.
[0552] The present application also provides a chip comprising one or more interface circuits and one or more processors. The interface circuits are configured to receive signals from a memory of an electronic device and send signals to the processors, the signals comprising computer instructions stored in the memory. When the processors execute the computer instructions, the electronic device executes the aforementioned related method steps to implement the routing and / or routing information configuration methods of the aforementioned embodiments. The interface circuits may be transceiver 1102.
[0553] This embodiment also provides a computer storage medium, which stores computer instructions. When the computer instructions are executed on an electronic device, the electronic device executes the above-mentioned related method steps to implement the routing and / or routing information configuration method in the above-mentioned embodiment.
[0554] This embodiment further provides a computer program product. When the computer program product is run on a computer, it enables the computer to execute the above-mentioned related steps to implement the routing and / or routing information configuration method in the above-mentioned embodiment.
[0555] In addition, an embodiment of the present application also provides a device, which can specifically be a chip, component or module, and the device may include a connected processor and memory; wherein the memory is used to store computer-executable instructions, and when the device is running, the processor can execute the computer-executable instructions stored in the memory to enable the chip to execute the routing and / or routing information configuration methods in the above-mentioned method embodiments.
[0556] Among them, the electronic device, computer storage medium, computer program product or chip provided in this embodiment is used to execute the corresponding method provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding method provided above, and will not be repeated here.
[0557] Through the description of the above implementation methods, technical personnel in the relevant field can understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be distributed and completed by different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0558] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of modules or units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0559] Units described as separate components may or may not be physically separate, and components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place or distributed in multiple places. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0560] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0561] Any content of each embodiment of this application, as well as any content of the same embodiment, can be freely combined. Any combination of the above content is within the scope of this application.
[0562] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a device (which can be a single-chip microcomputer, chip, etc.) or a processor (processor) to execute all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0563] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this application, ordinary technicians in this field can also make many forms without departing from the purpose of this application and the scope of protection of the claims, all of which are within the protection of this application.
[0564] The steps of the method or algorithm described in conjunction with the disclosure of the embodiments of the present application can be implemented in a hardware manner, or can be implemented by a processor executing a software instruction. The software instruction can be composed of corresponding software modules, and the software module can be stored in a random access memory (Random Access Memory, RAM), a flash memory, a read-only memory (Read Only Memory, ROM), an erasable programmable read-only memory (Erasable Programmable ROM, EPROM), an electrically erasable programmable read-only memory (Electrically EPROM, EEPROM), a register, a hard disk, a mobile hard disk, a read-only compact disc (CD-ROM) or any other form of storage medium well known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and can write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC.
[0565] Those skilled in the art will appreciate that in one or more of the above examples, the functions described in the embodiments of the present application can be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any media that facilitates the transmission of computer programs from one place to another. The storage medium can be any available medium that can be accessed by a general-purpose or special-purpose computer.
[0566] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this application, ordinary technicians in this field can also make many forms without departing from the purpose of this application and the scope of protection of the claims, all of which are within the protection of this application.
Claims
1. A transmission method, characterized in that: The first device and the second device are connected via a port, and the method includes: Acquire a message of a first service flow from a receiving buffer; According to the router forwarding table, the message of the first business flow is transmitted through the sending buffer of the first business virtual channel, the first business virtual channel is a virtual channel between the first device and the second device, the router forwarding table is used to indicate the message forwarding rules based on the business virtual channel, and the business virtual channel is used to support bidirectional transmission of business flows between two devices.
2. The method according to claim 1, characterized in that The message of the first service flow includes a first channel identifier, and the first channel identifier indicates the first service virtual channel.
3. The method according to claim 1 or 2, characterized in that: The forward bandwidth of the first service virtual channel is inconsistent with the reverse bandwidth of the first service virtual channel; The forward direction is the direction from the first device to the second device, and the reverse direction is the direction from the second device to the first device.
4. The method according to claim 3, characterized in that The forward bandwidth is 0.
5. The method according to claim 3, characterized in that: The reverse bandwidth is 0.
6. The method according to any one of claims 1 to 5, characterized in that The first device and the second device are connected via a port, including: The first device and the second device are connected via a unified multimedia interconnection port.
7. The method according to any one of claims 1 to 6, characterized in that The first device includes a management adapter, a plurality of service adapters and a plurality of ports, each port includes a management virtual channel and a plurality of service virtual channels, and the management adapter and the plurality of service adapters constitute a virtual port.
8. The method according to any one of claims 1 to 7, characterized in that The router forwarding table includes inflow information and outflow information, wherein the inflow information is used to indicate a port identifier and a channel identifier corresponding to the inflow, and the outflow information is used to indicate a target port identifier and a target channel identifier corresponding to the outflow.
9. The method according to any one of claims 1 to 8, characterized in that Acquiring a message of the first service flow from the receiving buffer includes: The message of the first service flow is obtained from the receiving buffer of the first service adapter in the first device, where the message of the first service flow is obtained after the signal or data to be transmitted is converted.
10. The method according to any one of claims 1 to 8, characterized in that Acquiring a message of the first service flow from the receiving buffer includes: The message of the first service flow is obtained from the receiving buffer of the second service virtual channel, and the receiving port is prohibited from forwarding the message of the service virtual channel of the receiving port to another service virtual channel of the receiving port.
11. The method according to claim 9 or 10, characterized in that: The method further comprises: According to the router forwarding table, the message of the first service flow is forwarded to the sending buffer of the second service adapter in the first device.
12. The method according to claim 11, characterized in that The first service adapter and the second service adapter in the first device form a virtual path.
13. The method according to any one of claims 1 to 12, characterized in that The router forwarding table indicates a plurality of outgoing flow information, and the method further comprises: The message of the first service flow is transmitted through the sending buffer of the third service virtual channel indicated by the router forwarding table. When the message of the same service flow is forwarded to another port, the port has at most one service virtual channel.
14. The method according to any one of claims 1 to 13, characterized in that The virtual path between two adapters includes a plurality of cascaded virtual channels, and the virtual path supports bidirectional transmission.
15. The method according to claim 14, characterized in that The router forwarding table further includes a reception count, where the reception count is used to indicate the number of virtual paths using the service virtual channel.
16. The method according to any one of claims 1 to 15, characterized in that The method further comprises: According to the router forwarding table, the message of the second service flow is transmitted through the sending buffer of the fourth service virtual channel, and the first service virtual channel and the fourth service virtual channel belong to the same port.
17. The method according to any one of claims 1 to 16, characterized in that The method further comprises: Acquire a first management message from the management virtual channel, and forward the first management message to a management adapter in the first device.
18. The method according to any one of claims 1 to 17, characterized in that The method further comprises: Acquire a second management message from the management adapter of the first device, and forward the second management message to a management virtual channel in a port specified by the management adapter in the first device.
19. A transmission network, characterized in that: The transmission network includes a first device, a second device and a routing device, and the first device, the second device and the routing device are connected through a port; The first device is used to transmit a message of a first service flow to the second device through the routing device, where the message of the first service flow is obtained after converting the first data; The first device is further used to transmit a message of a second service flow to the second device through the routing device, where the message of the second service flow is obtained after conversion of the second data; The second device is used to transmit a message of a third service flow to the first device through the routing device, where the message of the third service flow is obtained after conversion of the third data.
20. The transmission network according to claim 19, characterized in that The first device is further configured to obtain the message of the first service flow from a receiving buffer of a first service adapter in the first device; The first device is further configured to obtain the message of the second service flow from a receiving buffer of a second service adapter in the first device.
21. The transmission network according to claim 20, characterized in that The first device is specifically used to transmit the message of the first service flow to the routing device through the sending buffer of the first service virtual channel according to the first router forwarding table, the first service virtual channel is a virtual channel between the first device and the routing device, the router forwarding table is used to indicate the message forwarding rule based on the service virtual channel, and the service virtual channel is used to support the bidirectional transmission of the service flow between the two devices; The routing device is used to receive the message of the first service flow through the receiving buffer of the first service virtual channel; The routing device is further used to transmit the message of the first service flow to the second device through the sending buffer of the second service virtual channel according to the second router forwarding table, and the second service virtual channel is a virtual channel between the routing device and the second device; The second device is specifically configured to receive the message of the first service flow through the receiving buffer of the second service virtual channel; The second device is further configured to forward the message of the first service flow to the receiving buffer of the service adapter in the second device according to the third router forwarding table, and the service adapter restores the signal or data obtained by the first service flow.
22. The transmission network according to claim 20 or 21, characterized in that The first device is specifically configured to transmit the message of the second service flow to the routing device through the sending buffer of the third service virtual channel according to the first router forwarding table, and the third service virtual channel is a virtual channel between the first device and the routing device; The routing device is further configured to receive the message of the second service flow through the receiving buffer of the third service virtual channel; The routing device is further configured to transmit the message of the second service flow to the second device through the sending buffer of the fourth service virtual channel according to the forwarding table of the second router, and the fourth service virtual channel is a virtual channel between the routing device and the second device; The second device is specifically configured to receive a message of a second service flow through a receiving buffer of a fourth service virtual channel; The second device is further configured to forward the message of the second service flow to a receiving buffer of the service adapter in the second device according to the third router forwarding table.
23. The transmission network according to any one of claims 19 to 22, characterized in that: The second device is further configured to obtain the message of the third service flow from the receiving buffer of the third service adapter in the second device.
24. The transmission network according to claim 23, characterized in that The second device is specifically configured to transmit the message of the third service flow to the routing device through the sending buffer of the fifth service virtual channel according to the third router forwarding table, and the fifth service virtual channel is a virtual channel between the second device and the routing device; The routing device is further configured to receive the message of the third service flow through the receiving buffer of the fifth service virtual channel; The routing device is further configured to transmit the message of the third service flow to the first device through the sending buffer of the sixth service virtual channel according to the forwarding table of the second router, and the sixth service virtual channel is a virtual channel between the routing device and the first device; The first device is specifically configured to receive the message of the third service flow through the receiving buffer of the sixth service virtual channel; The first device is further configured to forward the message of the third service flow to a receiving buffer of the service adapter in the first device according to the first router forwarding table.
25. A transmission network, characterized in that: The transmission network includes a first device, a second device and a third device, and the first device, the second device and the third device are connected through a port; The first device is used to obtain a message of a first service flow from a receiving buffer of a service adapter of the first device, where the message of the first service flow is obtained after conversion of the first data; The first device is further used to transmit the message of the first service flow to the second device through the sending buffer of the first service virtual channel according to the first router forwarding table, the router forwarding table is used to indicate the message forwarding rule based on the service virtual channel, and the service virtual channel is used to support the bidirectional transmission of the service flow between the two devices; The second device is used to receive the message of the first service flow through the receiving buffer of the first service virtual channel; The second device is further configured to transmit the message of the first service flow to the third device through the sending buffer of the second service virtual channel according to the second router forwarding table; The second device is further used to forward the message of the first service flow to the receiving buffer of the service adapter in the second device according to the forwarding table of the second router, and the service adapter restores the signal or data obtained by the first service flow; The third device is used to receive the message of the first service flow through the receiving buffer of the second service virtual channel; The third device is further configured to forward the message of the first service flow to the receiving buffer of the service adapter in the third device according to the third router forwarding table, and the service adapter restores the signal or data obtained by the first service flow.
26. A transmission network, characterized in that: The transmission network includes a first device, a second device, a third device and multiple routing devices, and the first device, the second device, the third device and the multiple routing devices are connected through ports; the first device is used to execute the method steps described in any one of claims 1 to claim 18.
27. The transmission network according to claim 26, characterized in that The network topology of the transmission network is a star topology or a mesh topology.
28. A transmission device, characterized in that: include: A receiving module, used for obtaining a message of a first service flow from a receiving buffer; A sending module, used to transmit a message of a first business flow through a sending buffer of a first business virtual channel according to a router forwarding table, wherein the first business virtual channel is a virtual channel between the first device and the second device, and the router forwarding table is used to indicate a message forwarding rule based on the business virtual channel, and the business virtual channel is used to support bidirectional transmission of business flows between two devices.
29. An electronic device, characterized in that: The electronic device includes a memory and a processor, wherein the memory is used to store a set of computer instructions; when the processor executes the set of computer instructions, the processor performs the operating steps of the method described in any one of claims 1-18.
30. A chip, characterized in that: It comprises one or more interface circuits and one or more processors; the interface circuit is used to receive a signal from a memory of an electronic device and send the signal to the processor, the signal comprising a computer instruction stored in the memory; when the processor executes the computer instruction, the processor executes the operating steps of the method described in any one of claims 1 to 18.
31. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program runs on a computer or a processor, the computer or the processor executes the operating steps of the method according to any one of claims 1 to 18.
32. A routing method, characterized in that: The method comprises: Reading a message from a first buffer area, wherein the first buffer area corresponds to a source port for receiving the message; Determine multiple target outbound flow information based on routing information, the first port identifier of the source port, and the first shuttle identifier of the source shuttle obtained from the message header of the message; the routing information includes multiple outbound flow information groups, one outbound flow information group includes multiple outbound flow information, and one outbound flow information group corresponds to one shuttle of one port; Based on the multiple target outflow information, multiple target ports and multiple target shuttles are determined, the multiple target ports and the multiple target shuttles correspond to each other one by one, and one target outflow information is used to determine one target port and one target shuttle; The message is added to a plurality of second buffer areas, and one second buffer area corresponds to one target port.
33. The method according to claim 32, characterized in that The routing information includes first routing information and second routing information, the first routing information includes the first outflow information of the outflow information group, and the second routing information includes other outflow information of the outflow information group; the multiple target outflow information includes the first outflow information corresponding to the message and other outflow information corresponding to the message; The determining of multiple target outflow information based on the routing information, the first port identifier of the source port, and the first shuttle identifier of the source shuttle obtained from the message header of the message includes: Based on the first shuttle identifier and the first port identifier, reading first outflow information corresponding to the message from the first routing information; Based on the first outbound flow information corresponding to the message, other outbound flow information corresponding to the message is read from the second routing information.
34. The method according to claim 33, characterized in that The first outgoing flow information corresponding to the message includes first identification information; and the reading other outgoing flow information corresponding to the message from the second routing information based on the first outgoing flow information corresponding to the message includes: When it is determined based on the first identification information that other outbound flow information corresponding to the message exists in the second routing information, the other outbound flow information corresponding to the message is read from the second routing information based on the first identification information.
35. The method according to claim 34, characterized in that The reading other outbound flow information corresponding to the message from the second routing information based on the first identification information includes: Based on the first identification information, read the i-th outgoing flow information corresponding to the message from the second routing information, the i-th outgoing flow information including the second identification information, wherein the initial value of i is 2; Based on the second identification information included in the i-th outbound flow information, determining whether the i+1-th outbound flow information corresponding to the message exists in the second routing information; When it is determined that the second routing information contains the i+1th outflow information corresponding to the message, based on the second identification information included in the i-th outflow information, the i+1th outflow information corresponding to the message is read from the second routing information based on the second identification information included in the i-th outflow information, where the i+1th outflow information corresponding to the message includes the second identification information; i is incremented by 1, and the process returns to execute the process based on the second identification information included in the i-th outgoing flow information, to determine whether the second routing information contains the i+1-th outgoing flow information corresponding to the message.
36. The method according to any one of claims 32 to 35, characterized in that The adding the message to a plurality of second buffer areas comprises: Copying the message to a second buffer area corresponding to the first target port, and forwarding the message to a second buffer area corresponding to the second target port; The second target port is the last target port, and the first target port is a port among the multiple target ports except the second target port.
37. The method according to any one of claims 32 to 36, characterized in that The target outflow information includes a second port identifier and a second shuttle identifier, and the determining of multiple target ports and multiple target shuttles based on the multiple target outflow information includes: Determine the plurality of target ports based on the plurality of second port identifiers included in the plurality of target outflow information; Based on a second shuttle identifier included in a target outflow information, a target shuttle is determined from a plurality of shuttles of a target port.
38. The method according to claim 34 or 35, characterized in that When the first identification information is preset information, determining that other outbound flow information corresponding to the message does not exist in the second routing information; When the first identification information is address information, it is determined that other outbound flow information corresponding to the message exists in the second routing information.
39. The method according to claim 34 or 35, characterized in that The method further comprises: When it is determined based on the first identification information that no other outbound flow information corresponding to the message exists in the second routing information, a first target port and a first target shuttle are determined based on the first outbound flow information corresponding to the message, and the first target port corresponds to the first target shuttle; The message is forwarded to a second buffer area corresponding to the first target port.
40. The method according to any one of claims 32 to 39, characterized in that The message is a message of multimedia data.
41. A method for configuring routing information, characterized in that: The method comprises: determining an inlet port and a plurality of outlet ports corresponding to the inlet port; For the j-th outflow port among the multiple outflow ports: Based on the port identifier of the j-th outflow port, a first preset field of the j-th outflow information in the outflow information group is configured; and based on the shuttle identifier of the outflow shuttle of the j-th outflow port, a second preset field of the j-th outflow information is configured; wherein the outflow information group corresponds to the inflow shuttle of the inflow port; When the j-th outflow port is not the last outflow port, configuring the third preset field of the j-th outflow information based on the address information of the j+1-th outflow information in the outflow information group; When the j-th outbound port is the last outbound port, the third preset field of the j-th outbound information is configured using preset information.
42. A routing device, characterized in that: The device comprises: A message reading module, used for reading a message from a first buffer area, wherein the first buffer area corresponds to a source port for receiving the message; a routing module, configured to determine a plurality of target outbound flow information based on routing information, a first port identifier of the source port, and a first shuttle identifier of the source shuttle obtained from a message header of the message; the routing information includes a plurality of outbound flow information groups, one outbound flow information group includes a plurality of outbound flow information, and one outbound flow information group corresponds to one shuttle of one port; A port and shuttle determination module, used to determine a plurality of target ports and a plurality of target shuttles based on the plurality of target outflow information, wherein the plurality of target ports and the plurality of target shuttles correspond to each other one by one, and one target outflow information is used to determine one target port and one target shuttle; The message adding module is used to add the message to a plurality of second buffer areas, and one second buffer area corresponds to one target port.
43. A routing information configuration device, characterized in that: The device comprises: A port determination module, used to determine an inflow port and a plurality of outflow ports corresponding to the inflow port; A configuration module, for: for the jth outflow port among the multiple outflow ports: based on the port identifier of the jth outflow port, configure the first preset field of the jth outflow information in the outflow information group; and based on the shuttle identifier of the outflow shuttle of the jth outflow port, configure the second preset field of the jth outflow information; wherein the outflow information group corresponds to the inflow shuttle of the inflow port; when the jth outflow port is not the last outflow port, based on the address information of the j+1th outflow information in the outflow information group, configure the third preset field of the jth outflow information; when the jth outflow port is the last outflow port, use the preset information to configure the third preset field of the jth outflow information.
44. An electronic device, characterized in that: include: a memory and a processor, the memory being coupled to the processor; The memory stores program instructions, and when the program instructions are executed by the processor, the electronic device executes the routing method according to any one of claims 1 to 9.
45. [Corrected 30.11.2023 in accordance with Rule 91] An electronic device, characterized in that, include: a memory and a processor, the memory being coupled to the processor; The memory stores program instructions, and when the program instructions are executed by the processor, the electronic device executes the routing information configuration method described in claim 41.
46. A chip, characterized in that: It comprises one or more interface circuits and one or more processors; the interface circuit is used to receive a signal from a memory of an electronic device and send the signal to the processor, wherein the signal includes a computer instruction stored in the memory; when the processor executes the computer instruction, the electronic device executes the routing method described in any one of claims 1 to 9.
47. [Corrected 30.11.2023 in accordance with Rule 91] A chip, characterized in that, It includes one or more interface circuits and one or more processors; the interface circuit is used to receive a signal from a memory of an electronic device and send the signal to the processor, the signal including a computer instruction stored in the memory; when the processor executes the computer instruction, the electronic device executes the routing information configuration method described in claim 41.
48. A computer storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program runs on a computer or a processor, the computer or the processor executes the method according to any one of claims 1 to 10.
49. A computer program product, characterized in that The computer program product comprises a software program, and when the software program is executed by a computer or a processor, the steps of the method according to any one of claims 1 to 10 are performed.