WO2018076636A1 - Interlaken package cutting and scheduling method and apparatus, and computer storage medium - Google Patents

Interlaken package cutting and scheduling method and apparatus, and computer storage medium Download PDF

Info

Publication number
WO2018076636A1
WO2018076636A1 PCT/CN2017/081746 CN2017081746W WO2018076636A1 WO 2018076636 A1 WO2018076636 A1 WO 2018076636A1 CN 2017081746 W CN2017081746 W CN 2017081746W WO 2018076636 A1 WO2018076636 A1 WO 2018076636A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
data
port
scheduled
scheduling
Prior art date
Application number
PCT/CN2017/081746
Other languages
French (fr)
Chinese (zh)
Inventor
李龙龙
林海都
陈宗正
魏方旭
Original Assignee
深圳市中兴微电子技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市中兴微电子技术有限公司 filed Critical 深圳市中兴微电子技术有限公司
Publication of WO2018076636A1 publication Critical patent/WO2018076636A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Definitions

  • the present invention relates to the field of integrated circuits for Interlaken scheduling, and in particular, to an Interlaken packet and scheduling method, apparatus, and computer storage medium.
  • an embodiment of the present invention is to provide an Interlaken packet and scheduling method, apparatus, and computer storage medium, which are intended to multiplex and reuse an existing Interlaken interface into multiple Interlaken interfaces, and send at least one upstream port.
  • the data packets are respectively scheduled to the Interlaken interface corresponding to each upstream port, thereby increasing the rate of data transmission.
  • an embodiment of the present invention provides an Interlaken packet cutting and scheduling method, where the method includes:
  • Interlaken interface group includes at least two Interlaken interfaces
  • the slice data corresponding to each of the upstream ports is sent by the Interlaken interface corresponding to each of the upstream ports.
  • the data packet sent by the upstream port is received, and the data packet corresponding to each upstream port is separately packetized to obtain the slice data corresponding to each upstream port, which specifically includes:
  • the upstream port Receiving, by the upstream, at least one port, the data packet sent by the upstream port, and acquiring the packet description information of the data packet corresponding to each upstream port, where the packet description information includes a packet header, a trailer, and a packet length information;
  • the packet cutting information includes a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode;
  • the preset polling schedule is composed of a port identifier of the upstream port and a scheduling indicator value corresponding to the port identifier, and is used to obtain a port identifier of the current to-be-scheduled port.
  • the obtaining, by the preset polling schedule, the port identifier of the port to be scheduled specifically includes:
  • a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
  • the packet to be scheduled corresponding to the current to-be-scheduled port is packet-cut according to the preset packet-cut information and the packet description information of the to-be-scheduled packet, and the current to-be-obtained is obtained.
  • the slice data corresponding to the scheduling port includes:
  • the parameter value of the normal scheduling mode in the packet-cutting information is a valid value
  • the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and
  • the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
  • the parameter value of the enhanced scheduling mode in the packet-cutting information is a valid value
  • the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and
  • the length of the packet data remaining after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin
  • the remaining packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, the length of the second slice data corresponding to the remaining packet data is equal to the remaining packet data length minus the length of the first slice data.
  • the scheduling of the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports includes:
  • the scheduling according to the preset data scheduling mode information, the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports, specifically:
  • the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
  • an embodiment of the present invention provides an Interlaken packet cutting and scheduling apparatus, where the apparatus includes: a data packet cutting module, a data packet scheduling module, and an Interlaken interface module;
  • the packet-cutting module is configured to receive a data packet sent by at least one port upstream, and perform packet-cut processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port;
  • the data packet scheduling module is configured to obtain an interface corresponding to each upstream port from a preset Interlaken interface group.
  • the packet scheduling module is further configured to schedule the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
  • the Interlaken interface module is configured to send the slice data corresponding to each of the upstream ports.
  • the data packet cutting module includes: a data packet processing submodule, Interlaken packet control submodule and packet packet submodule;
  • the data packet processing submodule is configured to receive a data packet sent by at least one port upstream, and obtain packet description information of each data packet corresponding to each upstream port;
  • the Interlaken packet control sub-module is configured to obtain, according to a preset polling schedule, a port identifier of a port to be scheduled, and obtain a port identifier of the port to be scheduled according to the port identifier of the current to-be-scheduled port. Packet to be scheduled and packet description information of the to-be-scheduled packet;
  • the packet-cutting packet sub-module is configured to perform packet-cutting processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cutting information and the packet description information of the to-be-scheduled packet, and obtain the The slice data corresponding to the current to-be-scheduled port; wherein the packet-cut information includes a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode;
  • the Interlaken packet control submodule is further configured to update information of the polling schedule.
  • the Interlaken packet control submodule is specifically configured as follows:
  • a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
  • the data packet packetizing submodule is specifically configured as follows:
  • the parameter value of the normal scheduling mode in the packet-cutting information is a valid value
  • the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and
  • the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
  • the parameter value of Burstmax in the information is the unit length of the slice data, and the data packet to be scheduled is uniformly cut, and when the length of the remaining packet data after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin, the remaining The packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, and the length of the second slice data corresponding to the remaining packet data is equal to the remaining The packet data length is subtracted from the length of the first slice data.
  • the data packet scheduling module is specifically configured as:
  • the data packet scheduling module is specifically configured as:
  • the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
  • the apparatus further includes: a data packet buffer module, a data packet information cache module, and an Interlaken scheduling information management module;
  • the data packet buffering module is configured to store a data packet sent by at least one port upstream
  • the packet information cache module is configured to store package description information of a data packet corresponding to each upstream port;
  • the Interlaken scheduling information management module is configured to store preset packet cutting information and data scheduling mode information.
  • the embodiment of the invention further provides a computer storage medium, wherein the computer storage medium stores computer executable instructions, and the computer executable instructions are used to execute the Interlaken packet cutting and scheduling method according to the embodiment of the invention.
  • the Interlaken packet-cutting and scheduling method, apparatus, and computer storage medium use a plurality of small-small-area Interlaken interfaces to transmit data packets sent by at least one upstream port. This significantly increases the rate of data transfer; in addition, because each Interlaken interface is designed in a similar manner, the design cycle of the integrated circuit is greatly reduced.
  • FIG. 1 is a schematic diagram of a method for Interlaken packet cutting and scheduling according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a method of packet cutting according to an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a method for obtaining a port identifier of a current port to be scheduled according to an embodiment of the present disclosure
  • FIG. 4 is a schematic structural diagram of a polling schedule according to an embodiment of the present disclosure.
  • FIG. 5 is a schematic diagram of another method for obtaining a port identifier of a current port to be scheduled according to an embodiment of the present disclosure
  • FIG. 6 is a schematic diagram of a specific method for performing packet cutting processing on a data packet to be scheduled according to an embodiment of the present disclosure
  • FIG. 7 is a schematic diagram of a packet cutting result according to an embodiment of the present invention.
  • FIG. 8 is a schematic diagram of another packet cutting result according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of an Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of another Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention.
  • FIG. 11 is a schematic structural diagram of another Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention. schematic diagram;
  • FIG. 12 is a schematic diagram of a workflow of an Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention.
  • FIG. 1 the figure shows an Interlaken packet cutting and scheduling method according to an embodiment of the present invention.
  • the method may include:
  • S110 Receive a data packet sent by at least one port in the upstream, and perform packet cutting processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port.
  • the slice data of the upstream port may be scheduled to the appropriate Interlaken interface according to the ratio of the bandwidth of the upstream port to the bit width of the Interlaken sub-interface. Transfer to avoid congestion in the data transmission process.
  • the bandwidth of the upstream port currently being scheduled is 100 Gbps
  • the bit width of an Interlaken interface in the Interlaken interface group is also 100 Gbps.
  • the slice data of the upstream port with the bandwidth of 100 Gbps can be scheduled to the bit width. Transfer over the 100Gbps Interlaken interface.
  • S140 Send, by using an Interlaken interface corresponding to each of the upstream ports, slice data corresponding to each of the upstream ports.
  • S210 Receive a data packet sent by at least one port in the upstream, and obtain packet description information of a data packet corresponding to each upstream port.
  • the packet description information of the data packet may include: header information, trailer information, packet length information, and the like.
  • the preset packet cutting information may include: a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode.
  • the preset polling schedule is composed of a port identifier of an upstream port and a scheduling indicator value corresponding to the port identifier, and is used to obtain a port identifier of a current port to be scheduled.
  • all port identifiers in the polling schedule correspond to all ports configured in the port table configured by the CPU.
  • the port identifier of the current port to be scheduled is obtained according to the preset polling schedule, as shown in FIG. 3, which may specifically include:
  • the preset first polling rule may be a top-down order or a bottom-up order, and the purpose is to obtain a row of scheduling indication sequence.
  • the preset second polling rules may be in a left-to-right order or a right-to-left order, and the purpose is to obtain a port identifier of a current port to be scheduled.
  • the figure shows a structure of the polling schedule.
  • the port identifier included in cfg_rd_port_n corresponds to all ports included in the port table configured by the CPU; cfg_rd_order_1 to cfg_rd_order_n correspond to whether the port packet corresponding to the port identifier in cfg_rd_port_1 to cfg_rd_port_n is currently scheduled.
  • the indication value in the corresponding cfg_rd_order_1 at the location of P 1 2 in FIG. 4 is 1, indicating the port identifier in the corresponding cfg_rd_port_1 at the location.
  • the corresponding port packet is currently schedulable. Conversely, when the indication value in the corresponding cfg_rd_order_1 at the position of P 1 2 is 0, the port identifier is indicated. The corresponding port packet is currently not schedulable.
  • the port identifier of the current port to be scheduled can be obtained by polling in two directions, as shown in FIG. 5, which may specifically include:
  • the port identifier of the to-be-scheduled port is obtained by polling in a left-to-right order.
  • the direction of the polling may be arbitrary, and the purpose thereof is mainly to enable the data of all the ports to be uniformly scheduled and output.
  • the packet to be scheduled corresponding to the current to-be-scheduled port is packet-cut according to the preset packet-cut information and the packet description information of the to-be-scheduled packet, and the current packet is obtained.
  • the slice data corresponding to the port to be scheduled may specifically include:
  • the parameter value of the common type scheduling mode in the packet cutting information is a valid value
  • the parameter value of the Burstmax in the packet information is a unit length of the slice data, and the data packet to be scheduled is uniformly cut, and When the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
  • the parameter value of the normal type or enhanced scheduling mode is used to indicate that the data packet to be scheduled is sliced according to the cutting method in which scheduling mode.
  • the length of the to-be-scheduled data packet that needs to be packet-cut processing is 520 bytes
  • Burstmax 256 bytes in the packet-cut information
  • Burstmin 16 bytes, at this time, in the packet-cut information
  • the parameter value of the normal scheduling mode is a valid value (for example, if the parameter value is equal to 0)
  • the packet cutting result of the data packet is as shown in FIG. 7, that is, the packet cutting result of the data packet is: the first slice data length is 256.
  • the second slice data length is 256 bytes
  • the third slice data length is 8 bytes; when the parameter value of the enhanced scheduling mode in the packet change information is a valid value (for example, the parameter value is equal to 1),
  • the packet cutting result of the data packet is as shown in FIG. 8, that is, the packet cutting result of the data packet is: the first slice data length is 256 bytes, and the second slice data length is 240 bytes (ie, Burstmax-Burstmin).
  • the third slice data length is 24 bytes (ie 520-256-240).
  • the slice data corresponding to each of the upstream ports is scheduled to the Interlaken interface corresponding to each of the upstream ports, and preferably, each of the upstream ports may be corresponding according to preset data scheduling mode information.
  • the slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports, where the data scheduling mode information is used to indicate whether the slice data corresponding to each upstream port is scheduled in the whole packet mode or the interleaving mode.
  • Interlaken interface corresponding to each upstream port is scheduled to the Interlaken interface corresponding to each upstream port.
  • the data scheduling mode information indicates the whole packet mode
  • all the slice data corresponding to the entire packet data of each upstream port is spliced into one piece of data, and the spliced whole piece of data is spliced.
  • the embodiment of the present invention provides an Interlaken packet-cutting and scheduling method, which can separately receive the received data packets sent by at least one port of the upstream port to the Interlaken interface corresponding to each upstream port, and the method simultaneously utilizes multiple small bits.
  • the wide-capacity Interlaken interface separately transmits the data packets sent by at least one upstream port, thereby significantly increasing the data transmission rate.
  • each Interlaken interface is designed in a similar manner, the design of the integrated circuit is greatly shortened. cycle.
  • the apparatus may include: a packet cutting module 110, a packet scheduling module 120 and an Interlaken interface module 130; wherein
  • the packet packet cutting module 110 is configured to receive a data packet sent by at least one port upstream, and perform packet cutting processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port.
  • the packet scheduling module 120 is configured to obtain an interface corresponding to each upstream port from a preset Interlaken interface group.
  • the packet scheduling module 120 is further configured to schedule the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
  • the Interlaken interface module 130 is configured to send the slice data corresponding to each of the upstream ports.
  • the data packet cutting module 110 may specifically include: a data packet processing sub-module 1101, an Interlaken packet control sub-module 1102, and a packet-cutting packet sub-module 1103;
  • the data packet processing sub-module 1101 is configured to receive data packets sent by at least one upstream port, and obtain packet description information of each data packet corresponding to each upstream port.
  • the Interlaken packet control sub-module 1102 is configured to obtain a port identifier of a port to be scheduled according to a preset polling schedule, and obtain a port identifier of the port to be scheduled according to the port identifier of the current to-be-scheduled port. Corresponding data packet to be scheduled and packet description information of the to-be-scheduled data packet;
  • the packet-cutting packet sub-module 1103 is configured to perform packet-cutting processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cutting information and the packet description information of the to-be-scheduled data packet, and acquire The slice data corresponding to the current to-be-scheduled port; wherein the packet-cut information includes a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode;
  • the Interlaken packet control sub-module 1102 is further configured to update the polling schedule information.
  • the Interlaken packet control submodule 1102 is specifically configured to:
  • a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
  • the data packet cutout submodule 1103 is specifically configured to:
  • the parameter value of the normal scheduling mode in the packet-cutting information is a valid value
  • the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and
  • the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
  • the parameter value of the enhanced scheduling mode in the packet-cutting information is a valid value
  • the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and
  • the length of the packet data remaining after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin
  • the remaining packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, the length of the second slice data corresponding to the remaining packet data is equal to the remaining packet data length minus the length of the first slice data.
  • the data packet scheduling module 120 is specifically configured to:
  • the data packet scheduling module 120 is specifically configured to:
  • the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
  • the apparatus 10 may further include: a data packet buffering module 140, a data packet information caching module 150, and an Interlaken scheduling information management module 160;
  • the data packet buffering module 140 is configured to store a data packet sent by at least one port upstream;
  • the data packets sent by each upstream port are generally stored in the data packet buffer module in the form of a linked list by port identification.
  • the packet information cache module 150 is configured to store package description information of a data packet corresponding to each upstream port;
  • the Interlaken scheduling information management module 160 is configured to store preset packet cutting information and data scheduling mode information.
  • the packet packet cutting module 110, the packet scheduling module 120, the Interlaken interface module 130, the packet buffer module 140, the packet information buffer module 150, and the Interlaken scheduling information management module 160 may be packetized and scheduled by Interlaken.
  • a central processing unit CPU, Central Processing Unit
  • DSP digital signal processor
  • MCU micro control unit
  • MPU Microprocessor Unit
  • FPGA Field-Programmable Gate Array
  • this embodiment describes a workflow of the foregoing device 10 in conjunction with FIG. 12, and the workflow may specifically include:
  • the data packet processing submodule 1101 receives a data packet sent by at least one port upstream, and performs packet header processing and packet tail pairing processing and packet length calculation on the currently received data packet.
  • the data packet processing sub-module 1101 writes the currently received data packet to the linked list according to the port identifier corresponding to the currently received data packet; wherein the linked list is stored in the data packet buffer module 140;
  • the data packet processing submodule 1101 When the tail data of the currently received data packet is written into the linked list, the data packet processing submodule 1101 writes the header, the end of the packet, and the packet length information of the currently received data packet according to the port identifier. Into the packet information cache module 150;
  • the S713, the Interlaken packet control sub-module 1102 obtains the port identifier of the current to-be-scheduled port according to the preset polling schedule, and obtains the current to-be-waited from the packet information cache module 150 according to the port identifier of the current to-be-scheduled port.
  • the Interlaken packet control sub-module 1102 generates a set of read list port identifiers and read list enable signals aligned with the current data packet header data to be scheduled according to the obtained packet header, packet tail, and packet length information.
  • the Interlaken packet control sub-module 1102 continuously reads the data of the current to-be-scheduled data packet from the linked list, and reads the data according to the generated read list port identifier and the read list enable signal.
  • the data of the current to-be-scheduled data packet is sent to the packet-cutting packet sub-module 1103;
  • the Interlaken packet control sub-module 1102 obtains packet-cut information from the Interlaken scheduling information management module 160.
  • the packet cutting information includes: Parameter values for Burstmax, Burstmin, and normal or enhanced scheduling modes;
  • the Interlaken packet control sub-module 1102 generates an aligned packet control signal according to the obtained packet-cut information, and sends the packet-cut packet control module 1103;
  • the packet packet-cutting sub-module 1103 performs packet-cutting processing on the current to-be-scheduled data packet according to the aligned packet-cut control signal, and acquires slice data corresponding to the current to-be-scheduled port;
  • the packet packetizing submodule 1103 is different for the packet processing method of the current to-be-scheduled data packet in the normal scheduling mode and the enhanced scheduling mode, and specifically, the packet cutting processing method has been implemented in the foregoing manner.
  • the detailed description is given in the example, and to avoid repetition, it will not be repeated here.
  • the data packet scheduling module 120 schedules the slice data corresponding to the current to-be-scheduled port to the Interlaken interface corresponding to the current to-be-scheduled port.
  • the data packets of the same port must be scheduled to the same Interlaken interface.
  • the data of the current to-be-scheduled port can be scheduled to be appropriate according to the ratio of the bandwidth of the current to-be-scheduled port to the bit width of the Interlaken interface. Interlaken interface.
  • the data packet processing sub-module 1101, the Interlaken packet control sub-module 1102, and the packet-cutting packet sub-module 1103 are sub-modules of the data packet-cutting module 110.
  • the data packet scheduling module 120 may determine that the data scheduling mode information (including the parameter values of the whole packet mode and the interleaving mode) in the Interlaken scheduling information management module 160 is in the form of a whole packet mode.
  • the slice data is scheduled to be dispatched, or the slice data is scheduled to be dispatched in the form of an interleaving pattern.
  • the embodiment of the invention further describes a computer storage medium, wherein the computer storage medium stores computer executable instructions, and the computer executable instructions are used to execute the Interlaken packet cutting and scheduling method described in the foregoing embodiments.
  • embodiments of the present invention can be provided as a method, system, Or a computer program product. Accordingly, the present invention can take the form of a hardware embodiment, a software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
  • the technical solution of the embodiment of the present invention simultaneously utilizes multiple Interlaken interfaces with small bit width and small capacity to separately transmit data packets sent by at least one upstream port, thereby significantly increasing the rate of data transmission;
  • the Interlaken interface is designed in a similar way, thus greatly reducing the design cycle of the integrated circuit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

Disclosed are an Interlaken package cutting and scheduling method and apparatus, and a computer storage medium. The method comprises: receiving a data package sent by at least one upstream port, and respectively performing package cutting processing on a data package corresponding to each upstream port, so as to acquire slice data corresponding to each upstream port; acquiring an interface corresponding to each upstream port from a pre-set Interlaken interface group, wherein the Interlaken interface group includes at least two Interlaken interfaces; scheduling the slice data corresponding to each upstream port to an Interlaken interface corresponding to each upstream port; and sending the slice data corresponding to each upstream port via the Interlaken interface corresponding to each upstream port.

Description

一种Interlaken切包和调度方法、装置及计算机存储介质Interlaken packet cutting and scheduling method, device and computer storage medium
相关申请的交叉引用Cross-reference to related applications
本申请基于申请号为201610933585.1、申请日为2016年10月31日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。The present application is filed on the basis of the Chinese Patent Application No. No. No. No. No. No. No. No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
技术领域Technical field
本发明涉及数据包互连协议(Interlaken)调度的集成电路领域,尤其涉及一种Interlaken切包和调度方法、装置及计算机存储介质。The present invention relates to the field of integrated circuits for Interlaken scheduling, and in particular, to an Interlaken packet and scheduling method, apparatus, and computer storage medium.
背景技术Background technique
随着56千兆比特每秒(Gbps)的串行器/解串器(SERDES,Serializer/Deserializer)的推出,大数据、多端口的数据传输,以及28Gbps的SERDES的广泛应用和Interlaken接口的灵活性和易用性,催生了Interlaken接口在背板中被大量使用。而现有技术中所设计的Interlaken接口受限于数据位宽最大只能每秒钟传输200G至300G比特的数据,从而无法满足400Gbps甚至更高的600Gbps的接口传输。With the introduction of 56 gigabits per second (Gbps) serializer/deserializer (SERDES, Serializer/Deserializer), big data, multi-port data transmission, and wide application of 28Gbps SERDES and flexible Interlaken interface Sex and ease of use have spawned the Interlaken interface being heavily used in the backplane. The Interlaken interface designed in the prior art is limited by the data bit width and can only transmit 200G to 300Gbits of data per second, so that it can not meet the 400Gbps interface transmission of 400Gbps or higher.
发明内容Summary of the invention
为解决上述技术问题,本发明实施例期望提供一种Interlaken切包和调度方法、装置及计算机存储介质,旨在将原有Interlaken接口扩展复用为多个Interlaken接口,并将上游至少一个端口发送的数据包分别调度到每个上游端口对应的Interlaken接口,从而提高数据传输的速率。To solve the above technical problem, an embodiment of the present invention is to provide an Interlaken packet and scheduling method, apparatus, and computer storage medium, which are intended to multiplex and reuse an existing Interlaken interface into multiple Interlaken interfaces, and send at least one upstream port. The data packets are respectively scheduled to the Interlaken interface corresponding to each upstream port, thereby increasing the rate of data transmission.
本发明实施例的技术方案是这样实现的: The technical solution of the embodiment of the present invention is implemented as follows:
第一方面,本发明实施例提供了一种Interlaken切包和调度方法,所述方法包括:In a first aspect, an embodiment of the present invention provides an Interlaken packet cutting and scheduling method, where the method includes:
接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据;Receiving a data packet sent by at least one port of the upstream port, and performing packet cutting processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port;
从预设的Interlaken接口组中获取每个上游端口对应的接口;其中,所述Interlaken接口组包含至少两个Interlaken接口;Acquiring an interface corresponding to each upstream port from a preset Interlaken interface group; where the Interlaken interface group includes at least two Interlaken interfaces;
将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;Scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
通过所述每个上游端口对应的Interlaken接口将所述每个上游端口对应的切片数据进行发送。The slice data corresponding to each of the upstream ports is sent by the Interlaken interface corresponding to each of the upstream ports.
在一实施例中,所述接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据,具体包括:In an embodiment, the data packet sent by the upstream port is received, and the data packet corresponding to each upstream port is separately packetized to obtain the slice data corresponding to each upstream port, which specifically includes:
接收由上游至少一个端口发送的数据包,并分别获取每个上游端口对应的数据包的包描述信息;其中,所述包描述信息包括包头、包尾和包长度信息;Receiving, by the upstream, at least one port, the data packet sent by the upstream port, and acquiring the packet description information of the data packet corresponding to each upstream port, where the packet description information includes a packet header, a trailer, and a packet length information;
根据预设的轮询调度表获取当前待调度端口的端口标识,并根据所述当前待调度端口的端口标识获取所述待调度端口的端口标识所对应的待调度数据包和所述待调度数据包的包描述信息;Obtaining a port identifier of the current to-be-scheduled port according to the preset polling schedule, and acquiring the to-be-scheduled data packet and the to-be-scheduled data corresponding to the port identifier of the to-be-scheduled port according to the port identifier of the current to-be-scheduled port Package description information of the package;
根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据;其中,所述切包信息包括最大突发长度(Burstmax)、最小突发长度(Burstmin)、普通型或增强型调度模式的参数值;And performing packetizing processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cutting information and the packet description information of the to-be-scheduled data packet, and acquiring the slice data corresponding to the current to-be-scheduled port; The packet cutting information includes a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode;
更新所述轮询调度表的信息,并根据更新后的轮询调度表获取下一个待调度端口的端口标识。 Update the information of the polling schedule, and obtain the port identifier of the next port to be scheduled according to the updated polling schedule.
在一实施例中,所述预设的轮询调度表由上游端口的端口标识和所述端口标识对应的调度指示值组成,用于获取当前待调度端口的端口标识。In an embodiment, the preset polling schedule is composed of a port identifier of the upstream port and a scheduling indicator value corresponding to the port identifier, and is used to obtain a port identifier of the current to-be-scheduled port.
在一实施例中,所述根据预设的轮询调度表获取当前待调度端口的端口标识,具体包括:In an embodiment, the obtaining, by the preset polling schedule, the port identifier of the port to be scheduled, specifically includes:
根据预设的第一轮询规则从预设的轮询调度表中获取一行由调度指示值组成的调度指示序列;其中,每行调度指示序列都分别对应了一行端口标识序列;Obtaining, according to a preset first polling rule, a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
根据预设的第二轮询规则从获取的该行调度指示序列中获取当前待调度端口的端口标识。Obtaining the port identifier of the current to-be-scheduled port from the obtained scheduling instruction sequence of the line according to the preset second polling rule.
在一实施例中,所述根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据,具体包括:In an embodiment, the packet to be scheduled corresponding to the current to-be-scheduled port is packet-cut according to the preset packet-cut information and the packet description information of the to-be-scheduled packet, and the current to-be-obtained is obtained. The slice data corresponding to the scheduling port includes:
当所述切包信息中普通型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度小于所述Burstmax的参数值时,将所述剩余的包数据作为一个切片数据;When the parameter value of the normal scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
当所述切包信息中增强型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度大于Burstmax且小于Burstmax+Burstmin时,将所述剩余的包数据切割成两片数据;其中,所述剩余的包数据对应的第一片切片数据的长度等于Burstmax-Burstmin,所述剩余的包数据对应的第二片切片数据的长度等于所述剩余的包数据长度减去所述第一片切片数据的长度。When the parameter value of the enhanced scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin, the remaining packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, the length of the second slice data corresponding to the remaining packet data is equal to the remaining packet data length minus the length of the first slice data.
在一实施例中,所述将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口,包括: In an embodiment, the scheduling of the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports includes:
根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;其中,所述数据调度模式信息用于指示所述每个上游端口对应的切片数据是以整包模式还是以交织模式调度到所述每个上游端口对应的Interlaken接口。Scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports according to the preset data scheduling mode information, where the data scheduling mode information is used to indicate that each of the upstream ports corresponds to The slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports in a full packet mode or an interleaved mode.
在一实施例中,所述根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口,具体包括:In an embodiment, the scheduling, according to the preset data scheduling mode information, the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports, specifically:
当所述数据调度模式信息指示的是整包模式时,将所述每个上游端口的整包数据对应的所有切片数据拼接成一片数据,并将拼接后的整片数据调度到所述每个上游端口对应的Interlaken接口;When the data scheduling mode information indicates the whole packet mode, all the slice data corresponding to the entire packet data of each upstream port is spliced into one piece of data, and the spliced whole piece of data is scheduled to each of the pieces. The Interlaken interface corresponding to the upstream port;
当所述数据调度模式信息指示的是交织模式时,以交织的形式将所述每个上游端口的切片数据一一均匀调度到每个上游端口对应的Interlaken接口。When the data scheduling mode information indicates the interleaving mode, the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
第二方面,本发明实施例提供了一种Interlaken切包和调度装置,所述装置包括:数据包切包模块、数据包调度模块和Interlaken接口模块;其中,In a second aspect, an embodiment of the present invention provides an Interlaken packet cutting and scheduling apparatus, where the apparatus includes: a data packet cutting module, a data packet scheduling module, and an Interlaken interface module;
所述数据包切包模块,配置为接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据;The packet-cutting module is configured to receive a data packet sent by at least one port upstream, and perform packet-cut processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port;
所述数据包调度模块,配置为从预设的Interlaken接口组中获取每个上游端口对应的接口;The data packet scheduling module is configured to obtain an interface corresponding to each upstream port from a preset Interlaken interface group.
所述数据包调度模块,还配置为将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;The packet scheduling module is further configured to schedule the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
所述Interlaken接口模块,配置为将所述每个上游端口对应的切片数据进行发送。The Interlaken interface module is configured to send the slice data corresponding to each of the upstream ports.
在一实施例中,所述数据包切包模块,具体包括:数据包处理子模块、 Interlaken切包控制子模块和数据包切包子模块;其中,In an embodiment, the data packet cutting module includes: a data packet processing submodule, Interlaken packet control submodule and packet packet submodule;
所述数据包处理子模块,配置为接收由上游至少一个端口发送的数据包,并分别获取每个上游端口对应的数据包的包描述信息;The data packet processing submodule is configured to receive a data packet sent by at least one port upstream, and obtain packet description information of each data packet corresponding to each upstream port;
所述Interlaken切包控制子模块,配置为根据预设的轮询调度表获取当前待调度端口的端口标识,并根据所述当前待调度端口的端口标识获取所述待调度端口的端口标识所对应的待调度数据包和所述待调度数据包的包描述信息;The Interlaken packet control sub-module is configured to obtain, according to a preset polling schedule, a port identifier of a port to be scheduled, and obtain a port identifier of the port to be scheduled according to the port identifier of the current to-be-scheduled port. Packet to be scheduled and packet description information of the to-be-scheduled packet;
所述数据包切包子模块,配置为根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据;其中,所述切包信息包括最大突发长度(Burstmax)、最小突发长度(Burstmin)、普通型或增强型调度模式的参数值;The packet-cutting packet sub-module is configured to perform packet-cutting processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cutting information and the packet description information of the to-be-scheduled packet, and obtain the The slice data corresponding to the current to-be-scheduled port; wherein the packet-cut information includes a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode;
所述Interlaken切包控制子模块,还配置为更新所述轮询调度表的信息。The Interlaken packet control submodule is further configured to update information of the polling schedule.
在一实施例中,所述Interlaken切包控制子模块,具体配置为:In an embodiment, the Interlaken packet control submodule is specifically configured as follows:
根据预设的第一轮询规则从预设的轮询调度表中获取一行由调度指示值组成的调度指示序列;其中,每行调度指示序列都分别对应了一行端口标识序列;Obtaining, according to a preset first polling rule, a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
根据预设的第二轮询规则从获取的该行调度指示序列中获取当前待调度端口的端口标识。Obtaining the port identifier of the current to-be-scheduled port from the obtained scheduling instruction sequence of the line according to the preset second polling rule.
在一实施例中,所述数据包切包子模块,具体配置为:In an embodiment, the data packet packetizing submodule is specifically configured as follows:
当所述切包信息中普通型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度小于所述Burstmax的参数值时,将所述剩余的包数据作为一个切片数据;When the parameter value of the normal scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
当所述切包信息中增强型调度模式的参数值为有效值时,以所述切包 信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度大于Burstmax且小于Burstmax+Burstmin时,将所述剩余的包数据切割成两片数据;其中,所述剩余的包数据对应的第一片切片数据的长度等于Burstmax-Burstmin,所述剩余的包数据对应的第二片切片数据的长度等于所述剩余的包数据长度减去所述第一片切片数据的长度。When the parameter value of the enhanced scheduling mode in the packet cutting information is a valid value, The parameter value of Burstmax in the information is the unit length of the slice data, and the data packet to be scheduled is uniformly cut, and when the length of the remaining packet data after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin, the remaining The packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, and the length of the second slice data corresponding to the remaining packet data is equal to the remaining The packet data length is subtracted from the length of the first slice data.
在一实施例中,所述数据包调度模块,具体配置为:In an embodiment, the data packet scheduling module is specifically configured as:
根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;其中,所述数据调度模式信息用于指示所述每个上游端口对应的切片数据是以整包模式还是以交织模式调度到所述每个上游端口对应的Interlaken接口。Scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports according to the preset data scheduling mode information, where the data scheduling mode information is used to indicate that each of the upstream ports corresponds to The slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports in a full packet mode or an interleaved mode.
在一实施例中,所述数据包调度模块,具体配置为:In an embodiment, the data packet scheduling module is specifically configured as:
当所述数据调度模式信息指示的是整包模式时,将所述每个上游端口的整包数据对应的所有切片数据拼接成一片数据,并将拼接后的整片数据调度到所述每个上游端口对应的Interlaken接口;When the data scheduling mode information indicates the whole packet mode, all the slice data corresponding to the entire packet data of each upstream port is spliced into one piece of data, and the spliced whole piece of data is scheduled to each of the pieces. The Interlaken interface corresponding to the upstream port;
当所述数据调度模式信息指示的是交织模式时,以交织的形式将所述每个上游端口的切片数据一一均匀调度到每个上游端口对应的Interlaken接口。When the data scheduling mode information indicates the interleaving mode, the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
在一实施例中,所述装置还包括:数据包缓存模块、数据包信息缓存模块和Interlaken调度信息管理模块;其中,In an embodiment, the apparatus further includes: a data packet buffer module, a data packet information cache module, and an Interlaken scheduling information management module;
所述数据包缓存模块,配置为存储由上游至少一个端口发送的数据包;The data packet buffering module is configured to store a data packet sent by at least one port upstream;
所述数据包信息缓存模块,配置为存储每个上游端口对应的数据包的包描述信息;The packet information cache module is configured to store package description information of a data packet corresponding to each upstream port;
所述Interlaken调度信息管理模块,配置为存储预设的切包信息和数据调度模式信息。 The Interlaken scheduling information management module is configured to store preset packet cutting information and data scheduling mode information.
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行本发明实施例所述的Interlaken切包和调度方法。The embodiment of the invention further provides a computer storage medium, wherein the computer storage medium stores computer executable instructions, and the computer executable instructions are used to execute the Interlaken packet cutting and scheduling method according to the embodiment of the invention.
本发明实施例提供的一种Interlaken切包和调度方法、装置及计算机存储介质,由于同时利用了多个小位宽小容量的Interlaken接口对接收的上游至少一个端口发送的数据包分别进行传输,从而明显提高了数据传输的速率;另外,由于每个Interlaken接口的设计方法类似,因此大大缩短了集成电路的设计周期。The Interlaken packet-cutting and scheduling method, apparatus, and computer storage medium provided by the embodiments of the present invention use a plurality of small-small-area Interlaken interfaces to transmit data packets sent by at least one upstream port. This significantly increases the rate of data transfer; in addition, because each Interlaken interface is designed in a similar manner, the design cycle of the integrated circuit is greatly reduced.
附图说明DRAWINGS
图1为本发明实施例提供的一种Interlaken切包和调度的方法示意图;FIG. 1 is a schematic diagram of a method for Interlaken packet cutting and scheduling according to an embodiment of the present invention;
图2为本发明实施例提供的一种切包方法示意图;2 is a schematic diagram of a method of packet cutting according to an embodiment of the present invention;
图3为本发明实施例提供的一种获取当前待调度端口的端口标识的方法示意图;FIG. 3 is a schematic diagram of a method for obtaining a port identifier of a current port to be scheduled according to an embodiment of the present disclosure;
图4为本发明实施例提供的一种轮询调度表的结构示意图;FIG. 4 is a schematic structural diagram of a polling schedule according to an embodiment of the present disclosure;
图5为本发明实施例提供的另一种获取当前待调度端口的端口标识的方法示意图;FIG. 5 is a schematic diagram of another method for obtaining a port identifier of a current port to be scheduled according to an embodiment of the present disclosure;
图6为本发明实施例提供的一种对待调度数据包进行切包处理的具体方法示意图;FIG. 6 is a schematic diagram of a specific method for performing packet cutting processing on a data packet to be scheduled according to an embodiment of the present disclosure;
图7为本发明实施例提供的一种切包结果示意图;FIG. 7 is a schematic diagram of a packet cutting result according to an embodiment of the present invention;
图8为本发明实施例提供的另一种切包结果示意图;FIG. 8 is a schematic diagram of another packet cutting result according to an embodiment of the present invention; FIG.
图9为本发明实施例提供的一种Interlaken切包和调度装置的结构示意图;FIG. 9 is a schematic structural diagram of an Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention;
图10为本发明实施例提供的另一种Interlaken切包和调度装置的结构示意图;10 is a schematic structural diagram of another Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention;
图11为本发明实施例提供的又一种Interlaken切包和调度装置的结构 示意图;FIG. 11 is a schematic structural diagram of another Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention; schematic diagram;
图12为本发明实施例提供的一种Interlaken切包和调度装置的工作流程示意图。FIG. 12 is a schematic diagram of a workflow of an Interlaken packet cutting and scheduling apparatus according to an embodiment of the present invention.
具体实施方式detailed description
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。The technical solutions in the embodiments of the present invention will be clearly and completely described in the following with reference to the accompanying drawings.
实施例一 Embodiment 1
如图1所示,该图给出了本发明实施例提供的一种Interlaken切包和调度方法,所述方法可以包括:As shown in FIG. 1 , the figure shows an Interlaken packet cutting and scheduling method according to an embodiment of the present invention. The method may include:
S110、接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据;S110: Receive a data packet sent by at least one port in the upstream, and perform packet cutting processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port.
S120、从预设的Interlaken接口组中获取每个上游端口对应的接口;其中,所述Interlaken接口组包含至少两个Interlaken接口;S120. Obtain an interface corresponding to each upstream port from a preset Interlaken interface group, where the Interlaken interface group includes at least two Interlaken interfaces.
S130、将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;S130, scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
需要说明的是,在对所述上游端口对应的切片数据进行调度时,可以根据所述上游端口带宽与Interlaken子接口位宽的比例关系将所述上游端口的切片数据调度到合适的Interlaken接口上进行传输,以避免数据传输过程出现拥塞。例如,当前正在被调度的上游端口的带宽为100Gbps,所述Interlaken接口组中的某个Interlaken接口的位宽也是100Gbps,那么,此时就可以将带宽为100Gbps的上游端口的切片数据调度到位宽为100Gbps的Interlaken接口上进行传输。It should be noted that, when scheduling the slice data corresponding to the upstream port, the slice data of the upstream port may be scheduled to the appropriate Interlaken interface according to the ratio of the bandwidth of the upstream port to the bit width of the Interlaken sub-interface. Transfer to avoid congestion in the data transmission process. For example, the bandwidth of the upstream port currently being scheduled is 100 Gbps, and the bit width of an Interlaken interface in the Interlaken interface group is also 100 Gbps. Then, the slice data of the upstream port with the bandwidth of 100 Gbps can be scheduled to the bit width. Transfer over the 100Gbps Interlaken interface.
S140、通过所述每个上游端口对应的Interlaken接口将所述每个上游端口对应的切片数据进行发送。S140: Send, by using an Interlaken interface corresponding to each of the upstream ports, slice data corresponding to each of the upstream ports.
示例性地,所述接收由上游至少一个端口发送的数据包,并分别对每 个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据,如图2所示,具体可以包括:Illustratively, the receiving a data packet sent by at least one port upstream, and separately for each The data packet corresponding to the upstream port is subjected to packet-cut processing, and the slice data corresponding to each upstream port is obtained, as shown in FIG. 2, which may specifically include:
S210、接收由上游至少一个端口发送的数据包,并分别获取每个上游端口对应的数据包的包描述信息;S210. Receive a data packet sent by at least one port in the upstream, and obtain packet description information of a data packet corresponding to each upstream port.
作为一种实施方式,所述数据包的包描述信息可以包括:包头信息、包尾信息和包长度信息等。As an implementation manner, the packet description information of the data packet may include: header information, trailer information, packet length information, and the like.
S220、根据预设的轮询调度表获取当前待调度端口的端口标识,并根据所述当前待调度端口的端口标识获取所述待调度端口的端口标识所对应的待调度数据包和所述待调度数据包的包描述信息;S220. Obtain a port identifier of the current to-be-scheduled port according to the preset polling schedule, and obtain a to-be-scheduled data packet corresponding to the port identifier of the to-be-scheduled port according to the port identifier of the current to-be-scheduled port. Scheduling packet description information of the data packet;
S230、根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据;S230. Perform packet cutting processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cut information and the packet description information of the to-be-scheduled data packet, and obtain the slice data corresponding to the current to-be-scheduled port. ;
作为一种实施方式,所述预设的切包信息可以包括:最大突发长度(Burstmax)、最小突发长度(Burstmin)、普通型或增强型调度模式的参数值。As an implementation manner, the preset packet cutting information may include: a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode.
S240、更新所述轮询调度表的信息,并返回执行步骤S220。S240. Update the information of the polling schedule, and return to step S220.
作为一种实施方式,对于步骤S220,所述预设的轮询调度表由上游端口的端口标识和所述端口标识对应的调度指示值组成,用于获取当前待调度端口的端口标识。As an implementation manner, in step S220, the preset polling schedule is composed of a port identifier of an upstream port and a scheduling indicator value corresponding to the port identifier, and is used to obtain a port identifier of a current port to be scheduled.
需要说明的是,所述轮询调度表中的所有端口标识对应了CPU配置的端口表中所配置的所有端口。It should be noted that all port identifiers in the polling schedule correspond to all ports configured in the port table configured by the CPU.
相应地,所述根据预设的轮询调度表获取当前待调度端口的端口标识,如图3所示,具体可以包括:Correspondingly, the port identifier of the current port to be scheduled is obtained according to the preset polling schedule, as shown in FIG. 3, which may specifically include:
S310、根据预设的第一轮询规则从预设的轮询调度表中获取一行由调度指示值组成的调度指示序列;其中,每行调度指示序列都分别对应了一 行端口标识序列;S310. Acquire, according to a preset first polling rule, a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table, where each row scheduling indication sequence respectively corresponds to one Row port identification sequence;
S320、根据预设的第二轮询规则从获取的该行调度指示序列中获取当前待调度端口的端口标识。S320. Obtain, according to the preset second polling rule, the port identifier of the current to-be-scheduled port from the obtained scheduling instruction sequence of the row.
需要说明的是,所述预设的第一轮询规则可以是由上而下的顺序,也可以是由下而上的顺序,其目的是为了获取一行调度指示序列。类似地,所述预设的第二轮询规则可以是由左向右的顺序,也可以是由右向左的顺序,其目的是为了获取当前待调度端口的端口标识。It should be noted that the preset first polling rule may be a top-down order or a bottom-up order, and the purpose is to obtain a row of scheduling indication sequence. Similarly, the preset second polling rules may be in a left-to-right order or a right-to-left order, and the purpose is to obtain a port identifier of a current port to be scheduled.
如图4所示,该图给出了所述轮询调度表的一种结构,从图中可以看出,该轮询调度表由端口表cfg_rd_port_j(j=1,2,...,n)和所述端口表cfg_rd_port_j(j=1,2,...,n)对应的调度指示表cfg_rd_order_j(j=1,2,...,n)组成,且该轮询调度表中的cfg_rd_port_1至cfg_rd_port_n包含的端口标识对应了CPU配置的端口表中所包含的所有端口;cfg_rd_order_1至cfg_rd_order_n对应指示cfg_rd_port_1至cfg_rd_port_n中的端口标识所对应的端口数据包当前是否可以被调度。例如,图4中P1 2位置处对应的cfg_rd_order_1中的指示值为1,表示该位置处对应的cfg_rd_port_1中的端口标识
Figure PCTCN2017081746-appb-000001
所对应的端口数据包当前是可以被调度的。反之,当P1 2位置处对应的cfg_rd_order_1中的指示值为0时,表明该端口标识
Figure PCTCN2017081746-appb-000002
所对应的端口数据包当前是不可以被调度的。
As shown in FIG. 4, the figure shows a structure of the polling schedule. As can be seen from the figure, the polling schedule is represented by the port table cfg_rd_port_j (j=1, 2, . . . , n And a scheduling indication table cfg_rd_order_j (j=1, 2, . . . , n) corresponding to the port table cfg_rd_port_j (j=1, 2, . . . , n), and cfg_rd_port_1 in the polling schedule The port identifier included in cfg_rd_port_n corresponds to all ports included in the port table configured by the CPU; cfg_rd_order_1 to cfg_rd_order_n correspond to whether the port packet corresponding to the port identifier in cfg_rd_port_1 to cfg_rd_port_n is currently scheduled. For example, the indication value in the corresponding cfg_rd_order_1 at the location of P 1 2 in FIG. 4 is 1, indicating the port identifier in the corresponding cfg_rd_port_1 at the location.
Figure PCTCN2017081746-appb-000001
The corresponding port packet is currently schedulable. Conversely, when the indication value in the corresponding cfg_rd_order_1 at the position of P 1 2 is 0, the port identifier is indicated.
Figure PCTCN2017081746-appb-000002
The corresponding port packet is currently not schedulable.
因此,基于图4所示的轮询调度表,可以通过两个方向的轮询获取当前待调度端口的端口标识,如图5所示,具体可以包括:Therefore, based on the polling schedule shown in FIG. 4, the port identifier of the current port to be scheduled can be obtained by polling in two directions, as shown in FIG. 5, which may specifically include:
S510、根据预设的轮询调度表按照cfg_rd_order_1至cfg_rd_order_n自上而下的顺序轮询获取一行调度指示序列cfg_rd_order_j;其中,j=1,2,...,n;S510. According to a preset polling schedule, the cfg_rd_order_1 to cfg_rd_order_n are polled in order from top to bottom to obtain a row scheduling indication sequence cfg_rd_order_j; wherein j=1, 2, . . . , n;
S520、根据获取的该行调度指示序列cfg_rd_order_j中按照由左到右的顺序轮询获取待调度端口的端口标识。S520. According to the obtained row scheduling indication sequence cfg_rd_order_j, the port identifier of the to-be-scheduled port is obtained by polling in a left-to-right order.
需要说明的是,对于轮询的方向可以是任意的,其目的主要是为了能够将所有端口的数据均匀地调度输出。另外,所述调度指示表cfg_rd_order_j (j=1,2,...,n)中每个端口所对应的调度指示值是实时更新的,例如,P1 2位置处对应的端口当前时刻没有缓存的数据包,此时,该位置处对应的cfg_rd_order_1中的指示值将更新为0。It should be noted that the direction of the polling may be arbitrary, and the purpose thereof is mainly to enable the data of all the ports to be uniformly scheduled and output. In addition, the scheduling indication value corresponding to each port in the scheduling indication table cfg_rd_order_j (j=1, 2, . . . , n) is updated in real time, for example, the current port of the corresponding port at the P 1 2 location is not cached. Packet, at this time, the indicated value in the corresponding cfg_rd_order_1 at this location will be updated to 0.
具体地,对于步骤S230,所述根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据,如图6所示,具体可以包括:Specifically, in step S230, the packet to be scheduled corresponding to the current to-be-scheduled port is packet-cut according to the preset packet-cut information and the packet description information of the to-be-scheduled packet, and the current packet is obtained. The slice data corresponding to the port to be scheduled, as shown in FIG. 6, may specifically include:
S610、读取所述切包信息中普通型和增强型调度模式的参数值;S610. Read parameter values of a common type and an enhanced scheduling mode in the packet cutting information.
S620、当所述切包信息中普通型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度小于所述Burstmax的参数值时,将所述剩余的包数据作为一个切片数据;S620, when the parameter value of the common type scheduling mode in the packet cutting information is a valid value, the parameter value of the Burstmax in the packet information is a unit length of the slice data, and the data packet to be scheduled is uniformly cut, and When the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
S630、当所述切包信息中增强型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度大于Burstmax且小于Burstmax+Burstmin时,将所述剩余的包数据切割成两片数据;其中,所述剩余的包数据对应的第一片切片数据的长度等于Burstmax-Burstmin,所述剩余的包数据对应的第二片切片数据的长度等于所述剩余的包数据长度减去所述第一片切片数据的长度。S630, when the parameter value of the enhanced scheduling mode in the packet-cutting information is a valid value, uniformly cutting the to-be-scheduled data packet by using a parameter value of Burstmax in the packet-cutting information as a unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin, the remaining packet data is cut into two pieces of data; wherein, the remaining piece of data corresponds to the first piece of slice data. The length is equal to Burstmax-Burstmin, and the length of the second slice data corresponding to the remaining packet data is equal to the length of the remaining packet data minus the length of the first slice data.
可以理解地,所述普通型或增强型调度模式的参数值用于指示按照哪种调度模式下的切割方法对所述待调度数据包进行切片。例如,当前需要进行切包处理的待调度数据包的长度为520字节,所述切包信息中的Burstmax=256字节,Burstmin=16字节,此时,当所述切包信息中的普通型调度模式的参数值为有效值(如参数值等于0)时,该数据包的切包结果如图7所示,即该数据包的切包结果为:第一片切片数据长度为256字节, 第二片切片数据长度为256字节,第三片切片数据长度为8字节;当所述切包信息中的增强型调度模式的参数值为有效值(如参数值等于1)时,该数据包的切包结果如图8所示,即该数据包的切包结果为:第一片切片数据长度为256字节,第二片切片数据长度为240字节(即Burstmax-Burstmin),第三片切片数据长度为24字节(即520-256-240)。It can be understood that the parameter value of the normal type or enhanced scheduling mode is used to indicate that the data packet to be scheduled is sliced according to the cutting method in which scheduling mode. For example, the length of the to-be-scheduled data packet that needs to be packet-cut processing is 520 bytes, Burstmax=256 bytes in the packet-cut information, and Burstmin=16 bytes, at this time, in the packet-cut information When the parameter value of the normal scheduling mode is a valid value (for example, if the parameter value is equal to 0), the packet cutting result of the data packet is as shown in FIG. 7, that is, the packet cutting result of the data packet is: the first slice data length is 256. Byte, The second slice data length is 256 bytes, and the third slice data length is 8 bytes; when the parameter value of the enhanced scheduling mode in the packet change information is a valid value (for example, the parameter value is equal to 1), The packet cutting result of the data packet is as shown in FIG. 8, that is, the packet cutting result of the data packet is: the first slice data length is 256 bytes, and the second slice data length is 240 bytes (ie, Burstmax-Burstmin). The third slice data length is 24 bytes (ie 520-256-240).
示例性地,所述将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口,优选地,可以根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;其中,所述数据调度模式信息用于指示所述每个上游端口对应的切片数据是以整包模式还是以交织模式调度到所述每个上游端口对应的Interlaken接口。Illustratively, the slice data corresponding to each of the upstream ports is scheduled to the Interlaken interface corresponding to each of the upstream ports, and preferably, each of the upstream ports may be corresponding according to preset data scheduling mode information. The slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports, where the data scheduling mode information is used to indicate whether the slice data corresponding to each upstream port is scheduled in the whole packet mode or the interleaving mode. Interlaken interface corresponding to each upstream port.
作为一种实施方式,当所述数据调度模式信息指示的是整包模式时,将所述每个上游端口的整包数据对应的所有切片数据拼接成一片数据,并将拼接后的整片数据调度到所述每个上游端口对应的Interlaken接口;当所述数据调度模式信息指示的是交织模式时,以交织的形式将所述每个上游端口的切片数据一一均匀调度到每个上游端口对应的Interlaken接口。As an embodiment, when the data scheduling mode information indicates the whole packet mode, all the slice data corresponding to the entire packet data of each upstream port is spliced into one piece of data, and the spliced whole piece of data is spliced. Dispatching to the Interlaken interface corresponding to each of the upstream ports; when the data scheduling mode information indicates an interleaving mode, the slice data of each of the upstream ports is uniformly scheduled to each upstream port in an interleaved manner Corresponding Interlaken interface.
本发明实施例提供了一种Interlaken切包和调度方法,该方法能够将接收的上游至少一个端口发送的数据包分别调度到每个上游端口对应的Interlaken接口,该方法同时利用了多个小位宽小容量的Interlaken接口对接收的上游至少一个端口发送的数据包分别进行传输,从而明显提高了数据传输的速率;另外,由于每个Interlaken接口的设计方法类似,因此大大缩短了集成电路的设计周期。The embodiment of the present invention provides an Interlaken packet-cutting and scheduling method, which can separately receive the received data packets sent by at least one port of the upstream port to the Interlaken interface corresponding to each upstream port, and the method simultaneously utilizes multiple small bits. The wide-capacity Interlaken interface separately transmits the data packets sent by at least one upstream port, thereby significantly increasing the data transmission rate. In addition, since each Interlaken interface is designed in a similar manner, the design of the integrated circuit is greatly shortened. cycle.
实施例二 Embodiment 2
基于前述相同的技术构思,参见图9,其示出了本发明实施例提供的一种Interlaken切包和调度装置10,所述装置可以包括:数据包切包模块110、 数据包调度模块120和Interlaken接口模块130;其中,Based on the foregoing technical concept, referring to FIG. 9, an Interlaken packet cutting and scheduling apparatus 10 according to an embodiment of the present invention is shown. The apparatus may include: a packet cutting module 110, a packet scheduling module 120 and an Interlaken interface module 130; wherein
所述数据包切包模块110,配置为接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据;The packet packet cutting module 110 is configured to receive a data packet sent by at least one port upstream, and perform packet cutting processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port.
所述数据包调度模块120,配置为从预设的Interlaken接口组中获取每个上游端口对应的接口;The packet scheduling module 120 is configured to obtain an interface corresponding to each upstream port from a preset Interlaken interface group.
所述数据包调度模块120,还配置为将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;The packet scheduling module 120 is further configured to schedule the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
所述Interlaken接口模块130,配置为将所述每个上游端口对应的切片数据进行发送。The Interlaken interface module 130 is configured to send the slice data corresponding to each of the upstream ports.
在上述方案中,所述数据包切包模块110,如图10所示,具体可以包括:数据包处理子模块1101、Interlaken切包控制子模块1102和数据包切包子模块1103;其中,In the above solution, the data packet cutting module 110, as shown in FIG. 10, may specifically include: a data packet processing sub-module 1101, an Interlaken packet control sub-module 1102, and a packet-cutting packet sub-module 1103;
所述数据包处理子模块1101,配置为接收由上游至少一个端口发送的数据包,并分别获取每个上游端口对应的数据包的包描述信息;The data packet processing sub-module 1101 is configured to receive data packets sent by at least one upstream port, and obtain packet description information of each data packet corresponding to each upstream port.
所述Interlaken切包控制子模块1102,配置为根据预设的轮询调度表获取当前待调度端口的端口标识,并根据所述当前待调度端口的端口标识获取所述待调度端口的端口标识所对应的待调度数据包和所述待调度数据包的包描述信息;The Interlaken packet control sub-module 1102 is configured to obtain a port identifier of a port to be scheduled according to a preset polling schedule, and obtain a port identifier of the port to be scheduled according to the port identifier of the current to-be-scheduled port. Corresponding data packet to be scheduled and packet description information of the to-be-scheduled data packet;
所述数据包切包子模块1103,配置为根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据;其中,所述切包信息包括最大突发长度(Burstmax)、最小突发长度(Burstmin)、普通型或增强型调度模式的参数值;The packet-cutting packet sub-module 1103 is configured to perform packet-cutting processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cutting information and the packet description information of the to-be-scheduled data packet, and acquire The slice data corresponding to the current to-be-scheduled port; wherein the packet-cut information includes a maximum burst length (Burstmax), a minimum burst length (Burstmin), a parameter value of a normal type or an enhanced scheduling mode;
所述Interlaken切包控制子模块1102,还配置为更新所述轮询调度表的 信息。The Interlaken packet control sub-module 1102 is further configured to update the polling schedule information.
作为一种实施方式,所述Interlaken切包控制子模块1102,具体配置为:As an implementation manner, the Interlaken packet control submodule 1102 is specifically configured to:
根据预设的第一轮询规则从预设的轮询调度表中获取一行由调度指示值组成的调度指示序列;其中,每行调度指示序列都分别对应了一行端口标识序列;Obtaining, according to a preset first polling rule, a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
根据预设的第二轮询规则从获取的该行调度指示序列中获取当前待调度端口的端口标识。Obtaining the port identifier of the current to-be-scheduled port from the obtained scheduling instruction sequence of the line according to the preset second polling rule.
作为一种实施方式,所述数据包切包子模块1103,具体配置为:As an implementation manner, the data packet cutout submodule 1103 is specifically configured to:
当所述切包信息中普通型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度小于所述Burstmax的参数值时,将所述剩余的包数据作为一个切片数据;When the parameter value of the normal scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
当所述切包信息中增强型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度大于Burstmax且小于Burstmax+Burstmin时,将所述剩余的包数据切割成两片数据;其中,所述剩余的包数据对应的第一片切片数据的长度等于Burstmax-Burstmin,所述剩余的包数据对应的第二片切片数据的长度等于所述剩余的包数据长度减去所述第一片切片数据的长度。When the parameter value of the enhanced scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin, the remaining packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, the length of the second slice data corresponding to the remaining packet data is equal to the remaining packet data length minus the length of the first slice data.
作为一种实施方式,所述数据包调度模块120,具体配置为:As an implementation manner, the data packet scheduling module 120 is specifically configured to:
根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;其中,所述数据调度模式信息用于指示所述每个上游端口对应的切片数据是以整包模式还是以交织模式调度到所述每个上游端口对应的Interlaken接口。Scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports according to the preset data scheduling mode information, where the data scheduling mode information is used to indicate that each of the upstream ports corresponds to The slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports in a full packet mode or an interleaved mode.
作为一种实施方式,所述数据包调度模块120,具体配置为: As an implementation manner, the data packet scheduling module 120 is specifically configured to:
当所述数据调度模式信息指示的是整包模式时,将所述每个上游端口的整包数据对应的所有切片数据拼接成一片数据,并将拼接后的整片数据调度到所述每个上游端口对应的Interlaken接口;When the data scheduling mode information indicates the whole packet mode, all the slice data corresponding to the entire packet data of each upstream port is spliced into one piece of data, and the spliced whole piece of data is scheduled to each of the pieces. The Interlaken interface corresponding to the upstream port;
当所述数据调度模式信息指示的是交织模式时,以交织的形式将所述每个上游端口的切片数据一一均匀调度到每个上游端口对应的Interlaken接口。When the data scheduling mode information indicates the interleaving mode, the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
在上述方案中,如图11所示,所述装置10还可以包括:数据包缓存模块140、数据包信息缓存模块150和Interlaken调度信息管理模块160;其中,In the above solution, as shown in FIG. 11, the apparatus 10 may further include: a data packet buffering module 140, a data packet information caching module 150, and an Interlaken scheduling information management module 160;
所述数据包缓存模块140,配置为存储由上游至少一个端口发送的数据包;The data packet buffering module 140 is configured to store a data packet sent by at least one port upstream;
需要说明的是,为了最高效地利用所述数据包缓存,通常将每个上游端口发送的数据包按端口标识以链表的形式存储在所述数据包缓存模块中。It should be noted that, in order to utilize the data packet cache most efficiently, the data packets sent by each upstream port are generally stored in the data packet buffer module in the form of a linked list by port identification.
所述数据包信息缓存模块150,配置为存储每个上游端口对应的数据包的包描述信息;The packet information cache module 150 is configured to store package description information of a data packet corresponding to each upstream port;
所述Interlaken调度信息管理模块160,配置为存储预设的切包信息和数据调度模式信息。The Interlaken scheduling information management module 160 is configured to store preset packet cutting information and data scheduling mode information.
在实际应用中,上述数据包切包模块110、数据包调度模块120、Interlaken接口模块130、数据包缓存模块140、数据包信息缓存模块150和Interlaken调度信息管理模块160可由位于Interlaken切包和调度装置10上的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)、微处理器单元(MPU,Microprocessor Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)等实现。 In an actual application, the packet packet cutting module 110, the packet scheduling module 120, the Interlaken interface module 130, the packet buffer module 140, the packet information buffer module 150, and the Interlaken scheduling information management module 160 may be packetized and scheduled by Interlaken. A central processing unit (CPU, Central Processing Unit), a digital signal processor (DSP), a micro control unit (MCU), a microprocessor unit (MPU, Microprocessor Unit) or programmable on the device 10 Gate array (FPGA, Field-Programmable Gate Array) and other implementations.
实施例三Embodiment 3
为了便于对上述方案的理解,本实施例将结合图12对上述装置10的一种工作流程进行描述,所述工作流程具体可以包括:In order to facilitate the understanding of the foregoing solution, this embodiment describes a workflow of the foregoing device 10 in conjunction with FIG. 12, and the workflow may specifically include:
S710、数据包处理子模块1101接收由上游至少一个端口发送的数据包,并对当前接收的数据包进行包头和包尾的配对处理以及包长度的计算;S710. The data packet processing submodule 1101 receives a data packet sent by at least one port upstream, and performs packet header processing and packet tail pairing processing and packet length calculation on the currently received data packet.
S711、所述数据包处理子模块1101按当前接收的数据包所对应的端口标识将当前接收的数据包写入链表;其中,所述链表存储于数据包缓存模块140;S711, the data packet processing sub-module 1101 writes the currently received data packet to the linked list according to the port identifier corresponding to the currently received data packet; wherein the linked list is stored in the data packet buffer module 140;
S712、当所述当前接收的数据包的包尾数据写入所述链表时,所述数据包处理子模块1101按端口标识将所述当前接收的数据包的包头、包尾和包长度信息写入数据包信息缓存模块150;S712. When the tail data of the currently received data packet is written into the linked list, the data packet processing submodule 1101 writes the header, the end of the packet, and the packet length information of the currently received data packet according to the port identifier. Into the packet information cache module 150;
S713、Interlaken切包控制子模块1102根据预设的轮询调度表获取当前待调度端口的端口标识,并根据当前待调度端口的端口标识从所述数据包信息缓存模块150中获取所述当前待调度端口的端口标识所对应的包头、包尾和包长度信息;The S713, the Interlaken packet control sub-module 1102 obtains the port identifier of the current to-be-scheduled port according to the preset polling schedule, and obtains the current to-be-waited from the packet information cache module 150 according to the port identifier of the current to-be-scheduled port. The header, trailer, and packet length information corresponding to the port identifier of the dispatch port;
S714、所述Interlaken切包控制子模块1102根据获取的包头、包尾和包长度信息产生一组与当前待调度数据包包头数据对齐的读链表端口标识和读链表使能信号;S714, the Interlaken packet control sub-module 1102 generates a set of read list port identifiers and read list enable signals aligned with the current data packet header data to be scheduled according to the obtained packet header, packet tail, and packet length information.
S715、所述Interlaken切包控制子模块1102根据产生的读链表端口标识和读链表使能信号通过时钟控制从所述链表中持续读取所述当前待调度数据包的数据,并将读取的所述当前待调度数据包的数据发送给数据包切包子模块1103;S715, the Interlaken packet control sub-module 1102 continuously reads the data of the current to-be-scheduled data packet from the linked list, and reads the data according to the generated read list port identifier and the read list enable signal. The data of the current to-be-scheduled data packet is sent to the packet-cutting packet sub-module 1103;
S715、当所述Interlaken切包控制子模块1102完成所述当前待调度数据包的数据读取时,所述Interlaken切包控制子模块1102从所述Interlaken调度信息管理模块160中获取切包信息;其中,所述切包信息包括: Burstmax、Burstmin和普通型或增强型调度模式的参数值;S715. When the Interlaken packet control sub-module 1102 completes the data reading of the current to-be-scheduled data packet, the Interlaken packet control sub-module 1102 obtains packet-cut information from the Interlaken scheduling information management module 160. The packet cutting information includes: Parameter values for Burstmax, Burstmin, and normal or enhanced scheduling modes;
S716、所述Interlaken切包控制子模块1102根据获取的切包信息产生对齐的切包控制信号,并发送给所述数据包切包子模块1103;S716, the Interlaken packet control sub-module 1102 generates an aligned packet control signal according to the obtained packet-cut information, and sends the packet-cut packet control module 1103;
S717、所述数据包切包子模块1103根据所述对齐的切包控制信号对所述当前待调度数据包进行切包处理,并获取所述当前待调度端口对应的切片数据;S717, the packet packet-cutting sub-module 1103 performs packet-cutting processing on the current to-be-scheduled data packet according to the aligned packet-cut control signal, and acquires slice data corresponding to the current to-be-scheduled port;
需要说明的是,所述数据包切包子模块1103对于普通型调度模式和增强型调度模式下对所述当前待调度数据包的切包处理方法是不同,具体地切包处理方法已在上述实施例中进行了详细描述,为避免重复,此处不再赘述。It should be noted that the packet packetizing submodule 1103 is different for the packet processing method of the current to-be-scheduled data packet in the normal scheduling mode and the enhanced scheduling mode, and specifically, the packet cutting processing method has been implemented in the foregoing manner. The detailed description is given in the example, and to avoid repetition, it will not be repeated here.
S718、数据包调度模块120将所述当前待调度端口对应的切片数据调度到所述当前待调度端口对应的Interlaken接口。S718. The data packet scheduling module 120 schedules the slice data corresponding to the current to-be-scheduled port to the Interlaken interface corresponding to the current to-be-scheduled port.
需要说明的是,同一端口的数据包必须调度到同一Interlaken接口,在具体实现中,可以根据当前待调度端口的带宽与Interlaken接口位宽的比例关系,将当前待调度端口的数据调度到合适的Interlaken接口。另外,由实施例二可知,所述数据包处理子模块1101、Interlaken切包控制子模块1102和数据包切包子模块1103是所述数据包切包模块110的子模块。It should be noted that the data packets of the same port must be scheduled to the same Interlaken interface. In the specific implementation, the data of the current to-be-scheduled port can be scheduled to be appropriate according to the ratio of the bandwidth of the current to-be-scheduled port to the bit width of the Interlaken interface. Interlaken interface. In addition, as shown in the second embodiment, the data packet processing sub-module 1101, the Interlaken packet control sub-module 1102, and the packet-cutting packet sub-module 1103 are sub-modules of the data packet-cutting module 110.
还需要说明的是,所述数据包调度模块120可以根据所述Interlaken调度信息管理模块160中的数据调度模式信息(包括整包模式和交织模式的参数值)判断是以整包模式的形式将切片数据调度出去,还是以交织模式的形式将切片数据调度出去。It should be noted that the data packet scheduling module 120 may determine that the data scheduling mode information (including the parameter values of the whole packet mode and the interleaving mode) in the Interlaken scheduling information management module 160 is in the form of a whole packet mode. The slice data is scheduled to be dispatched, or the slice data is scheduled to be dispatched in the form of an interleaving pattern.
本发明实施例还记载了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行前述各个实施例所述的Interlaken切包和调度方法。The embodiment of the invention further describes a computer storage medium, wherein the computer storage medium stores computer executable instructions, and the computer executable instructions are used to execute the Interlaken packet cutting and scheduling method described in the foregoing embodiments.
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、 或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will appreciate that embodiments of the present invention can be provided as a method, system, Or a computer program product. Accordingly, the present invention can take the form of a hardware embodiment, a software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present invention has been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (system), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。The computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device. The instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。 The above is only the preferred embodiment of the present invention and is not intended to limit the scope of the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and scope of the present invention are included in the scope of the present invention.
工业实用性Industrial applicability
本发明实施例的技术方案同时利用了多个小位宽小容量的Interlaken接口,对接收的上游至少一个端口发送的数据包分别进行传输,从而明显提高了数据传输的速率;另外,由于每个Interlaken接口的设计方法类似,因此大大缩短了集成电路的设计周期。 The technical solution of the embodiment of the present invention simultaneously utilizes multiple Interlaken interfaces with small bit width and small capacity to separately transmit data packets sent by at least one upstream port, thereby significantly increasing the rate of data transmission; The Interlaken interface is designed in a similar way, thus greatly reducing the design cycle of the integrated circuit.

Claims (15)

  1. 一种Interlaken切包和调度方法,所述方法包括:An Interlaken packet cutting and scheduling method, the method comprising:
    接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据;Receiving a data packet sent by at least one port of the upstream port, and performing packet cutting processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port;
    从预设的Interlaken接口组中获取每个上游端口对应的接口;其中,所述Interlaken接口组包含至少两个Interlaken接口;Acquiring an interface corresponding to each upstream port from a preset Interlaken interface group; where the Interlaken interface group includes at least two Interlaken interfaces;
    将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;Scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
    通过所述每个上游端口对应的Interlaken接口将所述每个上游端口对应的切片数据进行发送。The slice data corresponding to each of the upstream ports is sent by the Interlaken interface corresponding to each of the upstream ports.
  2. 根据权利要求1所述的方法,其中,所述接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据,具体包括:The method of claim 1, wherein the receiving the data packet sent by the upstream port and performing the packet-cutting processing on the data packet corresponding to each upstream port to obtain the slice data corresponding to each upstream port, Specifically include:
    接收由上游至少一个端口发送的数据包,并分别获取每个上游端口对应的数据包的包描述信息;其中,所述包描述信息包括包头、包尾和包长度信息;Receiving, by the upstream, at least one port, the data packet sent by the upstream port, and acquiring the packet description information of the data packet corresponding to each upstream port, where the packet description information includes a packet header, a trailer, and a packet length information;
    根据预设的轮询调度表获取当前待调度端口的端口标识,并根据所述当前待调度端口的端口标识获取所述待调度端口的端口标识所对应的待调度数据包和所述待调度数据包的包描述信息;Obtaining a port identifier of the current to-be-scheduled port according to the preset polling schedule, and acquiring the to-be-scheduled data packet and the to-be-scheduled data corresponding to the port identifier of the to-be-scheduled port according to the port identifier of the current to-be-scheduled port Package description information of the package;
    根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据;其中,所述切包信息包括最大突发长度Burstmax、最小突发长度Burstmin、普通型或增强型调度模式的参数值;And performing packetizing processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cutting information and the packet description information of the to-be-scheduled data packet, and acquiring the slice data corresponding to the current to-be-scheduled port; The packet cutting information includes a parameter value of a maximum burst length Burstmax, a minimum burst length Burstmin, a normal type or an enhanced scheduling mode;
    更新所述轮询调度表的信息,并根据更新后的轮询调度表获取下一个待调度端口的端口标识。 Update the information of the polling schedule, and obtain the port identifier of the next port to be scheduled according to the updated polling schedule.
  3. 根据权利要求2所述的方法,其中,所述预设的轮询调度表由上游端口的端口标识和所述端口标识对应的调度指示值组成,用于获取当前待调度端口的端口标识。The method according to claim 2, wherein the preset polling schedule is composed of a port identifier of an upstream port and a scheduling indicator value corresponding to the port identifier, and is used to obtain a port identifier of a current port to be scheduled.
  4. 根据权利要求2所述的方法,其中,所述根据预设的轮询调度表获取当前待调度端口的端口标识,具体包括:The method of claim 2, wherein the obtaining the port identifier of the current port to be scheduled according to the preset polling schedule includes:
    根据预设的第一轮询规则从预设的轮询调度表中获取一行由调度指示值组成的调度指示序列;其中,每行调度指示序列都分别对应了一行端口标识序列;Obtaining, according to a preset first polling rule, a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
    根据预设的第二轮询规则从获取的该行调度指示序列中获取当前待调度端口的端口标识。Obtaining the port identifier of the current to-be-scheduled port from the obtained scheduling instruction sequence of the line according to the preset second polling rule.
  5. 根据权利要求2所述的方法,其中,所述根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据,具体包括:The method according to claim 2, wherein the packet processing of the to-be-scheduled data packet corresponding to the current to-be-scheduled port is performed according to the preset packet-cutting information and the packet description information of the to-be-scheduled data packet, Obtaining the slice data corresponding to the current to-be-scheduled port, specifically:
    当所述切包信息中普通型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度小于所述Burstmax的参数值时,将所述剩余的包数据作为一个切片数据;When the parameter value of the normal scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining packet data is taken as one slice data;
    当所述切包信息中增强型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度大于Burstmax且小于Burstmax+Burstmin时,将所述剩余的包数据切割成两片数据;其中,所述剩余的包数据对应的第一片切片数据的长度等于Burstmax-Burstmin,所述剩余的包数据对应的第二片切片数据的长度等于所述剩余的包数据长度减去所述第一片切片数据的长度。When the parameter value of the enhanced scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin, the remaining packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, the length of the second slice data corresponding to the remaining packet data is equal to the remaining packet data length minus the length of the first slice data.
  6. 根据权利要求1所述的方法,其中,所述将所述每个上游端口对应 的切片数据调度到所述每个上游端口对应的Interlaken接口,包括:The method of claim 1, wherein said each upstream port corresponds to The slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports, including:
    根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;其中,所述数据调度模式信息用于指示所述每个上游端口对应的切片数据是以整包模式还是以交织模式调度到所述每个上游端口对应的Interlaken接口。Scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports according to the preset data scheduling mode information, where the data scheduling mode information is used to indicate that each of the upstream ports corresponds to The slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports in a full packet mode or an interleaved mode.
  7. 根据权利要求6所述的方法,其中,所述根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口,具体包括:The method of claim 6, wherein the scheduling of the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports according to the preset data scheduling mode information includes:
    当所述数据调度模式信息指示的是整包模式时,将所述每个上游端口的整包数据对应的所有切片数据拼接成一片数据,并将拼接后的整片数据调度到所述每个上游端口对应的Interlaken接口;When the data scheduling mode information indicates the whole packet mode, all the slice data corresponding to the entire packet data of each upstream port is spliced into one piece of data, and the spliced whole piece of data is scheduled to each of the pieces. The Interlaken interface corresponding to the upstream port;
    当所述数据调度模式信息指示的是交织模式时,以交织的形式将所述每个上游端口的切片数据一一均匀调度到每个上游端口对应的Interlaken接口。When the data scheduling mode information indicates the interleaving mode, the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
  8. 一种Interlaken切包和调度装置,所述装置包括:数据包切包模块、数据包调度模块和Interlaken接口模块;其中,An Interlaken packet cutting and scheduling device, the device comprising: a packet packet cutting module, a packet scheduling module and an Interlaken interface module; wherein
    所述数据包切包模块,配置为接收由上游至少一个端口发送的数据包,并分别对每个上游端口对应的数据包进行切包处理,获取每个上游端口对应的切片数据;The packet-cutting module is configured to receive a data packet sent by at least one port upstream, and perform packet-cut processing on each data packet corresponding to each upstream port to obtain slice data corresponding to each upstream port;
    所述数据包调度模块,配置为从预设的Interlaken接口组中获取每个上游端口对应的接口;The data packet scheduling module is configured to obtain an interface corresponding to each upstream port from a preset Interlaken interface group.
    所述数据包调度模块,还配置为将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;The packet scheduling module is further configured to schedule the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports;
    所述Interlaken接口模块,配置为将所述每个上游端口对应的切片数据进行发送。 The Interlaken interface module is configured to send the slice data corresponding to each of the upstream ports.
  9. 根据权利要求8所述的装置,其中,所述数据包切包模块,具体包括:数据包处理子模块、Interlaken切包控制子模块和数据包切包子模块;其中,The apparatus according to claim 8, wherein the data packet cutting module comprises: a data packet processing submodule, an Interlaken packet control submodule, and a data packet cutout submodule; wherein
    所述数据包处理子模块,配置为接收由上游至少一个端口发送的数据包,并分别获取每个上游端口对应的数据包的包描述信息;The data packet processing submodule is configured to receive a data packet sent by at least one port upstream, and obtain packet description information of each data packet corresponding to each upstream port;
    所述Interlaken切包控制子模块,配置为根据预设的轮询调度表获取当前待调度端口的端口标识,并根据所述当前待调度端口的端口标识获取所述待调度端口的端口标识所对应的待调度数据包和所述待调度数据包的包描述信息;The Interlaken packet control sub-module is configured to obtain, according to a preset polling schedule, a port identifier of a port to be scheduled, and obtain a port identifier of the port to be scheduled according to the port identifier of the current to-be-scheduled port. Packet to be scheduled and packet description information of the to-be-scheduled packet;
    所述数据包切包子模块,配置为根据预设的切包信息和所述待调度数据包的包描述信息对所述当前待调度端口所对应的待调度数据包进行切包处理,获取所述当前待调度端口对应的切片数据;其中,所述切包信息包括最大突发长度Burstmax、最小突发长度Burstmin、普通型或增强型调度模式的参数值;The packet-cutting packet sub-module is configured to perform packet-cutting processing on the to-be-scheduled data packet corresponding to the current to-be-scheduled port according to the preset packet-cutting information and the packet description information of the to-be-scheduled packet, and obtain the The slice data corresponding to the current to-be-scheduled port; wherein the packet-cut information includes a parameter value of a maximum burst length Burstmax, a minimum burst length Burstmin, a normal type or an enhanced scheduling mode;
    所述Interlaken切包控制子模块,还用于更新所述轮询调度表的信息。The Interlaken packet control submodule is further configured to update information of the polling schedule.
  10. 根据权利要求9所述的装置,其中,所述Interlaken切包控制子模块,具体配置为:The device according to claim 9, wherein the Interlaken packet control submodule is specifically configured to:
    根据预设的第一轮询规则从预设的轮询调度表中获取一行由调度指示值组成的调度指示序列;其中,每行调度指示序列都分别对应了一行端口标识序列;Obtaining, according to a preset first polling rule, a scheduling indication sequence consisting of scheduling indication values from a preset polling scheduling table; wherein each row scheduling indication sequence respectively corresponds to a row of port identification sequences;
    根据预设的第二轮询规则从获取的该行调度指示序列中获取当前待调度端口的端口标识。Obtaining the port identifier of the current to-be-scheduled port from the obtained scheduling instruction sequence of the line according to the preset second polling rule.
  11. 根据权利要求9所述的装置,其中,所述数据包切包子模块,具体配置为:The device according to claim 9, wherein the packet packet sub-module is specifically configured as:
    当所述切包信息中普通型调度模式的参数值为有效值时,以所述切包 信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度小于所述Burstmax的参数值时,将所述剩余的包数据作为一个切片数据;When the parameter value of the normal scheduling mode in the packet cutting information is a valid value, the packet is cut out The parameter value of Burstmax in the information is a unit length of the slice data, and the data packet to be scheduled is uniformly cut, and when the length of the remaining packet data after the uniform cutting is smaller than the parameter value of the Burstmax, the remaining Packet data as a slice data;
    当所述切包信息中增强型调度模式的参数值为有效值时,以所述切包信息中Burstmax的参数值为切片数据的单位长度对所述待调度数据包进行均匀切割,且当所述均匀切割后剩余的包数据的长度大于Burstmax且小于Burstmax+Burstmin时,将所述剩余的包数据切割成两片数据;其中,所述剩余的包数据对应的第一片切片数据的长度等于Burstmax-Burstmin,所述剩余的包数据对应的第二片切片数据的长度等于所述剩余的包数据长度减去所述第一片切片数据的长度。When the parameter value of the enhanced scheduling mode in the packet-cutting information is a valid value, the parameter value of Burstmax in the packet-cutting information is uniformly cut by the unit length of the slice data, and When the length of the packet data remaining after the uniform cutting is greater than Burstmax and less than Burstmax+Burstmin, the remaining packet data is cut into two pieces of data; wherein the length of the first slice data corresponding to the remaining packet data is equal to Burstmax-Burstmin, the length of the second slice data corresponding to the remaining packet data is equal to the remaining packet data length minus the length of the first slice data.
  12. 根据权利要求8所述的装置,其中,所述数据包调度模块,具体配置为:The device according to claim 8, wherein the packet scheduling module is specifically configured to:
    根据预设的数据调度模式信息将所述每个上游端口对应的切片数据调度到所述每个上游端口对应的Interlaken接口;其中,所述数据调度模式信息用于指示所述每个上游端口对应的切片数据是以整包模式还是以交织模式调度到所述每个上游端口对应的Interlaken接口。Scheduling the slice data corresponding to each of the upstream ports to the Interlaken interface corresponding to each of the upstream ports according to the preset data scheduling mode information, where the data scheduling mode information is used to indicate that each of the upstream ports corresponds to The slice data is scheduled to the Interlaken interface corresponding to each of the upstream ports in a full packet mode or an interleaved mode.
  13. 根据权利要求12所述的装置,其中,所述数据包调度模块,具体配置为:The device according to claim 12, wherein the packet scheduling module is specifically configured to:
    当所述数据调度模式信息指示的是整包模式时,将所述每个上游端口的整包数据对应的所有切片数据拼接成一片数据,并将拼接后的整片数据调度到所述每个上游端口对应的Interlaken接口;When the data scheduling mode information indicates the whole packet mode, all the slice data corresponding to the entire packet data of each upstream port is spliced into one piece of data, and the spliced whole piece of data is scheduled to each of the pieces. The Interlaken interface corresponding to the upstream port;
    当所述数据调度模式信息指示的是交织模式时,以交织的形式将所述每个上游端口的切片数据一一均匀调度到每个上游端口对应的Interlaken接口。When the data scheduling mode information indicates the interleaving mode, the slice data of each upstream port is uniformly scheduled to the Interlaken interface corresponding to each upstream port.
  14. 根据权利要求8所述的装置,其中,所述装置还包括:数据包缓 存模块、数据包信息缓存模块和Interlaken调度信息管理模块;其中,The device according to claim 8, wherein said device further comprises: data packet buffering a storage module, a packet information cache module, and an Interlaken scheduling information management module; wherein
    所述数据包缓存模块,配置为存储由上游至少一个端口发送的数据包;The data packet buffering module is configured to store a data packet sent by at least one port upstream;
    所述数据包信息缓存模块,配置为存储每个上游端口对应的数据包的包描述信息;The packet information cache module is configured to store package description information of a data packet corresponding to each upstream port;
    所述Interlaken调度信息管理模块,配置为存储预设的切包信息和数据调度模式信息。The Interlaken scheduling information management module is configured to store preset packet cutting information and data scheduling mode information.
  15. 一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至7任一项所述的Interlaken切包和调度方法。 A computer storage medium having stored therein computer executable instructions for performing the Interlaken packetizing and scheduling method of any one of claims 1 to 7.
PCT/CN2017/081746 2016-10-31 2017-04-24 Interlaken package cutting and scheduling method and apparatus, and computer storage medium WO2018076636A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610933585.1A CN108011842A (en) 2016-10-31 2016-10-31 A kind of Interlaken cuts bag and dispatching method and device
CN201610933585.1 2016-10-31

Publications (1)

Publication Number Publication Date
WO2018076636A1 true WO2018076636A1 (en) 2018-05-03

Family

ID=62023029

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/081746 WO2018076636A1 (en) 2016-10-31 2017-04-24 Interlaken package cutting and scheduling method and apparatus, and computer storage medium

Country Status (2)

Country Link
CN (1) CN108011842A (en)
WO (1) WO2018076636A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118199810B (en) * 2024-05-13 2024-09-03 中移(苏州)软件技术有限公司 Data processing method and device, electronic equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821458A (en) * 2012-08-13 2012-12-12 华为技术有限公司 Dynamic link adjustment method and link management equipment
CN103560982A (en) * 2013-10-31 2014-02-05 烽火通信科技股份有限公司 Packet cutting device and method for Interlaken enhanced dispatch
CN103761065A (en) * 2014-01-27 2014-04-30 华为技术有限公司 Data output method and device
WO2014164036A1 (en) * 2013-03-12 2014-10-09 Pierson Forrest Lawrence Indefinitely expandable high-capacity data switch
CN104333518A (en) * 2014-10-24 2015-02-04 南京贝伦思网络科技有限公司 Blocking device processing method
CN105515784A (en) * 2015-12-02 2016-04-20 北京浩瀚深度信息技术股份有限公司 High speed interface board card and setting method for communication equipment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821458A (en) * 2012-08-13 2012-12-12 华为技术有限公司 Dynamic link adjustment method and link management equipment
WO2014164036A1 (en) * 2013-03-12 2014-10-09 Pierson Forrest Lawrence Indefinitely expandable high-capacity data switch
CN103560982A (en) * 2013-10-31 2014-02-05 烽火通信科技股份有限公司 Packet cutting device and method for Interlaken enhanced dispatch
CN103761065A (en) * 2014-01-27 2014-04-30 华为技术有限公司 Data output method and device
CN104333518A (en) * 2014-10-24 2015-02-04 南京贝伦思网络科技有限公司 Blocking device processing method
CN105515784A (en) * 2015-12-02 2016-04-20 北京浩瀚深度信息技术股份有限公司 High speed interface board card and setting method for communication equipment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARK GUSTLIN: "Interlaken technology Whiter Paper", INTERLAKEN TECHNOLOGY: NEW-GENERATION PACKET INTERCONNECT PROTOCOL, 8 March 2007 (2007-03-08), XP055348090 *

Also Published As

Publication number Publication date
CN108011842A (en) 2018-05-08

Similar Documents

Publication Publication Date Title
CN106850402B (en) Message transmission method and device
US10742555B1 (en) Network congestion detection and resolution
US20140068134A1 (en) Data transmission apparatus, system, and method
CN110661725A (en) Techniques for reordering network packets on egress
US9853906B2 (en) Network prioritization based on node-level attributes
CN109587732B (en) Transmission method and device for service quality flow
JP2008131640A (en) Network testing apparatus and method
CN107135088B (en) Method and device for processing logs in cloud computing system
CN103997465A (en) Method and device for generating CNM
US10862767B2 (en) Data packet prediction
KR101752964B1 (en) Supporting rma api over active message
WO2016202158A1 (en) Message transmission method and device, and computer-readable storage medium
US20220029954A1 (en) Assigning variable length address identifiers to packets in a processing system
US9130740B2 (en) Variable acknowledge rate to reduce bus contention in presence of communication errors
US20170160929A1 (en) In-order execution of commands received via a networking fabric
JP2015012580A5 (en) Reception device, control method, and program
US20200236089A1 (en) Rdma-based data transmission method, network interface card, server and medium
WO2019109902A1 (en) Queue scheduling method and apparatus, communication device, and storage medium
WO2018076636A1 (en) Interlaken package cutting and scheduling method and apparatus, and computer storage medium
CN105763375A (en) Data packet transmission method, receiving method and microwave station
WO2012149742A1 (en) Signal order-preserving method and device
WO2017000737A1 (en) Transmission checking method, node, system and computer storage medium
CN116582387A (en) Message sending method, device and equipment
WO2018232635A1 (en) Video transmission method, video processor, network processor, and video transmission device
WO2016078212A1 (en) Packet processing method and device, and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17865401

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17865401

Country of ref document: EP

Kind code of ref document: A1