PACKET PROCESSING TECHNIQUE FOR A COMMUNICATION NETWORK
20170264556 · 2017-09-14
Assignee
Inventors
Cpc classification
H04L47/283
ELECTRICITY
H04L47/34
ELECTRICITY
H04L47/32
ELECTRICITY
International classification
Abstract
A method performed by a network element that transfers first and second packet flows of the same traffic handling class comprises the step of receiving, from a network controller, information defining a relative forwarding order between first and second packet flow packets. Upon receipt, at least one ingress port of the network element, of a first and a second packet, determining that the first packet belongs to the first packet flow and the second packet to the second packet flow. The first and second packets will then be forwarded towards at least one egress port of the network element in an order defined by the information received from the network controller.
Claims
1. A method of processing packets by a network element that transfers first and second packet flows of the same traffic handling class, comprising: receiving, from a network controller, information defining a relative forwarding order between first and second packet flow packets; receiving, at least one ingress port of the network element, a first and a second packet; determining that the first packet belongs to the first packet flow and that the second packet belongs to the second packet flow; and forwarding the first and second packets towards at least one egress port of the network element in an order defined by the received information.
2. The method of claim 1, wherein the relative forwarding order is defined by at least one delay for at least one of the first and the second packet flows; and the method further comprising applying the at least one delay to at least one of the first and second packets prior to the forwarding step.
3. The method of claim 2, wherein the network element is located at an edge of a transport network domain and wherein the delay is applied to control an entry order of the first and second packets into the transport network domain.
4. The method of claim 1, wherein the relative forwarding order is defined such that it controls the forwarding of the first and second packets in accordance with a timing scheme.
5. The method of claim 4, wherein the timing scheme is used to define ordered time slots for the first and second packets.
6. The method of claim 5, wherein the method is performed by multiple network elements in a communication network and wherein the multiple network elements all apply the same time slot order for the first and second packets.
7. The method of claim 1, wherein each of the first and second packet flows is a constant bitrate flow.
8. The method of claim 7, wherein the first and second packet flows have a respective bitrate that equals or is a multiple of a common base bitrate.
9. The method of claim 1, wherein arrival times of the first and second packets at the network element are deterministic from the perspective of at least one of the network element and the network controller.
10. The method of claim 1, wherein the first and second packets are both received within a time interval that is smaller than a temporal extension of at least one the first and second packets.
11. The method of claim 1, wherein the network element has at least two ingress ports; and wherein the first and second packets are received via different ingress ports.
12. The method of claim 1, wherein the first and second packets are received via a single ingress port and encapsulated in a single data transport entity and/or with a common identifier.
13. The method of claim 1, wherein the first and second packets are forwarded to the same egress port.
14. The method of claim 1, wherein two or more different traffic handling class levels are defined, and wherein the first and second packet flows belong to different traffic handling classes on a lower class level and to the same traffic handling class on a higher class level.
15. The method of claim 1, wherein at least one third packet flow having no traffic handling classification or a lower traffic handling classification than the first and second packet flows is transferred by the network element, and the method further comprising: receiving a third packet at the at least one ingress port; determining that the third packet belongs to the third packet flow; and performing at least one of the following steps: preventing a forwarding of the third packet to the egress port until the first and second packets have been forwarded to the egress port; and preventing a transmission of the third packet via the egress port until the first and second packets have been transmitted via the egress port.
16. The method of claim 15, wherein the third packet is prevented from being forwarded to the egress port or from being transmitted via the egress port by prioritizing the forwarding or transmission of the first and second packets in accordance with a technique defined in at least one of IEEE 802.1Qbv, IEEE 802.1Qbu and IEEE 802.3br.
17. The method of claim 1, wherein the packet flows constitute Ethernet layer traffic.
18. A method of controlling packet processing by a network element that transfers first and second packet flows of the same traffic handling class, the method being performed by a network controller and the method comprising: determining information defining a relative forwarding order between the first and second packet flow packets; and sending the information to at least one network element having at least one packet ingress port and at least one packet egress port, wherein the information is configured to program the relative order in which the network element forwards to the egress port individual packets of the first and second packet flows received via the ingress port.
19. The method of claim 18, wherein information defining the relative forwarding order is sent to multiple network elements to define the same packet order throughout a communication network.
20. The method of claim 18, wherein the relative forwarding order is defined by at least one delay for at least one of the first and the second packet flow packets.
21. The method of claim 20, further comprising calculating the at least one delay based on at least one of: a residence time of the first and second packet flow packets in the network element; and one or more link delays between one or more upstream network elements sending the packets and the receiving network element.
22. The method of claim 20, further comprising calculating the at least one delay based on at least one of: a bitrate underlying at least one of the first and second packet flows; and a packet sending time of one or more upstream network elements sending the packets.
23. The method of claim 20, wherein the receiving network element is located at an edge of a transport network domain and the upstream network element is located outside the transport network domain and directly interfaces the receiving network element.
24. A computer program product comprising program code portions to perform the method of claim 18 when the computer program product is executed by one or more processors.
25. The computer program product of claim 24, stored on a non-transitory computer-readable recording medium.
26. A network element configured to transfer first and second packet flows of the same traffic handling class, comprising: an interface configured to receive, from a network controller, information defining a relative forwarding order between first and second packet flow packets; at least one ingress port configured to receive a first and a second packet; and a processor configured to determine that the first packet belongs to the first packet flow and that the second packet belongs to the second packet flow and to forward the first and second packets towards the at least one egress port of the network element in an order defined by the received information.
27. The network element of claim 26, wherein the network element is a Layer 2 network bridge.
28. The network element of claim 26, wherein the network element is an edge node of a transport network domain.
29. (canceled)
30. A network controller configured to control packet processing by a network element that transfers first and second packet flows of the same traffic handling class, comprising: a processor configured to determine information defining a relative forwarding order between the first and second packet flow packets; and an interface configured to send the information to at least one network element having at least one packet ingress port and at least one packet egress port, wherein the information is configured to program the relative order in which the network element forwards to the egress port individual packets of the first and second packet flows received via the ingress port.
31. The network controller of claim 30, wherein the network controller is implemented as controlling entity of a Software Defined Network (SDNc).
32.-34. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0038] In the following, embodiments and exemplary aspects of the present disclosure will be described in more detail with reference to the drawings, in which:
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
DETAILED DESCRIPTION
[0048] In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular network protocols and particular network elements, in order to provide a thorough understanding of the present disclosure. It will be apparent to one skilled in the art that the present disclosure may be practiced in other embodiments that depart from these particular details.
[0049] Those skilled in the art will further appreciate that the functions, steps and services described herein may be implemented using individual hardware circuitry, using software functioning in conjunction with a programmed processor or general purpose computer, using an Application Specific Integrated Circuit (ASIC), and/or using one or more Digital Signal Processors (DSPs). It will also be appreciated that while the present disclosure is primarily described in the context of methods and devices, it may also be embodied in one or more processors and one or more memories coupled to the one or more processors, wherein the one or more memories are encoded with one or more programs that, when executed on the one or more processors, perform the functions, steps and services disclosed herein.
[0050]
[0051] The network controller 10 of
[0052] In a similar manner, each network element 20 comprises a processor 22, an interface 24 and a memory 26. The interface 24 is configured for communication with the network controller 10. The memory 26 stores program code that, when executed by the processor 22, configures the network element 20 to implement the methods and method aspects of the present disclosure.
[0053] As illustrated in
[0054]
[0055] As illustrated in
[0056]
[0057] The method embodiments generally target at avoiding race conditions among ingress packet flows of the same traffic handling class. This traffic handling class may in particular be a prioritising, or express, class that prioritizes time critical traffic in the communication network 100 over other (“background”) traffic having less time critical constraints. As an example, the time critical traffic can be fronthaul traffic between one or more items of radio equipment and one or more radio equipment controllers. In such a scenario, the one or more network elements 20 illustrated in
[0058] As shown in
[0059] The relative forwarding order may be defined by a delay for at least one of the packet flows. In case of n packet flows handled by an individual network element 20, at least n−1 delays may be defined. The information defining the relative forwarding order may be determined individually for each network element 20. In such a case, different delays for the same packet flow may be defined for different network elements.
[0060] The information defining the relative forwarding order may be calculated by the network controller 10 based on information derived from the communication network 100 (e.g., via measurements). The calculation may be based on one or more of a residence time of an individual packet in an individual network element 20, one or more link delays between an individual network element 20 and, for example, a network element upstream of the network element 20 sending the packets, a bitrate underlying the packet flows, and an absolute or relative packet sending time of the one or more upstream network elements.
[0061] Once the information has been determined in step 202, it is sent in step 204 by the network controller 10 to one or more of the network elements 20 to program same. With respect to
[0062] Referring now to the method performed by the network element 20, the information sent by the network controller 10 in step 204 is received by an individual network element 20 in step 206. As shown in
[0063] In a further step 208, packets belonging to different packet flows are received via the one or more ingress ports 26 of the network element 20. The packets of different packet flows may be received encapsulated in a single data transport entity (such as a higher-level packet). Alternatively, or in addition, the packets of different packet flows may be identified by a common identifier, such as a common ingress port identifier or VID.
[0064] Step 208 and step 206 can be performed in any order. Typically, step 206 will precede step 208, but step 206 may be repeated multiple times while step 208 is continuously performed.
[0065] In a further step 210, the processor 22 of the network element 20 determines that a first one of the received packets belongs to a first packet flow and that a second one of the received packets belongs to a second packet flow. Step 210 can be performed in many different ways. For example, each packet may carry an identifier of a particular packet flow (e.g., in a header portion). The association between received packets and associated packet flows could thus be performed on the basis of such packet flow identifiers.
[0066] In a further step 212, the processor 22 of the network element 20 forwards the first and second packets to the one or more egress ports 30 in an order defined by the information received in step 206. The corresponding ordering in step 212 may be performed by selectively delaying the first and the second packets in accordance with the information received in step 206. As such, a delay communicated in the information received in step 206 may be applied to at least one of the first and the second packets to consistently achieve a predefined forwarding order. In this manner, race conditions with an unpredictable packet forwarding order can be avoided.
[0067] In an optional further step 214, the processor 22 applies egress processing to the packets forwarded to the one or more egress ports 30 (e.g., packet queuing) and controls a transmission of the packets (e.g., from one or more queues) via the one or more egress ports 30 to the next component in the communication network 100.
[0068]
[0069] In step 216, the network element 20 receives first and second packets of first and second packet flows of the same (e.g., higher-level) traffic handling class. In step 218, the network element 20 receives a third packet of a third packet flow of no dedicated traffic handling class or of a lower-level traffic handling class. It will be appreciated that steps 216 and 218 can be performed in parallel.
[0070] Then, in step 220, transmission of the third packet is prevented until the first and second packets have been transmitted. The operation illustrated in
[0071] On the other hand, the third packet of the third packet flow received in step 218 may bypass any packet delay operation performed with respect to the first and second packets in step 212 of
[0072] In certain variants, the network element 20 illustrated in
[0073] Additionally, the full communication network or the relevant packet transfer components therein may be programmed by the network controller 10 such that when a packet of the time critical packet flow is received by a given network element, it will be served and transmitted without unnecessary delay (e.g., without suffering queuing delay). In other words, time critical packet flows may be prioritized over background packet flows. As discussed above with reference to
[0074] It has been found that the technique presented herein is particularly beneficial in connection with constant bitrate flows having bitrates that equal or are multiples of a common base bitrate. In such a case the packet arrival times for an individual packet flow and the relative packet arrival times across multiple packet flows become deterministic. Thus, application of a dedicated delay on packets of a particular packet flow may be sufficient to avoid race conditions. Of course, the corresponding delay may not only be based on the current (constant) bitrate of an individual packet flow, but could additionally take into account one or more of packet residence times at network elements, link delays and packet sending times as explained above.
[0075] The relative forwarding order may be defined (e.g., via the delays) such that it controls the forwarding of the packets in accordance with a timing scheme that is locally applied at the network element 20 or on a more scope (e.g., across a larger set of network elements 20). That timing scheme may be used to define ordered time slots for the transmission of packets from different packet flows. In particular, for each packet flow of the particular traffic handling class (e.g., the Ethernet express traffic class) a dedicated time slot may be reserved by each network element 20. In certain variants, the same time slot order for the packet flows of the same traffic handling class is applied across multiple network elements 20. The time slot concept thus particularly benefits from the packet flows being constant bitrate flows that have been derived from a common base bitrate as explained above.
[0076] It will be appreciated that the packet ordering operation may result in a certain additional delay for packets of an individual packet flow. On the other hand, PDV for all packet flows can be substantially reduced, and the PDV requirements of time critical applications are typically much more stringent than the associated delay requirements. As such, the network elements 20 can handle incoming time critical traffic (e.g., CPRI traffic) with minimal efforts in terms of de-jittering (as typically required to reduce PDV) and buffering. As such, no further latency is added to packet transport.
[0077] Additionally, the technique presented herein can easily be combined with traffic prioritization schemes such as one or more of IEEE 802.1Qbv, IEEE 802.1Qbu and IEEE 802.3br (that per se could not protect one time critical packet flow from another time critical packet flow). As such, also the impact of background packet flows on time critical packet flows can be reduced.
[0078] In the following description of further embodiments of the present disclosure, that are partially based on the embodiments discussed above with reference to the
[0079]
[0080] In the scenario illustrated in
[0081] Packet processing by the network elements S1 to S7 is controlled by a central network controller which, in the present embodiment, takes the form of a Software Defined Network controller (SDNc) 10. The SDNc 10 as well as the network elements S1 to S7 (denoted by reference numeral 20 in
[0082] Depending on the use case, only the network elements at an edge of the transport network domain may need to be programmed, or each network element of the transport network domain. In the examples described below with reference to
[0083] Each RRU generates a similar CPRI packet flow (e.g., they have the same constant bitrate). Moreover, it will be assumed that each packet flow is encapsulated in Ethernet frames having the same size. These assumptions simplify the usage of time slots as they can also have the same size. However, these are optional features.
[0084] It should be noted that an Ethernet network is an asynchronous network, so that, for example, the start time of a particular time slot is not bound to an explicit point in time but is relative to other time slots. As understood herein, a time slot corresponds to a particular time interval for packet forwarding towards one or more egress ports. A time slot may immediately be followed by another time slot, or a guard interval may be provided between two succeeding time slots (e.g., to guard against timing inaccuracies in the communication network 300).
[0085] The network topology illustrated in
[0086] Each of the network elements S1 to S7 comprises one or more ingress ports as well as one more egress ports (see also
[0087] The links depicted in
[0088] In the following, the occurrence of an exemplary racing situation between packets of two different packet flows from RRU1 and RRU2, respectively, at network element S1 will be explained with reference to the schematic time diagram of
[0089] In the scenario of
[0090] To avoid the racing situation illustrated in
[0091] The ingress delays are determined on a per ingress port basis by the SDNc 10 as illustrated in the flow chart 500 of
[0092] At an initial step 502, the SDNc 10 waits for a change in the communication network of
[0093] In step 506, the ingress delays to be applied at the ingress ports of the network elements S1 to S7 are calculated per traffic flow. Step 506 generally corresponds to step 202 in
[0094] The programming in step 508 is performed such that the ingress delay of a particular ingress port is set for a particular packet flow such that the packet order of different packet flows of the same traffic handling class (and, optionally, the relative time difference) are assured to remain always the same at the particular network element S1 to S7. For example, the “cross-hatch” packets of RRU2 are forwarded such that they are always transmitted before the “web” packets of RRU1 by egress port p13 of network element S1 as shown in
[0095] The ingress delays may be programmed on the network elements S1, S2, S7 at the edge of the transport network domain (i.e., the first hop nodes) such that a “train of packets” is formed if flows of two or more RRUs are aggregated (see the train of packets transmitted by egress port p13 of network element S1). By using ordered time slots it can be assured that packets of a particular packet flow (from one of the RRUs or DUs) always take the same place within the train output by a particular egress port, which may apply to each egress port of the transport network domain.
[0096]
[0097] As shown in
[0098] If the one or more selection criteria are found to be met, the method proceeds to step 606 and delays the received packet by a pre-defined time interval t.sub.d before continuing with step 608. The ingress delay t.sub.d generally means that if a packet is received, then its further processing in each of the network elements S1 to S7 starts only after it has been delayed by t.sub.d. Step 606 generally corresponds to aspects of step 212 in
[0099] In step 608, the packet is forwarded towards the egress port. As an example, the packet may be placed in a transmission queue on the egress side of the corresponding network element S1 to S7. Step 608 generally corresponds to aspects of step 212 and, optionally, step 214 of
[0100] Ingress delays can be used on all ingress ports (UNI ports and Ethernet transport internal trunks). Additional approaches such as IEEE 802.1Qbv, IEEE 802.1Qbu and IEEE 802.3br can be used to ensure that time critical packets can be transported over the respective network element S1 to S7 without any (further) delay and that packets belonging to time critical traffic take preference over background traffic.
[0101] As explained above, the ingress delay may be used to “push” each received packet to its dedicated position within set of ordered time slots. As such, the arrival time of the packets at the next network element (i.e., S3 and S5 in
[0102] In the following, the advantages achievable using the ingress delay mechanism described above will be explained in more detail with reference to the exemplary communication network of
[0103] In the scenario illustrated in
[0104] As explained above, the delays are set by the SDNc 10 taking into account the characteristics of the packet flows and certain network parameters. For example, if the RRUs have constant bitrate packet flows and they send the packets at the same time, then the value to be used for the ingress delay at a particular ingress port depends—in the scenario of
[0105] Thus, the delay values di11 and di12 may be set to achieve order time slots as illustrated in the upper portion of
[0106]
[0107] Network element S3 aggregates six time critical packet flows, but forwards the packet flows to different egress ports. That is, five packet flows are forwarded to egress port p34, while one packet flow is forwarded to egress port p33.
[0108] Initially, network element S3 receives the already ordered packets of RRU2 and RRU1 at ingress port p31 (see also
[0109] Due to the packet ordering discussed with reference to
[0110] It should be noted that depending on the traffic situation, the packets need not necessarily build trains inside the communication network. For example, in the scenario of
[0111] As has become apparent from the above description of exemplary embodiment, the disclosure presented herein can be used to minimize PDV of packet flows of the same traffic handling class by defining a relative order between individual packet flow packets. If desired, the packet flows may be mapped to time slots using an ingress delay mechanism. The use of time slots may be helpful to create trains of packets with a consistent packet order in terms of the associated packet flows.
[0112] While the present disclosure has been described in relation to exemplary embodiments, it is to be understood that this disclosure is only illustrative. Accordingly, it is intended that the invention be limited only by the scope of the claims appended hereto.