CN105164984A - Maintaining packet order in parallel processing network device - Google Patents

Maintaining packet order in parallel processing network device Download PDF

Info

Publication number
CN105164984A
CN105164984A CN201480024303.5A CN201480024303A CN105164984A CN 105164984 A CN105164984 A CN 105164984A CN 201480024303 A CN201480024303 A CN 201480024303A CN 105164984 A CN105164984 A CN 105164984A
Authority
CN
China
Prior art keywords
grouping
packet
sequencing unit
queue
instruction
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201480024303.5A
Other languages
Chinese (zh)
Other versions
CN105164984B (en
Inventor
E·沙姆斯基
G·勒韦
A·皮里
A·罗伊施泰恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marvell Israel MISL Ltd
Original Assignee
Marvell Israel MISL Ltd
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
Priority claimed from US14/109,479 external-priority patent/US9276868B2/en
Application filed by Marvell Israel MISL Ltd filed Critical Marvell Israel MISL Ltd
Publication of CN105164984A publication Critical patent/CN105164984A/en
Application granted granted Critical
Publication of CN105164984B publication Critical patent/CN105164984B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections

Abstract

A plurality of packets that belong to a data flow are received (402) and are distributed (404) to two or more packet processing elements, wherein a packet is sent to a first packet processing element. A first instance of the packet is queued (408) at a first packet processing element according to an order of the packet within the data flow. The first instance of the packet is caused to be transmitted when processing of the first instance is completed and the first instance of the packet is at a head of a queue at the first ordering unit. A second instance of the packet is queued at a second ordering unit. The second instance of the packet is caused to be transmitted when processing of the second instance is completed and the second instance of the packet is at a head of a queue (414) at the second ordering unit.

Description

Keep the order of packets in parallel processing network equipment
the cross reference of related application
The application is the continuation part application being entitled as the U.S. Patent application No.14/109479 of " keeping the order of packets in parallel processing network equipment " submitted on December 17th, 2013, the rights and interests of the following U.S. Provisional Patent Application of this patent application hereby claims: the U.S. Provisional Patent Application No.61/738 that what on December 17th, 2012 submitted to is entitled as " method of the grouping rearrangement in parallel processing packet handler ", 264; The U.S. Provisional Patent Application No.61/768 being entitled as " locking mechanism " that on February 22nd, 2013 submits to, 069; The U.S. Provisional Patent Application No.61/780 that what on March 13rd, 2013 submitted to is entitled as " method of the grouping rearrangement in parallel processing packet handler ", 186; The U.S. Provisional Patent Application No.61/825 that what on May 20th, 2013 submitted to is entitled as " method of the grouping rearrangement in parallel processing packet handler ", 223.The application also requires the rights and interests of following patent application: the U.S. Provisional Patent Application No.61/780 that what on March 13rd, 2013 submitted to is entitled as " method of the grouping rearrangement in parallel processing packet handler ", 186; And the U.S. Provisional Patent Application No.61/825 being entitled as " method of the grouping rearrangement in parallel processing packet handler " that on May 20th, 2013 submits to, 223.At this by reference by incorporated herein for the disclosure entirety of all above-mentioned patent applications.
Technical field
The disclosure relates to the network equipment of such as switch, router and edge device, and relates more particularly to the system and method for processing communications packet in such devices.
Background technology
Background technology provided herein describes the object being used for totally presenting disclosure background.In the work (with regard to it with regard to the degree described in this background technology part) of the inventor of the current signature of the prior art when may not forming submission and this specification not clearly or to be recognized as in the mode inferred be relative to prior art of the present disclosure.
Such as switch, router, edge device and some similar network equipments adopt the parallel packet transaction of grouping crossfire, and wherein multiple packet transaction element simultaneously and the process of executed in parallel different grouping.In such embodiments, importantly effectively utilize multiple treatment element to perform the parallel processing of the grouping belonging to a data flow simultaneously, effectively keep the order of packets in data flow simultaneously.
Summary of the invention
In an embodiment, the port that a kind of method for processing grouping is in the network device included in the network equipment receives multiple grouping, and wherein multiple grouping belongs to a data flow.The method also comprises between two or more packet transaction elements that will be distributed in for the treatment of grouping, comprises the grouping of in multiple grouping being distributed to the first packet transaction element and being used for being divided into groups by the first packet transaction element process.The method is additionally included in the first sequencing unit place and ranks according to first example of the order of dividing into groups in data flow to grouping.In two kinds, the front end situation that the first example that the process that the method is also included in the first example that (i) divides into groups completes and (ii) divides into groups is positioned at queue at the first sequencing unit place, the first example divided into groups is transmitted.The method is also included in the second sequencing unit place and ranks according to second example of the order of dividing into groups in data flow to grouping.In two kinds, the front end situation that the method also comprises and second example that process completes and (ii) divides into groups of the second example that divides into groups at (i) is positioned at queue at the second sequencing unit place, the second example divided into groups is transmitted.
In one embodiment, the method comprises the one or more combination in any in following characteristics.
The method also comprises, by the first sequencing unit, the first packet ID is assigned to grouping, wherein the first example row of grouping is carried out team and comprises and the first packet ID being assigned to grouping being ranked.
The method also comprises the first instruction that the process of the first example that sends instruction grouping by the first packet transaction element has been done, and stores instruction at the first sequencing equipment place.
Making the first example divided into groups be transmitted when the first sequencing unit place is positioned at the front end of queue at the first example of grouping is that the first instruction based on stored is carried out.
First instruction comprise at least (i) first the first example of dividing into groups of packet ID and (ii) not treat the instruction of the last example of the grouping transmitted by the network equipment.
The method be also included in make divide into groups the first example be transmitted after: by the second sequencing unit, the second packet ID is assigned to grouping; Second packet ID is supplied to the first packet transaction element; Send the second instruction by the first packet transaction element, the process of the second example of the second instruction instruction grouping is done; And the second instruction is supplied to the second sequencing unit, wherein the second instruction comprises the second packet ID.
First packet ID is assigned to divide into groups to comprise and assigns the first packet ID from the pond of the idle ID of the non-sequential of first sequencing unit this locality.
Second packet ID is assigned to divide into groups to comprise and assigns the second packet ID from the pond of the idle ID of the non-sequential of second sequencing unit this locality.
The first example divided into groups is transmitted comprise: the first example of grouping is transmitted to target port, for the first example divided into groups by target port transfer; Is removed in the queue that first packet ID is queued up from the first packet ID at the first sequencing unit; And the first packet ID is returned to the pond of idle packet ID at the first sequencing unit place.
The method be also included in make the first example divided into groups be transmitted after send for the request of the second packet ID from the first sequencing unit to the second sequencing unit, wherein assign the second packet ID by the second sequence cell response in receiving request to perform from the first sequencing unit.
First example of grouping is queued up and comprises: the first example of grouping is queued up in default categories queue; By the first example assignment of grouping to packet class; And when the first example divided into groups arrives the front end of default categories queue, the first example of grouping is moved to the tail end of the queue corresponding with assigned packet class from the front end of default categories queue.
The first example comprised grouping of being queued up in default categories queue by first example of grouping is queued up in the default categories queue corresponding with source port, divides into groups to be received by source port by the network equipment.
In another embodiment, the network equipment comprises multiple network port, is configured to the grouping on reception and transmission network.This network equipment also comprises multiple packet transaction element, is configured to process the grouping received by the network port.This network equipment also comprises multiple sequencing unit, comprises at least the first sequencing unit and the second sequencing unit.Multiple grouping is distributed between two or more packet transaction elements for the treatment of grouping by the first sequence cell location one-tenth, and wherein multiple grouping belongs to a data flow.First sequencing unit is also configured to rank according to first example of the order of dividing into groups in data flow by the grouping of in multiple grouping.In two kinds, the front end situation that first sequencing unit additional configuration becomes the process of the first example divided into groups at (i) completes and (ii) divides into groups the first example to be positioned at queue at the first sequencing unit place, the first example divided into groups is transmitted.First sequencing unit is configured to according to the order of dividing into groups in data flow, the second example divided into groups be ranked at the second example place of grouping further.In two kinds, the front end situation that second sequence cell location becomes the process of the second example divided into groups at (i) completes and (ii) divides into groups the second example to be positioned at queue at the second sequencing unit place, the second example divided into groups is transmitted.
In other embodiments, the network equipment comprises the one or more combination in any in following characteristics.
First sequencing unit is configured to the first packet ID to be assigned to grouping further, and is wherein queued up by the first example of grouping and comprise and the first packet ID being assigned to grouping being ranked.
First sequencing unit is configured to further: receive the first instruction from the packet transaction element of process grouping, and the process of the first example of the first instruction instruction grouping is done; Store the first instruction; And when the front end of queue that the first example that the first example that (i) divides into groups is positioned at grouping is queued up also (ii) based on the first stored instruction, the first example divided into groups is transmitted.
First instruction comprise (i) first first example of packet ID and (ii) instruction grouping not treat the instruction of the last example of the grouping transmitted by the network equipment.
First sequence cell location become make divide into groups the first example be transmitted after: to second sequencing unit send for making the second sequencing unit that the second packet ID is assigned to the request of grouping; The second packet ID being assigned to grouping by the second sequencing unit is received from the second sequencing unit; And the second packet ID is supplied to the packet transaction element of process grouping.
The packet transaction arrangements of components of process grouping becomes: the second instruction that the process sending the second example of instruction grouping has been done; And the second instruction is supplied to the second sequencing unit, wherein the second instruction comprises the second packet ID.
First sequence cell location becomes to assign the first packet ID from the pond of the non-sequential idle packet ID of first sequencing unit this locality.
Second sequence cell location becomes to assign the second packet ID from the pond of the non-sequential idle packet ID of second sequencing unit this locality.
First sequence cell location becomes at least to be made by following steps the first example divided into groups to be transmitted: the first example of grouping is sent to target port, for the first example divided into groups by target port transfer; Is removed in the queue that first packet ID is queued up from the first packet ID at the first sequencing unit; And the first packet ID is returned to the pond of idle packet ID at the first sequencing unit place.
Packet transaction arrangements of components becomes grouping is assigned to packet class, and wherein the first sequencing unit is configured to be ranked in the queue corresponding with default packet class by the first example of grouping before grouping is assigned to packet class further.
Default categories queue is corresponding with source port, divides into groups to be received by source port by the network equipment.
Accompanying drawing explanation
Fig. 1 is the block diagram of the example network equipment according to embodiment.
Fig. 2 is the example sequencing unit according to embodiment.
Fig. 3 be according to embodiment by sequencing unit for storing the example action schedule/database of the action relevant with grouping to be taken.
Fig. 4 is the block diagram of another example network equipment according to another embodiment.
Fig. 5 is the flow chart of the case method for retaining the order of packets in the network equipment according to embodiment.
Fig. 6 is the block diagram of another example network equipment according to another embodiment.
Fig. 7 is the flow chart of the case method for retaining the order of packets in packet handling facilities according to embodiment.
Embodiment
Fig. 1 is the block diagram of the example network equipment 100 according to embodiment, and this network equipments configuration network packet becoming to distribute in data flow is used for by the parallel processing of multiple packet transaction element and the order of packets when dividing into groups to transmit from the network equipment 100 in maintenance data flow.The network equipment 100 is generally the computer network equipment connecting two or more computer systems, network system, sub-network etc.Such as, in one embodiment, the network equipment 100 is switch.However, it is noted that the network equipment 100 is also optionally limited to specific protocol layer or specific networking technology (such as Ethernet).Such as, the network equipment 100 also can be bridger, router, VPN hub etc.
The network equipment 100 comprises packet handler 102, and packet handler 102 comprises multiple packet transaction element (PPE) 104 and sequencing unit 106.The network equipment 100 also comprises the multiple network ports 112 being coupled to packet handler 102, and each network port 112 links another suitable networks equipment be coupled in communication network and/or communication network by respective communication.Typically, packet handler 102 is configured to process the grouping received by inbound port 112, determines grouping by which corresponding outbound port 112 is transmitted, and transmits grouping by determined outbound port 112.In certain embodiments, packet handler 102 process with the packet descriptor that is associated of grouping and non-grouping self.In an embodiment, packet descriptor comprises some information from grouping, some or all in the header information such as divided into groups, and/or packet descriptor comprises the information for dividing into groups generated by the network equipment 100.In certain embodiments, packet descriptor also comprises other information, such as indicates the designator of the wherein situation of packet memory in the memory be associated with the network equipment 100.For the object easily explained, the packet descriptor that term " grouping " is used in reference to grouping self herein or is associated with grouping.
Sequencing unit 106 comprises controller 110, and this controller is configured to the process of the grouping received by port one 12 by the network equipment 100 to be dispensed to described multiple PPE104.In an embodiment, PPE104 is configured to simultaneously and the process of executed in parallel respective packets, and each PPE104 is configured to perform at least two different process operations usually in grouping.According to embodiment, PPE104 is configured to use and is stored in computer-readable instruction in permanent memory (not shown) to process grouping, and the institute that each PPE104 is configured to perform grouping is necessary to process (having moved to process).In operation, the network equipment 100 processes one or more data flow of traverses network equipment 100.In an embodiment, data flow is corresponded to and to be received by particular source port 112 (such as from specific originating device) by the network equipment 100 and to be intended to the grouping sequential transmitted by specific objective port one 12 (such as transferring to the particular target device be coupled with target port), and join, such as relative to the priority-level of other data flow with other parameter correlations one or more in certain embodiments.The data flow being only oriented to single target equipment is referred to herein as unicast data stream.In at least some embodiments, except the unicast data stream that process is only oriented to a target device or alternatively, the network equipment 100 is configured to process the multicast data stream being oriented to target device group.
Usually, the order of packet in data flow needs to keep in the whole network equipment 100, and the order that grouping is transmitted from the network equipment 100 is identical with the order of dividing into groups to be received by the network equipment 100.But at least some cases, because the process of dividing into groups in data flow is distributed in multiple PPE104, the process of therefore dividing into groups in data flow is completed with the order different from the order of dividing into groups to be received by the network equipment 100 by PPE104.The out-of-sequence difference completed because such as different PPE104 is accessing the time delay met with when external source processes operation for execution on dividing into groups of packet transaction causes, and described external source is such as external memory storage, external treatment engine etc.
In an embodiment, sequencing unit 106 is configured to the order of the grouping at least keeping belonging to the same data stream entering the network equipment 100, to guarantee that these groupings are transmitted from the network equipment 100 with the sequential of dividing into groups to be received by the network equipment 100.In order to effectively keep the order of dividing into groups, controller 110 operates with multiple queues of 114-1 to the 114-n corresponding to respective packets classification, and keeps the order of grouping in each classification in described multiple classification.In various embodiments, packet class corresponds to the grouping group shared with dividing into groups the one or more attributes be associated.Such as, packet class corresponding to belong to same data stream grouping, belong to multiple data flow multiple data flow of priority-level (such as share) grouping group, share grouping that PPE104 is the required multiple instructions performed of process grouping, share the grouping group in expection processing time or share the grouping group of appropriate combination of any other attribute or the attribute be associated with grouping.In an embodiment, classification in the network equipment 100 predefine, in another embodiment, at least some classification can be configured by the operator of the network equipment 100.
In an embodiment, the order received by the network equipment 100 according to dividing into groups, the grouping corresponded to dividing into groups in the respective queue 114 of the respective packets classification be associated is ranked by controller 110.In an embodiment, controller 110 just packet ID is assigned to grouping, and non-groupingly self to rank to the packet ID being assigned in queue 114 grouping.In an embodiment, controller 110 assigns packet ID from the pond of non-sequential idle packet ID.In this embodiment, be assigned to the packet ID of grouping with the sequential of dividing into groups to be received by the network equipment 100 and optionally represent the order dividing into groups to be received by the network equipment 100.Then grouping is distributed to PPE104 by controller 110, for being processed grouping by PPE104.In an embodiment, PPE104 with independent of be grouped in queue 114 queue up order to process grouping.In an embodiment, PPE104 is configured in grouping, perform at least some process operation in the mode independent of the relevant position be grouped in respective queue 114.PPE104 communicates with sequencing unit 106, such as, in order to indicate sequencing unit 106 to take the specific action relevant to the grouping of queuing up in queue 114.In an embodiment, PPE104 is configured to send the instruction indicating and treat the action taked of dividing into groups, and the instruction of instruction action is sent to sequencing unit 106, described action such as upgrade correspond to grouping classification, forward packet to target port 112 for dividing into groups by the transmission of target port 112, abandoning grouping etc.In other embodiments, other treatment elements instruction sequencing unit 106 of the network equipment 100 performs the action relevant to grouping, such as upgrades the classification corresponding to grouping.Such as, in an embodiment, the such instruction of at least some is from the hardware element being taken by PPE104 or access (such as hardware handles engine or search memory, such as such as ternary content addressable memory (TCAM)) send to sequencing unit 106, to determine the classification of dividing into groups.
In each embodiment described below, when being grouped in queue 114 front end, controller 110 remains on the order of the grouping of queuing up in same queue 114 by performing the action relevant with the grouping of queuing up in queue 114.In such embodiments, like this, the grouping being arranged in queue 114 front end prevents controller 110 from performing and other relevant actions of dividing into groups of queuing up in same queue 114, thus is blocked in other groupings of queuing up in same queue 114.In other words, owing to only performing and the action of queuing up in queue 114 when dividing into groups to be arranged in queue 114 front end, therefore in an embodiment, controller 110 postpones to perform the action relevant with the grouping received in the relative time after a while by the network equipment 110, until perform the action relevant with the grouping that the time before relatively receives, thus be retained in the order of the grouping of queuing in queue 114.
In an embodiment, queue 114 uses respective links list to implement.In this embodiment, each queue 114 links the group of grouping by entry sequence, and in an embodiment, each in this entry sequence comprises the reference to next entry in queue.Queue 14 being embodied as respective links list allows controller 110 to effectively utilize storage space for storing described multiple queue 114.In another embodiment, queue 114 is implemented in other suitable modes, such as, as first in first out (FIFO) queue.
According to embodiment, in the process of dividing into groups to be processed by PPE104 or another treatment element except sequencing unit 106 (such as being taken the external hardware engine determining packet class by PPE104), determine the classification corresponding to dividing into groups.Correspondingly, to be received by sequencing unit 106 when dividing into groups and be initially at when queuing up in sequencing unit 106, the classification corresponding to grouping or unknown.In an embodiment, controller 110 is configured to initially will be grouped in one or more default categories queue and ranks.Such as, in certain embodiments, queue 114 comprises multiple default queue 114, and wherein each default queue 114 is configured to the packet queue to shared special parameter, and this special parameter was known for controller 110 before being divided into groups by PPE104 process.Such as, in one suchembodiment, the corresponding default queue 114 of each (in some in each or source port 112 in whole in such as source port 112 each) during queue 114 comprises for being served by sequencing unit 106 source port 112.In this embodiment, controller 110 is configured to rank in the default queue 114 be grouped in corresponding to source port 112, and the network equipment receives grouping by this source port.In this embodiment, enter being grouped in different default categories queues 114 of the network equipment 100 by different source ports 112 to rank, and the grouping in an embodiment, entering the network equipment 100 by the first port 112 (such as port one 12-1) can stop the grouping being entered the network equipment 100 by the second port one 12 necessarily.But in another embodiment, queue 114 comprises for the initial single default categories queue of all packet queues to entering sequencing unit 106.In this embodiment, all being grouped in single default queue 114 received by sequencing unit 106 is initially ranked by controller 110.
In an embodiment, PPE104 aligns and is analyzed by least some in the grouping of PPE104 process, with based on one or more attributes (the one or more parameters in such as packet-based front end that are associated of dividing into groups, based on the one or more parameters calculated in the process of dividing into groups to be processed by packet handler 102 for dividing into groups, or its combination, or comprise in a packet or with any other the suitable one or more parameters that are associated of dividing into groups) determine the respective packets classification corresponding with the described at least some in grouping.PPE104 is configured to optionally the renewal of at least some corresponded in grouping is supplied to sequencing unit 106 (being such as supplied to the controller 110 of sequencing unit 106), and these renewals indicate the determined classification for dividing into groups to sequencing unit 106.In an embodiment, PPE104 provide with divide into groups in some (the such as processing time is contemplated to relatively long grouping) relevant classification upgrade, and do not provide divide into groups with other (the such as processing time is contemplated to relatively short grouping) relevant classification to upgrade.
Alternatively, in another embodiment, controller 110 is configured to rank being grouped in all queues 114.In this embodiment, controller 110 is configured to receive renewal for dividing into groups, and it is one or more that this renewal instruction grouping does not belong to the specific one or more corresponding packet class in queue 114.In response to receiving and corresponding renewal of dividing into groups, controller 110 removes the grouping corresponding with indicated one or more classifications from one or more queue 114.In an embodiment, controller 110 is configured to only remove grouping when grouping is positioned at particular queue front end from particular queue.
In an embodiment, in grouping by PPE104 and/or the process by other treatment element process of the network equipment 100, sequencing unit 106 receives the multiple renewals for dividing into groups.Such as, sequencing unit 106 receives the instruction for dividing into groups, and grouping, before the concrete class belonging to grouping is determined by other treatment elements of PPE104 or the network equipment 100, should be moved to interim classification by this instruction instruction.In response to receiving the instruction that grouping should be moved to interim classification, grouping is moved to the queue 114 (increase an integer, such as one (such as from classification 0 increase by one to classification 1)) corresponding with the current class divided into groups by sequencing unit 106 from the queue 114 of the current queuing of grouping.In certain embodiments, subsequently, sequencing unit 106 receives the one or more interim classifications additionally corresponding with grouping and upgrades, until determine the concrete class divided into groups.In at least some embodiments, before the classification corresponding to determining to divide into groups, the interim classification performed for dividing into groups upgrades and allows controller 110 to stop other groupings in the queue of the current queuing of grouping.
According to embodiment, when sequencing unit 106 receive the classification being used for specific cluster upgrade time, grouping is moved to new queue 114 corresponding to the classification indicated by upgrading with by the classification being used for this specific cluster from the queue 114 of the current queuing of grouping by the controller 110 of sequencing unit 106.In an embodiment, in order to the order of tram grouping, grouping can not be moved to new queue 114 by controller 110, until grouping arrives the front end of the queue of the current queuing of grouping.Such as, in an embodiment, when the classification corresponding with grouping when controller 110 reception upgrades, controller 110 checks whether grouping is positioned at the front end of the queue of packet queue, or alternatively check whether grouping is positioned at the front end of any queue 114, and only perform classification when grouping is currently located at queue 114 front end and upgrade (such as grouping being moved to the queue 114 corresponding with being upgraded the classification that indicates by classification).The current front end not being positioned at queue 114 if divided into groups, then controller 110 is suitably by update action and packet associated, and performs practically and relevant update action of dividing into groups when grouping arrives the front end of the queue of packet queue by the time.
In some embodiments and/or scene, when such as also not arriving the front end of the queue of packet queue when being grouped in sequencing unit 106 and receiving and previously upgrade, before the upgrading for the classification of dividing into groups and performed by sequencing unit 106 of previous receipt, the second classification that sequencing unit 106 receives for dividing into groups upgrades instruction.In an embodiment, under these circumstances, controller 110 upgrades update action corresponding to instruction and packet associated by with second suitably.Correspondingly, in this embodiment, in this case, upgrade corresponding first category update action with the classification of previous receipt and upgrade the second corresponding classification update action all and packet associated with the second classification.In an embodiment, when arriving associated queue 114 front end when dividing into groups, controller 110 performs each in the first update action and the second update action.In other words, in an embodiment, when grouping arrives the front end of the queue 114 of the current queuing of grouping constantly, controller 110 performs the first update action; And when arriving the front end of the queue 114 moved to according to the first update action of dividing into groups when dividing into groups, controller performs the second classification and upgrades.
In an embodiment, when PPE104 completes the process of grouping, PPE104 sends instruction to sequencing unit 106, and this instruction indicates the process of grouping to be done to sequencing unit 106.When the instruction that the controller 110 of sequencing unit 106 has been completed by PPE104 from the process that PPE104 receives instruction grouping, controller 110 wait for until divide into groups arrive packet queue queue 114 front end and then make to divide into groups to be sent to suitable target port 112, for by this port one 12 transmission grouping.In each embodiment and/or scene, due to when dividing into groups to be located in sequencing unit 106 front end of the queue 114 of current sequence of dividing into groups, (namely controller 110 performs the action relevant with grouping, upgrade the classification for dividing into groups, grouping being sent to target port for transmitting grouping, abandoning grouping etc.), therefore the order of packets in hold queue 114 guaranteed by controller 110, as will be hereafter more elaborated.
In addition, in certain embodiments, sequencing unit 106 is configured to provide various information to PPE104, such as relevant with the state of queue 114 information and/or the information relevant with the state of the instruction received from PPE104.In certain embodiments, sequencing unit 106 be configured to by received by sequencing unit 106 some grouping send to PPE104 and packet ID is not assigned to grouping and/or and not in sequencing unit 106 by packet queue.
In certain embodiments, multiple PPE104 performs and operates with relevant various process of dividing into groups.Such as, in an embodiment, PPE104 performs contextual processing when processing grouping, and by the packet context relevant to grouping is passed to another PPE104 from a PPE104, the process of grouping is passed to this another PPE104 from a PPE104.For the object easily explained, in embodiment described below, usual single PPE104 performs the process of grouping until complete.But should be understood that, in certain embodiments, multiple PPE104 performs the process relevant with grouping and operates.
Fig. 2 illustrate in greater detail the sequencing unit 106 of Fig. 1 of embodiment more.In the embodiment of fig. 2, controller 110 comprises dispatch unit 118, and this dispatch unit is configured to assign corresponding packet ID to the grouping received by sequencing unit 106, and grouping is sent to PPE104 to be used for being divided into groups by PPE104 process.Controller 110 comprises or is coupled to idle ID unit 120 and action database 122.Dispatch unit 118 uses the idle ID being included in idle ID unit 120 or being generated by it, with grouping is sent to PPE104 be used for by PPE104 process grouping before packet ID is assigned to grouping.In an embodiment, idle ID unit 120 comprises the queue of idle ID, the lists of links queue of such as FIFO or idle ID.In another embodiment, idle ID unit 120 comprises another suitable record (such as table or database) of idle ID and/or comprises ID maker.In an embodiment, each grouping associates with the packet ID being assigned to grouping by dispatch unit 118 suitably, and grouping is sent to PPE104 together with packet ID.PPE104 uses with the packet ID of dividing into groups to be associated to communicate with sequencing unit 106, and such as, to send instruction to controller 110, the action relevant with grouping taked by controller 110 is treated in instruction.
In an embodiment, controller 110 is configured to according to dividing into groups the order that received by the network equipment 100 and packet ID that will be assigned to grouping in queue 114 is queued up.In the embodiment depicted in figure 2, the network equipment 100 receives grouping A and grouping B by port one 12-1.As shown in Figure 2, enter time of the network equipment 100 relative to grouping B, grouping A is comparatively early the time enters the network equipment 100.Sequencing unit 106 receives grouping A, packet ID 1 is assigned to grouping A, and sends to a PPE104 (such as PPE104-1) for the treatment of grouping together with the packet ID 1 of assigning for the A that divides into groups grouping A.Meanwhile, the packet ID 1 of assigning for the A that divides into groups is queued up by sequencing unit 106 in the default queue 114-1 corresponding with source port 112-1, and grouping A is received by the network equipment 100 by described source port.Similarly, sequencing unit 106 receives grouping B, packet ID 2 is assigned to grouping B, and sends to the 2nd PPE104 (such as PPE104-2) for the B that divided into groups by the 2nd PPE104 process together with the packet ID 2 of assigning for the B that divides into groups grouping B.In an embodiment, to be received and the A and grouping B that therefore divides into groups is associated with identical port one 12-1 due to grouping A and grouping B by the network equipment 100 by port one 12-1, therefore grouping A queues up in identical default queue 114-1 with the B that divides into groups.In addition, in an embodiment, what enter the network equipment 100 due to grouping A at grouping B advances into the network equipment 100, before the A that therefore divides into groups comes grouping B in queue 114-1.
Subsequently, controller 110 receives instruction A from PPE104-1, the action relevant with grouping A that this instruction instruction is to be taken; And receive instruction B from PPE104-2, the action relevant with grouping B that this instruction instruction is to be taken.As shown in Figure 2, in illustrated embodiment and scene, controller 110 received instruction B before reception instruction A.Controller 110 checks whether the ID2 associated with grouping B is positioned at the front end of queue 114-1.Because ID2 is not positioned at the front end of queue 114-1, therefore the action that indicated by instruction B do not taked by controller 110.On the contrary, the action indicated by instruction B is associated with grouping B by controller 110, such as, by the relevance between the action indicated by instruction B and the ID2 associated with grouping B being stored in action database 122.Then, controller 110 receives the instruction A of the instruction action relevant with grouping A to be taken, and checks whether the ID1 relevant to grouping A is positioned at the front end of queue 114-1.Because ID1 is positioned at the front end of queue 114-1, therefore controller 110 performs the action indicated by instruction A.In the embodiment of fig. 2, instruction A indicates the renewal for the packet class of the A that divides into groups.Especially, in example embodiment, instruction A indicates grouping A to belong to packet class 1.Alternatively, in another embodiment, before PPE104-1 assigns classification for grouping, instruction A is sent by PPE104-1.In this case, instruction A indicates grouping A should move to new classification and not indicate concrete new classification.In this case, controller 110 determines the new classification of grouping A in any suitable manner, such as, by increasing the current class (such as from classification 0 be increased to classification 1) corresponding with grouping A; And by be removed from the front end of the queue 114-1 corresponding with packet class 0 by ID1 and packet ID 1 to be added into the tail end of the queue 114-2 corresponding with packet class 1, packet ID 1 is moved to the new classification that determined envelope is used for wrapping A.
As another example, in an embodiment, when instruction A indicates the process of grouping A to complete and the A that divides into groups gets out to be transmitted to target port 112 for the transmission of the A that divides into groups by target port 112, controller 110 makes grouping A send to target port 112 for transmission, packet ID 1 is removed from queue 114-1, and by packet ID 1 being back to the pond of idle ID120 and discharging packet ID 1.As another example, in an embodiment, instruction A indicates grouping A to abandon, and ID1 removes and ID1 is back to the pond of idle ID120 by controller 110 from queue 114-1.
After performing the action relevant with grouping A, the packet ID 2 corresponding with grouping B moves to the front end of queue 114-1.Controller 110 checks whether the instruction of the action relevant with grouping B that instruction is to be taken is received by controller 110.Such as, the action that action database 122 associates with corresponding to the ID2 dividing into groups B inquired by controller 110.If the action associated with ID2 finds in action database 122, then controller 110 performs the action relevant with grouping B.
In certain embodiments, controller 110 is configured to after performing an action, and this action of PPE104 that notice sends the instruction of this action of instruction is performed by controller 110.PPE114 is configured to after the instruction sending the instruction action relevant with grouping to be taken, is performing the confirmation performed by controller 110 with this action to be instructed such as before relevant other actions specific of dividing into groups.Such as, PPE104 waited for until receive this confirmation before obtaining the information corresponding with grouping in Access status data structure.Like this, in an embodiment, sequencing unit 106 as the correct order being kept for Access status structure, thus is given for change and the corresponding correct information that divides into groups from state structure.As another example, in an embodiment, PPE104 waits for until receive this confirmation with before another instruction of dividing into groups corresponding sending sequencing unit 106.In an embodiment, PPE104 performs other process operations (such as other relevant with grouping process and operate), waits for from sequencing unit 106 simultaneously and receives this confirmation.In an embodiment, PPE104 then to check whether before this is confirmed to be necessary operation and receives this confirmation performing, described operation such as access with divide into groups relevant state data structure or sequencing unit 106 is sent and another instruction of dividing into groups relevant.
In an embodiment, sequencing unit 106 is configured to dividing into groups to provide notice to the PPE104 processing grouping when arriving queue 114 front end, to notify that PPE104 grouping has arrived the front end of queue 114.PPE104 is configured to wait for until receive the such notice for dividing into groups from sequencing unit 106 before the specific operation performing grouping, described operation is such as access concentrated source (such as state data structure), and this concentrated source can be accessed for performing and the relevant specific operation that divides into groups by multiple PPE104.Then, in an embodiment, being done for after this operation of dividing into groups, the renewal that PPE104 sends sequencing unit 106, this renewal instruction upgrades for the classification of dividing into groups.Sequencing unit 106 receives classification and upgrades, and grouping is moved to the new queue 114 corresponding with being upgraded the new classification that indicate by classification from the queue 114 of the current queuing of grouping, thus next in the queue 114 of permission packet queue divides into groups to move to the front end of queue 114.Then, sequencing unit 106 sends notice to the PPE104 of just next grouping in processing queue 114, and next grouping of notice PPE104 is positioned at the front end of queue 114 now; And the PPE104 allowing to process next grouping performs and next relevant specific operation that divides into groups, such as access concentrated source is for performing the relevant specific operation that to divide into groups with next.
Additionally or alternatively, sequencing unit 106 allows processor 104 poll sequencing unit 106, to obtain the group list at the front end place being currently located at respective queue 114 (current queuing of dividing into groups in sequencing unit 106).In example embodiment and scene, PPE104 receives the group list being currently located at queue 114 front end, and determines by the current front end whether being positioned at queue 114 of the specific cluster of PPE104 process.If so, then PPE104 performs an action (such as Access status data structure is to obtain the data corresponding with grouping).On the other hand, the current front end (such as grouping is indicated as of the grouping of the group list being not arranged in queue 114 front end) not being located in sequencing unit 106 queue 114 of current queuing of dividing into groups if divided into groups, then PPE104 does not perform an action, and waits for until grouping moves to the front end of queue 114 to perform an action.Such as, in an embodiment, PPE104 continues poll sequencing unit 106, until the group list instruction grouping being currently located at respective queue 114 front end obtained from sequencing unit 106 is positioned at the front end of queue 114 now.
Fig. 3 is the example action schedule or database 200 that are used by sequencing unit according to the present invention, and sequencing unit is such as the sequencing unit 106 of Fig. 2.In certain embodiments, table/database 200 is configured to the correlation between storage action is taked by sequencing unit with action relevant with it grouping usually, and stores and the extraneous information of dividing into groups and/or for the queue of packet queue being associated.In an embodiment, table/database 200 is stored in the memory (such as random access storage device or other suitable memories) of the controller 110 being included in or being coupled to Fig. 2.In an embodiment, table/database 200 corresponds to the action database 122 of Fig. 2.In another embodiment, table/database 200 is used by other suitable components of the network equipment 100 or is used by the network equipment except the network equipment 100.For the object easily explained, below with reference to the network equipment 100 description lists/database 200 of Fig. 1.
Table/database 200 comprises multiple entry 202.Each entry 202 is associated with respective packets ID and for storing the various data corresponding with packet ID or information.In the example embodiment of Fig. 2, often arrange 202 and comprise and be used to indicate whether packet ID is current is associated with the grouping processed by the network equipment 100 or the status bar of current idle, and can be used for being assigned to the new grouping entering the network equipment 100 accordingly.For the packet ID that the current grouping with being processed by the network equipment 100 is associated, the status bar 206 in table 200 stores the instruction indicating the current classification (such as default categories or non-default classification) be associated with packet ID.Next LL pointer hurdle 208 comprises pointer or another instruction of storage address, and next grouping in this pointer or another instruction place queue corresponds to the classification of instruction in classification hurdle 204.In addition, each entry 202 of table/database 200 comprises action hurdle 210, for being stored in the action relevant with grouping to be taken when grouping arrives the front end of the respective queue 114 of packet queue in sequencing unit 106.
In an embodiment, controller 110 is configured at least to be stored in the action relevant with the grouping of front end of the queue 114 not being positioned at packet queue taked when controller 110 receives the instruction of instruction action.In an embodiment, controller 110 is configured to action be stored in the action hurdle 210 of the suitable entry 200 be associated with corresponding to the packet ID of dividing into groups.Controller 110 is configured to questionnaire/database 200 to determine whether the grouping of up-to-date arrival degree row 114 front end has the action be associated be stored in table/database 200.In an embodiment, if find the such action corresponding with specific cluster (it is positioned at the front end of the queue 114 of packet queue) in table/database 200, then this action is taked to specific cluster.In an embodiment, if do not find such action, then grouping is retained in the front end of queue 114, until receive the instruction of the instruction action relevant with specific cluster to be taken from PPE104.
In certain embodiments, table/database 200 eliminates at least some in the hurdle 204-210 shown in Fig. 3 and/or comprises other hurdles not shown in Figure 3.Such as, in an embodiment, each entry 202 of table/database 200 comprises descriptor database hurdle, for storing the packet descriptor corresponding to the packet ID be associated with entry 202.In an embodiment, controller 110 is configured to receive and the packet descriptor be associated and the instruction indicating the process of dividing into groups to be completed by PPE104 of dividing into groups from PPE104.In an embodiment, controller 110 is configured to be stored in by descriptor in the packet descriptor hurdle of the entry 202 be associated with corresponding to the packet ID of dividing into groups, and when the packet ID corresponding with grouping is positioned at the front end of the queue 114 of packet queue, packet descriptor is sent to suitable target port 112.
Fig. 4 is the block diagram of the network equipment 300 according to another embodiment.The network equipment 300 is similar to the network equipment 100 of Fig. 1, difference is that the network equipment 300 comprises multiple sequencing unit 306-1 to 306-k, each grouping received in the respective subset by source port 112 wherein in sequencing unit 306-1 to 306-k operates, and it is one or more that each wherein in these subsets comprises in source port 112.In this embodiment, each in sequencing unit 106 is responsible for the order of the grouping (such as belonging to the grouping of same data stream or identical packet class) of the described one or more reception be maintained by source port 112.In an embodiment, the sequencing unit of each and Fig. 1 in sequencing unit 306-1 to 306-k is same or similar.In an embodiment, each in sequencing unit 306-1 to 306-k operates on the multiple categories queues comprising one or more default categories queue.The packet queue that each order being configured to be received by the network equipment 300 in the respective queue corresponding with respective packets classification and to divide into groups in sequencing unit 306-1 to 306-k will be received by source port 112 (or multiple source port) by the network equipment 100, communicate to receive with PPE104 and indicate the instruction relevant with grouping to be taken, and perform an action when grouping is positioned at the front end of the queue of packet queue, thus keep the order of grouping.
Typically, the data flow of maintenance order in the network equipment (such as the network equipment 300) is needed to share the source port 112 at least shared.Therefore, the network equipment 300 can comprise any amount of sequencing unit 306, the multiple sequencing units 306 of the specific bandwidth in order to network enabled equipment 300 such as needing or expect.Correspondingly, in at least some embodiments, packet sequencing operation in the network equipment 300 can easily be amplified with the more large bandwidth in network enabled equipment 300, such as by increasing extra sequencing unit 306, make each sequencing unit 306 all be responsible for keeping the order of the grouping received by less source port 112, thus allow sequencing unit 306 to perform various process operation quickly.
Fig. 5 is for retaining the case method 400 of order of packets in packet handling facilities according to embodiment.In an embodiment, method 400 is implemented by the network equipment 100 of Fig. 1.In another embodiment, method 400 is implemented by the network equipment 300 of Fig. 4.In other embodiments, method 400 is implemented by other suitable network equipments.
At square 402, by the multiple grouping of multiple port accepts of packet handling facilities.In relieving 404, distribute to two or more packet transaction elements for being divided into groups by these packet transaction element process.In an embodiment, the grouping received at square 402 is supplied to sequencing unit, and grouping is distributed to two or more packet transaction elements described at square 404 by sequencing unit.
At square 406, grouping is assigned corresponding packet class.In an embodiment, the sequencing unit receiving grouping is initially grouping and assigns default packet class (such as packet class 0), and then packet transaction element is distributed in grouping, for being divided into groups by this packet transaction element process.In an embodiment, then packet transaction element determines the packet class corresponding with grouping in the processing procedure of grouping.In an embodiment, to the determination of the packet class of grouping based on the one or more attributes that are associated of dividing into groups, such as comprise in a packet or with one or more parameters of dividing into groups to be associated.In an embodiment, after determining the packet class corresponding with grouping, the packet class for dividing into groups that packet transaction elements alert sequencing unit is determined by packet transaction element.In another embodiment, grouping is not assigned to packet class by packet processing unit.In this case, in an embodiment, grouping is still designated as by sequencing unit is the default packet class that grouping is assigned.
At square 408, be grouped in the respective queue corresponding with the packet class being assigned to grouping and queue up.In an embodiment, the decision queue that the grouping in each queue is received by packet handling facilities according to dividing into groups.In an embodiment, grouping is initially in one or more corresponding default categories queue (such as packet class 0) and queues up, and at least some in grouping moves to particular category, after determining the particular category of dividing into groups, grouping is corresponding with this particular category.In another embodiment, before the particular category corresponding to grouping has been defined as grouping, such as, when the time needing relatively to grow determines the particular category corresponding to grouping, at least some in grouping has moved to new classification.In this embodiment, grouping moves to the tail end of the queue corresponding with any one in classification, thus removes stop to other groupings of queuing up in initial queue of queuing up of dividing into groups.Such as, in an embodiment, grouping moves to the queue corresponding with add one current class of (such as from packet class 0 to packet class 1 or from packet class 1 to packet class 2 etc.) divided into groups.In some embodiments and scene, for the packet class of dividing into groups afterwards determine that the time of the specific cluster classification corresponding with grouping upgrades.
At square 410, the command adapted thereto of the pending action relevant with grouping (such as upgrading the classification for dividing into groups, forwarding and dividing into groups, abandon grouping etc.) is indicated to be sent by packet transaction element.At square 412, at least some in action is associated with the grouping corresponding to action in an appropriate manner.Such as, the relevance of action and the grouping corresponding to action stores in memory.In an embodiment, if the grouping corresponding to action is not positioned at the front end of their respective queue, then in square 412 storage action.In another embodiment, if the grouping even corresponding to action is positioned at the front end of their respective queue, also in square 412 storage action.
At square 414, assign and perform process action.In an embodiment, if corresponding grouping is positioned at the front end of the queue of packet queue, then process action is performed at square 414.In an embodiment, owing to being perform an action to the grouping of the front end being positioned at grouping respective queue, the order of grouping in queue is therefore maintained.
Fig. 6 is the block diagram of the example network equipment 500 according to embodiment.The network equipment 500 is similar to the network equipment 100 of Fig. 1 and the network equipment 300 of Fig. 4 substantially, and comprises the element similar with the network equipment 300 label of the network equipment 100 of Fig. 1 and Fig. 4, will no longer be described in detail these elements for succinct object.
The network equipment 500 is configured to process one or more multicast data stream, and keep the order that the multicast in corresponding multicast data stream is divided into groups, such order of packets that multicast grouping is transmitted from the network equipment 500 is identical with the order that multicast divides into groups to be received by the network equipment 500.In an embodiment, multicast data stream is associated with target device group, and the network equipment 500 is configured to belong to the forwarding of packets of multicast data stream to each in target device.In certain embodiments, the network equipment 500 transmits the multicast data stream corresponding with single multicast data stream, such as, when corresponding data crossfire is transferred to the respective sub-set in respective objects equipment or target device by different port ones 12.In this case, in an embodiment, the network equipment 500 copies the grouping in multicast data stream, and transmits the respective packets example in corresponding data crossfire by different port ones 12.
In an embodiment, the network equipment 500 comprises multiple sequencing unit 506.In an embodiment, each sequencing unit 506 is substantially identical or similar with the sequencing unit 106 of Fig. 1.In an embodiment, each sequencing unit 506 is configured to process unicast packet and multicast grouping.In an embodiment, each sequencing unit 506 uses the technology described above with reference to Fig. 1-Fig. 5 to process multicast grouping substantially.Such as, in each embodiment and/or scene, each packet sequencing unit 506 is configured to multicast be grouped in sequencing unit 506 in one or more default queue 114 and queues up, to receive one or more instructions of the pending relevant action of dividing into groups with multicast of instruction, to store at least some in instruction, and so that the action indicated by multicast grouping being performed when multicast is grouped in the front end being positioned at queue in sequencing unit 506.
In an embodiment, when the multiple data crossfires corresponding with multicast data stream are in time being transmitted by the network equipment 500, different sequencing unit 506 keeps the order of dividing into groups in the different pieces of information crossfire treating to be transmitted by the network equipment 500.In at least some embodiments, compared to the system of order wherein using single sequencing unit to keep all data crossfires corresponding with multicast data stream, in multiple sequencing unit 506, distribute multiple data crossfire allow multiple data crossfire to transmit from the network equipment 500 with higher speed.Typically, in an embodiment, if each in sequencing unit 506 has corresponding bandwidth X and correspondingly can with speed X transmission grouping, then k such sequencing unit transmits multiple data crossfire with speed k*X.In an embodiment, the quantity k of sequencing unit 506 is chosen as and makes k*X enough high, the line speed supported with network enabled equipment 500 or completely speed.
According to embodiment, when the first example in multicast grouping is transmitted to port one 12 for transmitting the first example of this grouping by this port one 12 by the first sequencing unit 506, the second example of grouping is queued up and is transmitted to port one 12 for being transmitted the second example of this grouping by the second port one 12 by the second sequencing unit 506 subsequently in the second sequencing unit 506.In an embodiment, sequencing unit 506 is arranged to the loop chain of sequencing unit 506, wherein each sequencing unit 506 is configured to receive grouping from the last sequencing unit 506 chain of sequencing unit 506, and relays grouping to next sequencing unit 506 in the chain of sequencing unit 506.In operation, when the example that multicast is divided into groups is transmitted to port one 12 by sequencing unit 506, sequencing unit 506 checks whether the additional examples of grouping is still treated to be transmitted by the network equipment 500.Such as, in an embodiment, sequencing unit 506 receives the instruction indicating the process of grouping to be completed by PPE104 from PPE104.In an embodiment, this instruction also comprises the last the example whether instant example (the grouping example of also namely queuing up in sequencing unit 506) of instruction grouping is the grouping treating to be transmitted by the network equipment 500.If the additional examples of grouping is still treated to be transmitted by the network equipment 500, if the such as instant example of instruction instruction grouping A not treats the last grouping example transmitted by the network equipment 500, then grouping is relayed to next sequencing unit 506 in the chain of sequencing unit 506 by sequencing unit 506, and be grouped in this next sequencing unit 506 and queue up for the second example of dividing into groups subsequently by transmission of port one 12 etc., until no longer include the example of the multicast grouping still treating to be transmitted by the network equipment 500.Therefore, in this embodiment, the particular sorted unit 506 in the chain of sequencing unit 506 keeps the order of multicast grouping example in the particular data crossfire of the multicast grouping transmitted by the network equipment 500.
In example scenario shown in Fig. 6, the network equipment 500 receives grouping A and grouping B by port one 12-1.In an embodiment, grouping A and grouping B is the multicast grouping of data multicast data flow.As shown in Figure 6, that divides into groups that A enters the network equipment 500 at grouping B advances into the network equipment 500.In an embodiment, grouping A and grouping B is supplied to sequencing unit 506-1 by the network equipment 500.Such as, in an embodiment, sequencing unit 506-1 is configured to process the grouping being entered the network equipment 500 by the group of the one or more source ports comprising port one 12-1.In an embodiment, sequencing unit 506-1 receives grouping A, packet ID 1 is assigned to grouping A, in sequencing unit 506-1, packet ID 1 is queued up in queue, and grouping A is sent to PPE104 (such as PPE104-1) with the packet ID 1 being assigned to the A that divides into groups, so that by PPE104 process grouping A.In an embodiment, sequencing unit 506-1 keeps the pond of the idle ID of the non-sequential of sequencing unit 506-1 this locality.In this embodiment, packet ID 1 is assigned to grouping A by sequencing unit 506-1 from the pond of the idle ID of the non-sequential of sequencing unit 506-1 this locality.In certain embodiments, PPE104-1 uses packet ID 1 to communicate with sequencing unit 506-1, to indicate sequencing unit 104 to take the one or more actions relevant with the A that divides into groups, such as, upgrade to perform one or more packet class to the packet class corresponding with grouping A.
Similarly, in an embodiment, sequencing unit 506-1 receives grouping B, packet ID is assigned to grouping B (such as from the pond of the idle packet ID kept by sequencing unit 506-1), in sequencing unit 506-1, the packet ID being assigned to grouping B is queued up, and grouping B is sent to PPE104-2 together with being assigned to the grouping IID of the B that divides into groups, so that by PPE104-2 process grouping B.In an embodiment, grouping A and grouping B is received by sequencing unit 506-1 with the order of dividing into groups to be received by the network equipment 500.In an embodiment, because grouping B is received by sequencing unit 506-1 in the time afterwards for grouping A is received by sequencing unit 506-1, the B that therefore divides into groups comes after grouping A.
In the processing procedure of grouping A, PPE104-1 determines that grouping A is multicast grouping, and the Multi-instances such as A that divide into groups are treated to be transmitted by the network equipment 500.In response to determining that the Multi-instance of grouping A is to be transmitted, PPE104-1 generates the Multi-instance treating the grouping A transmitted by the network equipment 500.When PPE104-1 completes the process of first example of grouping A, PPE104-1 sends instruction 510 to sequencing unit 506-1.In an embodiment, instruction 510 comprises the packet ID 1 being assigned to grouping A by sequencing unit 506-1, and the instruction indicating the process of the instant example of the grouping A queued up in sequencing unit 506-1 to be completed by PPE104-1.In an embodiment, whether instruction 510 also comprises and indicates the instant example of grouping A of queuing up in sequencing unit 506-1 to be the instruction of the last example of the grouping A treating to be transmitted by the network equipment 500.Such as, in an embodiment, instruction 510 comprises " last example " instruction of one, wherein the bit (i) of " last example " is set as logical zero, logic one is set as with the last example or (ii) that indicate the instant example grouping not waiting for transmission A of grouping A, to indicate the instant example of grouping A to be the last example of the grouping A treating to be transmitted by the network equipment 500, or vice versa.
In the scene of Fig. 6, instruction 510 indicates the instant example of the grouping A queued up in sequencing unit 506-1 to be forwarded to port one 12-2.Instruction 510 also indicates the instant example of grouping A not to treat the last example (as by instruction in Fig. 6 510 indicated by " Last=0 ") of the grouping A transmitted by the network equipment 500.In an embodiment, in response to receiving instruction 510 and when packet ID 1 is positioned at the front end of queue in sequencing unit 506-1, grouping A is transmitted to port one 12-2 to be transmitted second example of grouping A by port one 12-2 by sequencing unit 506-1, and packet ID 1 is returned to the pond of the idle packet ID kept by sequencing unit 506.In an embodiment, when grouping A is transmitted to port one 12-2, sequencing unit 506-1 makes grouping A queue up in the sequencing unit 506-2 be coupled with sequencing unit 506-1, to be transmitted second example of grouping A by port one 12-2 subsequently.Such as, in an embodiment, when grouping A is transmitted to port one 12-2, sequencing unit 506-1 sends request 512 to sequencing unit 506-2, and request sequencing unit 506-2 is the packet ID that grouping A assigns sequencing unit 506-2 this locality.Sequencing unit 506-2 receives request 512, is that grouping A assigns packet ID 2, and packet ID 2 is sorted in queue in sequencing unit 506-2 in response to receiving request 512.In an embodiment, sequencing unit 506-2 keeps the pond of the idle ID of the non-sequential of sequencing unit 506-2 body.In this embodiment, sequencing unit 506-2 assigns packet ID 2 from the Chi Zhongwei grouping A of the idle ID of the non-sequential of sequencing unit 506-2 body.In an embodiment, packet ID 2 is supplied to sequencing unit 506-1 by sequencing unit 506-2.In an embodiment, sequencing unit 506-1 receives the packet ID 2 being assigned to grouping A by sequencing unit 506-2, and the packet ID 2 be associated with grouping A is supplied to PPE104-1.In an embodiment, sequencing unit 506-1 also provides the identifier be associated with sequencing unit 506-2 to PPE104-1, such as provides the sequencing unit identification be associated with sequencing unit 506-2 (ID) number to PPE104-1.In certain embodiments, PPE104-1 uses the packet ID 2 being assigned to grouping A by sequencing unit 506-2 and the identifier be associated with sequencing unit 506-2 to communicate with sequencing unit 506-2, to indicate sequencing unit 506-2 to take the one or more specific actions relevant with the A that divides into groups, such as, upgrade to perform one or more packet class corresponding with grouping A in sequencing unit 506-2.In an embodiment, when PPE104-1 completes the process of second example of grouping A, PPE104-1 sends instruction 514 to sequencing unit 506-2.In an embodiment, instruction 514 and instruction 512 is substantially identical or similar.In an embodiment, instruction 514 comprises the packet ID 2 being assigned to grouping A by sequencing unit 506-2, and the instruction indicating the process of the instant example of the grouping A queued up in sequencing unit 506-2 to be completed by PPE-1.In an embodiment, whether instruction 514 also comprises and indicates the instant example of grouping A of queuing up in sequencing unit 506-2 to be the instruction (" last example " instruction of such as one) of the last example of the grouping A treating to be transmitted by the network equipment 500.
In the embodiment in fig 6, instruction 514 indicates the instant example of the grouping A queued up in sequencing unit 506-2 to be forwarded to port one 12-3.Instruction 514 also indicates the instant example of grouping A not to treat the last example (as indicated by " Last=0 " in instruction in Fig. 6 514) of the grouping A transmitted by the network equipment 500.In an embodiment, in response to receiving instruction 514 and when packet ID 3 is positioned at queue front in sequencing unit 506-2, grouping A is transmitted to port one 12-3 to be transmitted second example of grouping A by port one 12-3 by sequencing unit 506-2, and packet ID 2 is returned to the pond of the idle packet ID kept by sequencing unit 506-2.In an embodiment, when grouping A is transmitted to port one 12-3, sequencing unit 506-2 makes grouping A sort in the sequencing unit 506-3 be coupled with sequencing unit 506-2, so that subsequently by the 3rd example of the 3rd port one 12 (such as port one 12-4) transmission grouping A.Such as, in an embodiment, when grouping A is transmitted to port one 12-3, sequencing unit 506-2 sends request 516 to sequencing unit 506-3, and request sequencing unit 506-3 is the packet ID that grouping A assigns sequencing unit 506-3 this locality.Sequencing unit 506-3 receives request 516 and is that grouping A assigns packet ID 3 in response to receiving request 516, and packet ID 2 is sorted in queue in sequencing unit 506-3.In an embodiment, sequencing unit 506-3 keeps the pond of the idle ID of the non-sequential of sequencing unit 506-3 body.In this embodiment, sequencing unit 506-3 assigns packet ID 3 from the Chi Zhongwei grouping A of the idle ID of the non-sequential of sequencing unit 506-3 this locality.In an embodiment, packet ID 3 is supplied to sequencing unit 506-2 by sequencing unit 506-3.In an embodiment, sequencing unit 506-2 receives the packet ID 3 being assigned to grouping A by sequencing unit 506-3, and the packet ID 3 be associated with grouping A is supplied to PPE104-1.In an embodiment, sequencing unit 506-2 also provides the identifier be associated with sequencing unit 506-3 to PPE104-1, such as provides the sequencing unit identification be associated with sequencing unit 506-3 (ID) number to PPE104-1.
In certain embodiments, PPE104-1 uses the packet ID 3 being assigned to grouping A by sequencing unit 506-3 and the identifier be associated with sequencing unit 506-3 to communicate with sequencing unit 506-2, to indicate sequencing unit 506-3 to take the one or more specific actions relevant with the A that divides into groups, such as, upgrade to perform one or more packet class corresponding with grouping A in sequencing unit 506-3.In an embodiment, when PPE104-1 completes the process of second example of grouping A, PPE104-1 sends instruction 518 to sequencing unit 506-3.In an embodiment, instruction 518 comprises the packet ID 3 being assigned to grouping A by sequencing unit 506-3, and the instruction indicating the process of the instant example of the grouping A queued up in sequencing unit 506-3 to be completed by PPE-1.In an embodiment, instruction 518 also indicates the instant example of the grouping A queued up in sequencing unit 506-3 to be forwarded to port one 12-4, and further the instant example of instruction grouping A is the last example (as indicated by " Last=1 " in instruction in Fig. 6 514) of the grouping A treating to be transmitted by the network equipment 500.In an embodiment, in response to receiving instruction 518 and when packet ID 3 is positioned at queue front in sequencing unit 506-3, grouping A is transmitted to port one 12-4 by sequencing unit 506-3, and packet ID 3 is returned to the pond of the idle packet ID kept by sequencing unit 506-3.In an embodiment, because the 3rd example of A of dividing into groups is the last example of the grouping treating to be transmitted by the network equipment 500, therefore sequencing unit 506-3 does not ask by another sequencing unit 506 be coupled with sequencing unit 506-3 is that the A that divides into groups assigns extra packet ID.
According to embodiment, the process of grouping B is carried out in the mode similar with the process of grouping A.Such as, in an embodiment, when the process of B of dividing into groups has been completed by PPE104-2 and the B that divides into groups is positioned at the front end of queue in sequencing unit 506-1, grouping B has been transmitted to port one 12-2 by sequencing unit 506-1.Because grouping B is received by the network equipment 500 in the time afterwards for grouping A is received by the network equipment 500, therefore grouping B is transmitted to port one 12-2 by sequencing unit 506-1 after grouping A is transmitted to port one 12-2, thus guarantees that the network equipment 500 receives the sequential delivery grouping A of grouping A and grouping B and first example of grouping B with the network equipment 500.In an embodiment, when grouping B is transmitted to port one 12-2, sequencing unit makes grouping B sort in sequencing unit 506-2.Such as, sequencing unit 506-1 sends request to ask packet ID to be assigned to grouping B to sequencing unit 506-2, and the packet ID being assigned to grouping B is queued up by sequencing unit 506-2 in sequencing unit 506-2.
In an embodiment, when the process of B of dividing into groups has been completed by PPE104-2 and the B that divides into groups is positioned at the front end of queue in sequencing unit 506-2, grouping B has been transmitted to port one 12-3 by sequencing unit.In an embodiment, because grouping B is received by the network equipment 500 after grouping A is received by the network equipment 500, the B that therefore divides into groups comes after grouping A in sequencing unit 506-2.Therefore, in an embodiment, grouping B is transmitted to port one 12-3 by sequencing unit 506-2 after grouping A, and grouping A is transmitted by port one 12-3 after grouping A is transmitted by port one 12-3.Therefore, sequencing unit 506-2 keeps the order between second example of grouping A and grouping B, makes the network equipment 500 receive the sequential delivery grouping A of grouping A and grouping B and second example of grouping B with the network equipment 500.Similarly, in an embodiment, sequencing unit 506-3 keeps the order between the 3rd example of grouping A and grouping B, makes the network equipment 500 receive the sequential delivery grouping A of grouping A and grouping B and the 3rd example of grouping B with the network equipment 500.
Fig. 7 is for retaining the flow chart of the case method 550 of order of packets in packet handling facilities according to embodiment.In an embodiment, method 550 is implemented by the network equipment 500 of Fig. 6.In other embodiments, method 550 is implemented by other suitable network equipments.For the object easily explained, the network equipment 500 of composition graphs 6 describes the method 550 hereinafter.
At square 552, receive multiple grouping in the port of the network equipment.In an embodiment, the plurality of grouping belongs to identical multicast data stream.At square 554, the grouping received at square 552 is distributed between two or more packet transaction elements.In an embodiment, square 554 comprises the first packet transaction element is distributed in grouping.
At square 556, distribute to being grouped in the first sequencing equipment of the first packet transaction element at square 554 and queue up.Such as, in an embodiment, be grouped in the sequencing unit 506-1 of the network equipment 500 and queue up.In another embodiment, the first example of subpackage is queued up or is queued up in another sequencing equipment in another sequencing unit 506.
At square 558, the first sequencing equipment makes the first example divided into groups be transmitted.Such as, in an embodiment, the first sequencing equipment (such as sequencing unit 506-1) forwards packet to first port (such as port one 12-2) of the network equipment, to pass through this grouping of first end port transmission of the network equipment.Square 558 is performed when the first example that the process of the first example that (i) divides into groups completes and (ii) divides into groups is positioned at the front end of queue at the first sequencing equipment place.
At square 560, the second example of grouping is queued up at the second sequencing equipment place.Such as, in an embodiment, the second example of grouping is queued up at sequencing unit 506-2 place.Such as, in an embodiment, the first sequencing equipment (such as sequencing unit 506-1) makes the second example divided into groups queue up at the second sequencing equipment (such as sequencing unit 506-2) place.In other embodiments, the second example of grouping is queued up at other suitable sequencing equipment places.
At square 558, the second sequencing equipment makes the second example divided into groups be transmitted.Such as, in an embodiment, the second sequencing equipment (such as sequencing unit 506-2) forwards packet to second port (such as port one 12-2) of the network equipment, to pass through this grouping of the second port transmission of the network equipment.In an embodiment, square 558 is performed when the second example that the process of the second example that (i) divides into groups completes and (ii) divides into groups is positioned at the front end of queue at the second sequencing equipment place.In an embodiment, the first port 112 and the second port one 12 are the different port in port one 12.In another embodiment, the first port 112 and the second port one 12 are the same port in port one 12.In other words, in this embodiment, the first example of grouping is transmitted by identical port one 12 with the second example of grouping.
In an embodiment, what distribute to the first packet transaction element at square 554 is the first grouping in multiple grouping, and square 554 also comprises second in the multiple groupings received at square 552 is distributed to the second packet transaction element.In an embodiment, the second grouping to be grouped in relative to first square 552 receive for receive at square 552 in the time afterwards.In an embodiment, further square 556-562 is performed to the second grouping.In an embodiment, the square 556-567 performed by the first sequencing equipment guarantees that the sequential delivery first that the network equipment receives the first grouping with the network equipment is divided into groups and the second the first example divided into groups (that is, the first example transmission before the first example of the second grouping transmits of the first grouping).In addition, the square 560-562 performed by the second sequencing equipment guarantees that the sequential delivery first that the network equipment receives the first grouping with the network equipment is divided into groups and the second the second example divided into groups (that is, the second example transmission before the second example of the second grouping transmits of the first grouping).Correspondingly, in an embodiment, the respective instance belonging to the grouping of multicast data stream is kept to be distributed between the first sequencing equipment and the second sequencing equipment.
At least some in above-mentioned various square, operation and technology can use hardware, processor to perform firmware instructions, the instruction of processor executive software or their combination and implement.When implementing within hardware, this hardware can comprise in discrete parts, integrated circuit, application ad hoc type integrated circuit (ASIC) etc. one or more.
Although with reference to being only intended to illustrative, instantiation that is that be not construed as limiting the present invention describes the present invention, but for those of ordinary skills clearly, when not deviating from the spirit and scope of the present invention, can make a change the disclosed embodiments, increase and/or deleting.

Claims (20)

1., for processing a method for grouping in the network device, described method comprises:
Receive multiple grouping in the port of the described network equipment, wherein said multiple grouping belongs to a data flow;
Described grouping is distributed between two or more packet transaction elements for the treatment of described grouping, comprises and the first packet transaction element is distributed in a grouping in described multiple grouping divide into groups for described in described first packet transaction element process;
Rank according to first example of the order of the described grouping in described data flow to described grouping at the first sequencing unit place;
In two kinds, the front end situation that the process of the first example of grouping is done and first example of (ii) described grouping is positioned at queue at described first sequencing unit place (i) described, first example of described grouping is transmitted;
Rank according to second example of the order of the described grouping in described data flow to described grouping at the second sequencing unit place; And
In two kinds, the front end situation that the process of the second example of grouping is done and second example of (ii) described grouping is positioned at queue at described second sequencing unit place (i) described, second example of described grouping is transmitted.
2. method according to claim 1, also comprises, by described first sequencing unit, the first packet ID is assigned to described grouping, wherein ranks to the first example of described grouping described first packet ID comprised being assigned to described grouping of ranking.
3. method according to claim 2, also comprises:
The first instruction that the process being sent the first example of the described grouping of instruction by described first packet transaction element has been done, and
Described instruction is stored at described first sequencing equipment place;
Wherein when described first sequencing equipment place is positioned at the front end of described queue, the first example of described grouping is transmitted to be the first instruction based on stored to carry out at the first example of described grouping.
4. method according to claim 3, the first example that wherein said first instruction comprises at least (i) described first packet ID and (ii) described grouping is not the instruction of the last example of the grouping treating to be transmitted by the described network equipment.
5. method according to claim 4, is also included in and makes after the first example of described grouping is transmitted:
By described second sequencing unit, the second packet ID is assigned to described grouping;
Described second packet ID is supplied to described first packet transaction element;
Send the second instruction by described first packet transaction element, described second instruction indicates the process of the second example of described grouping to be done; And
Described second instruction is supplied to described second sequencing unit, and wherein said second instruction comprises the second packet ID.
6. method according to claim 5, wherein,
Described first packet ID is assigned to described grouping to comprise assign described first packet ID from the pond of the non-sequential idle packet ID of described first sequencing unit this locality; And
Described second IP of packet is assigned to described grouping to comprise assign described second packet ID from the pond of the non-sequential idle packet ID of described second sequencing unit this locality.
7. method according to claim 6, wherein, makes the first example of described grouping be transmitted and comprises:
First example of described grouping is transmitted to target port, for via the first example divided into groups described in described target port transfer;
Is removed in the queue that described first packet ID is queued in wherein from described first packet ID at described first sequencing unit; And
Described first packet ID is returned to the described pond of the idle packet ID at described first sequencing unit place.
8. method according to claim 5, also be included in and make after the first example of described grouping is transmitted, sending to described second sequencing unit the request being used for described second packet ID from described first sequencing unit, wherein assigning described second packet ID by described second sequence cell response in receiving described request to perform from described first sequencing unit.
9. method according to claim 1, wherein, the first example of described grouping is queued up and comprises:
First example of described grouping is queued up in default categories queue;
By the first example assignment of described grouping to packet class; And
When the first example of described grouping arrives the front end of described default categories queue, the first example of described grouping is moved to the tail end of the queue corresponding with assigned packet class from the front end of described default categories queue.
10. method according to claim 8, wherein, queued up to comprise by first example of described grouping in described default categories queue and queued up in the default categories queue corresponding with source port by the first example of described grouping, described grouping is received via described source port by the described network equipment.
11. 1 kinds of network equipments, comprising:
Multiple network port, is configured to receive on network and transmission grouping;
Multiple packet transaction element, is configured to process the grouping received via the described network port; And
Multiple sequence, comprises at least the first sequencing unit and the second sequencing unit, and described first sequencing unit is configured to:
Multiple grouping be distributed between two or more packet transaction elements for the treatment of described grouping, wherein said multiple grouping belongs to a data flow;
First example of order to a grouping in described multiple grouping according to the described grouping in described data flow is ranked;
In two kinds, the front end situation that the process of the first example of grouping is done and first example of (ii) described grouping is positioned at queue at described first sequencing unit place (i) described, first example of described grouping is transmitted; And
According to the order of the described grouping in described data flow, the second example of described grouping is ranked at the second example place of described grouping; And
In two kinds, the front end situation that the process that wherein said second sequencing unit is configured to the second example of grouping (i) described is done and second example of (ii) described grouping is positioned at queue at described second sequencing unit place, the second example of described grouping is transmitted.
12. network equipments according to claim 11, wherein, described first sequencing unit is also configured to the first packet ID to be assigned to described grouping, and wherein ranks to the first example of described grouping described first packet ID comprised being assigned to described grouping of ranking.
13. network equipments according to claim 12, wherein, described first sequencing unit is also configured to:
Receive the first instruction from described first sequencing unit, described first instruction indicates the process of the first example of described grouping to be done;
Store described first instruction; And
When the first example that first example of grouping is positioned at described grouping (i) described is queued in the front end of described queue wherein and (ii) makes the first example of described grouping be transmitted based on stored described first instruction.
14. network equipments according to claim 13, wherein, the first example that described first instruction comprises (i) described first packet ID and (ii) described grouping not treats the instruction of the last example of the described grouping transmitted by the described network equipment.
15. network equipments according to claim 13, wherein, described first sequencing unit is configured to making after the first example of described grouping is transmitted:
To described second request of sequence unit forwards for making described second sequencing unit the second packet ID is assigned to described grouping;
Described second packet ID being assigned to described grouping by described second sequencing unit is received from described second sequencing unit; And
Described second packet ID is supplied to the packet transaction element processing described grouping.
16. network equipments according to claim 15, wherein, described packet transaction is configured to:
The second instruction that the process sending the second example of the described grouping of instruction has been done; And
Described second instruction is supplied to described second sequencing unit, and wherein said second instruction comprises described second packet ID.
17. network equipments according to claim 15, wherein,
Described first sequencing unit is configured to assign described first packet ID from the pond of the non-sequential idle packet ID of described first sequencing unit this locality; And
Described second sequencing unit is configured to assign described second packet ID from the pond of the non-sequential idle packet ID of described second sequencing unit this locality.
18. network equipments according to claim 17, wherein, described first sequencing unit is configured at least by following operation, the first example of described grouping is transmitted:
First example of described grouping is sent to target port, for from the first example divided into groups described in described target port transfer;
Is removed in the queue that described first packet ID is queued in wherein from described first packet ID at described first sequencing unit; And
Described first packet ID is returned to the described pond of the idle packet ID at described first sequencing unit place.
19. network equipments according to claim 11, wherein, packet transaction element is configured to described grouping to be assigned to packet class, and wherein said first sequencing unit is also configured to be ranked in the queue corresponding with default packet class by the first example of described grouping before described grouping is assigned to described packet class.
20. network equipments according to claim 19, wherein, described default categories queue is corresponding with source port, and described grouping is received via described source port by the described network equipment.
CN201480024303.5A 2013-03-13 2014-03-13 The method and apparatus for keeping the order of packets in parallel processing network equipment Active CN105164984B (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361780186P 2013-03-13 2013-03-13
US61/780,186 2013-03-13
US201361825223P 2013-05-20 2013-05-20
US61/825,223 2013-05-20
US14/109,479 US9276868B2 (en) 2012-12-17 2013-12-17 Maintaining packet order in a parallel processing network device
US14/109,479 2013-12-17
PCT/IB2014/000865 WO2014140822A1 (en) 2013-03-13 2014-03-13 Maintaining packet order in a parallel processing network device

Publications (2)

Publication Number Publication Date
CN105164984A true CN105164984A (en) 2015-12-16
CN105164984B CN105164984B (en) 2019-01-08

Family

ID=51535956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480024303.5A Active CN105164984B (en) 2013-03-13 2014-03-13 The method and apparatus for keeping the order of packets in parallel processing network equipment

Country Status (2)

Country Link
CN (1) CN105164984B (en)
WO (1) WO2014140822A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981456A (en) * 2017-12-27 2019-07-05 丛林网络公司 The intelligent buffer for being used to be grouped rearrangement of dummy node in network equipment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1267441A (en) * 1997-07-14 2000-09-20 诺基亚网络有限公司 Switching arrangement
CN1781079A (en) * 2003-06-11 2006-05-31 思科技术公司 Maintaining entity order with gate managers
US7924860B1 (en) * 2008-12-23 2011-04-12 Juniper Networks, Inc. Maintaining data unit order in a network switching device
US20130070584A1 (en) * 2011-09-15 2013-03-21 Michael D. Hutchison Network impairment unit for concurrent delay and packet queue impairments
CN103004158A (en) * 2011-01-06 2013-03-27 马维尔以色列(M.I.S.L)有限公司 Network device with a programmable core
US20140029449A1 (en) * 2012-07-27 2014-01-30 Cisco Technology, Inc., A Corporation Of California Investigating the Integrity of Forwarding Paths within a Packet Switching Device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8917738B2 (en) * 2009-04-27 2014-12-23 Lsi Corporation Multicasting traffic manager in a network communications processor architecture

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1267441A (en) * 1997-07-14 2000-09-20 诺基亚网络有限公司 Switching arrangement
CN1781079A (en) * 2003-06-11 2006-05-31 思科技术公司 Maintaining entity order with gate managers
US7924860B1 (en) * 2008-12-23 2011-04-12 Juniper Networks, Inc. Maintaining data unit order in a network switching device
CN103004158A (en) * 2011-01-06 2013-03-27 马维尔以色列(M.I.S.L)有限公司 Network device with a programmable core
US20130070584A1 (en) * 2011-09-15 2013-03-21 Michael D. Hutchison Network impairment unit for concurrent delay and packet queue impairments
US20140029449A1 (en) * 2012-07-27 2014-01-30 Cisco Technology, Inc., A Corporation Of California Investigating the Integrity of Forwarding Paths within a Packet Switching Device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981456A (en) * 2017-12-27 2019-07-05 丛林网络公司 The intelligent buffer for being used to be grouped rearrangement of dummy node in network equipment
CN109981456B (en) * 2017-12-27 2021-08-20 瞻博网络公司 Method and apparatus for packet reordering within a network device

Also Published As

Publication number Publication date
CN105164984B (en) 2019-01-08
WO2014140822A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
CN104885422A (en) Maintaining packet order in a parallel processing network device
US9553820B2 (en) Maintaining packet order in a parallel processing network device
CN106576064B (en) The real-time related and non real-time associated data packet distribution node of transmission, automated network and method
US8711752B2 (en) Distributed multicast packet replication with centralized quality of service
CN103339903B (en) For receiving the apparatus and method of dividing into groups with forwarding data
CN110995598B (en) Variable-length message data processing method and scheduling device
US20090262744A1 (en) Switching network
JP2008017160A (en) Packet transfer device
JP2598184B2 (en) Packet delivery device
US8706936B2 (en) Integrated circuit having a bus network, and method for the integrated circuit
JP2009260654A (en) Relaying apparatus and packet relaying method
US8761190B2 (en) Message loss prevention by using sender and receiver buffers in event-triggered distributed embedded real-time systems
US8797976B2 (en) Node, computer-readable medium storing communication program, and communication method
CN105164984A (en) Maintaining packet order in parallel processing network device
US20120265883A1 (en) Multiple overlapping block transfers
US20020080795A1 (en) Packet switching arrangement comprising a cascade control and bufferless cascade switching matrix
US20220209985A1 (en) Data transmission method, segment telegram and automation communication network
AU2018200879B2 (en) Controller coordination system
CN100403732C (en) Method for prevention of out-of-order delivery of data
US20190391856A1 (en) Synchronization of multiple queues
KR102502758B1 (en) Packet transmission device suitable for multi-core operating system
US11789792B1 (en) Message passing interface (MPI) collectives using multi-allgather
CN114185841A (en) On-chip network credit hunger control device
JP5272894B2 (en) Data search system, data search program, and transfer device
US9148377B2 (en) Method and system for transmitting data packets in a network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant