Disclosure of Invention
The embodiment of the invention provides an equal-cost multi-path ECMP processing method and device, which are used for at least solving the problem that ECMP is more complex to realize in the related technology.
According to an embodiment of the present invention, there is provided an equal cost multi-path ECMP processing method, including: and utilizing an extended Path Computing Element Protocol (PCEP) mode to announce an ECMP associated object, wherein the ECMP associated object is a Label Switching Path (LSP) which is associated based on an equal-cost multi-path ECMP purpose.
Optionally, the notifying the ECMP associated object by extending the PCEP includes at least one of: a Path Computation Element (PCE) advertises the ECMP associated object to a Path Computation Client (PCC) by expanding the PCEP; and notifying the ECMP correlation object to a Path Computation Element (PCE) by a Path Computation Client (PCC) in a mode of expanding the PCEP.
Optionally, when the PCE is a stateful PCE, advertising, by the PCE, the ECMP association object to the PCC in a manner of extending the PCEP includes: notifying, by the PCE, an extended PCUpd message to the PCC, where the PCUpd message carries information of an ECMP associated object to be established or deleted; or the PCE advertises an extended pcinitial message to the PCC, where the pcinitial message carries information of an ECMP associated object to be established or deleted.
Optionally, the notifying, by the PCC to the PCE, the ECMP association object in a manner of extending the PCEP includes: when the PCE is a stateful PCE, the PCC advertises an expanded PCRpt message to the PCE, wherein the expanded PCRpt message carries information of an ECMP related object to be established or deleted; or when the PCE is a stateless PCE, the PCC advertises an extended PCReq message to the PCE, where the extended PCReq message carries information of an ECMP associated object to be established or deleted.
Optionally, the source addresses of two or more LSPs associated based on the ECMP destination are the same, and the destination addresses are the same.
Optionally, the type of the ECMP associated object includes a packet-by-packet type and/or a stream-by-stream type, where the packet-by-packet type is a type that specifies a percentage of a stream carried by the ECMP associated object; the per-stream type is a type specifying a relationship between streams having the same keyword and the ECMP related object.
Optionally, the keyword comprises at least one of: a stream-based source media access control, MAC, address key, a stream-based destination media access control, MAC, port number, virtual local area network identification, VLAN-ID, stream-based tag key, a stream-based source internet protocol, IP, address key, and a destination internet protocol, IP, address key.
According to another embodiment of the present invention, there is provided an equal cost multi-path ECMP processing apparatus, including: the notification module is used for notifying an ECMP associated object in a mode of an extended path computing element protocol PCEP, wherein the ECMP associated object is a Label Switching Path (LSP) which is associated based on an equivalent multi-path ECMP purpose.
Optionally, the advertisement module is applied to a path computation element PCE, and configured to advertise the ECMP-associated object to a path computation client PCC in a manner of extending the PCEP; or, the advertisement module is applied to a path computation client PCC, and configured to advertise the ECMP association object to a path computation element PCE in a manner of extending the PCEP.
Optionally, when the advertisement module is applied in a stateful PCE, the advertisement module includes: a first notification unit, configured to notify the PCC of an extended PCUpd message, where the PCUpd message carries information of an ECMP associated object to be established or deleted; or, the second notifying unit is configured to notify the PCC of an extended pcinitial message, where the pcinitial message carries information of an ECMP associated object to be established or deleted.
Optionally, when the advertisement module is applied in PCC, the advertisement module includes: a third notifying unit, configured to notify, when the PCE is a stateful PCE, an extended PCRpt message to the PCE, where the extended PCRpt message carries information of an ECMP associated object to be established or deleted; or, the fourth notifying unit is configured to notify, when the PCE is a stateless PCE, an extended PCReq message to the PCE, where the extended PCReq message carries information of an ECMP associated object to be established or deleted.
According to still another embodiment of the present invention, there is also provided a storage medium. The storage medium is arranged to store program code for performing one or a combination of the steps in the above embodiments.
According to the invention, because the ECMP related object is processed by using the extended PCEP, the ECMP related object is not required to be processed by the cooperation of two protocols of the PCEP and the NETCONF, so that the complexity of the ECMP related object processing is reduced, the problem of more complex ECMP realization in the related technology is effectively solved, and the effect of reducing the ECMP realization complexity is achieved.
Detailed Description
The invention will be described in detail hereinafter with reference to the accompanying drawings in conjunction with embodiments. It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict.
It should be noted that the terms "first," "second," and the like in the description and claims of the present invention and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order.
In this embodiment, an ECMP processing method is provided, and fig. 1 is a flowchart of a first ECMP processing method according to an embodiment of the present invention, as shown in fig. 1, where the flowchart includes the following steps:
step S102, an ECMP associated object is announced by using a PCEP mode, wherein the ECMP associated object is a Label Switching Path (LSP) which is associated based on an equal cost multi-path ECMP purpose.
The execution body for performing the above operations may be a PCE or a PCC. The above-described LSP is associated based on ECMP purposes. In this embodiment, an LSP associated based on an ECMP purpose may be associated to an LSP in an ECMP group (the ECMP may be a group that has been created in advance or a group that needs to be newly created). And a plurality of LSPs in an ECMP group are equivalent paths, that is, paths that can simultaneously carry traffic addressed to a certain destination, thereby achieving load balancing and improving link utilization. Moreover, the notification operation may include establishing (i.e., adding) the ECMP associated object in a certain ECMP associated group, or may include deleting the ECMP managed object in a certain associated group. In this embodiment, when an ECMP-related object is notified, notification of one path may be performed for one path, that is, only one LSP is notified in each notification operation, or notification may be performed simultaneously for a plurality of paths, that is, two or more LSPs are notified in each pass operation, and the same operation or different operations may be notified for different LSPs.
In the above steps, the extended PCEP is used to process the ECMP related object, so that the two protocols of PCEP and NETCONF are not required to cooperatively process the ECMP related object, thereby reducing the complexity of processing the ECMP related object, effectively solving the problem of complex ECMP implementation in the related art, and achieving the effect of reducing the complexity of ECMP implementation.
As can be seen from the above, the execution subject for performing the above operation may be a PCE or a PCC. In an optional embodiment, the notifying the ECMP associated object by extending the PCEP includes at least one of: the PCE informs the PCC of the ECMP correlation object by expanding the PCEP; the ECMP association object is advertised by the PCC to the PCE in a manner that extends PCEP as described above.
In an optional embodiment, when the PCE is a stateful PCE, advertising, by the PCE, the ECMP association object to the PCC in a PCEP extension manner includes: a PCE notifies an expanded PCUpd message to the PCC, wherein the PCUpd message carries information of an ECMP associated object to be established or deleted; or the PCE advertises an extended pcinitial message to the PCC, where the pcinitial message carries information of an ECMP associated object to be established or deleted. In this embodiment, the extended PCUpd message is used to instruct the PCC to establish or delete the ECMP associated object indicated by the extended PCUpd message, so that the PCC establishes or deletes the ECMP associated object indicated by the extended PCUpd message; the extended pcinite message is used to instruct the PCC to establish or delete the ECMP associated object indicated by the extended pcinite message, so that the PCC establishes or deletes the ECMP associated object indicated by the extended pcinite message. In this embodiment, the ECMP association object is triggered by the PCE, in this case, the PCE sends an extended PCEP protocol (in this embodiment, the extended PCEP protocol may be in the form of an extended pcadd message or an extended pcinite message), and the PCC may perform specific ECMP association object processing according to the received extended PCEP protocol. In the above embodiment, when the PCUpd message (pcinitial is also similar) carries information for deleting an ECMP associated object, a path may be deleted, and when a path is deleted, a predetermined flag bit may be set in the PCUpd message (for example, a remove bit in the PCUpd message is set to 1). In the above embodiment, the stateful PCE may establish a new LSP through the pcinitial message, and may also extend the pcinitial message to notify the ECMP association object, so as to establish a new ECMP association object for the LSP or associate the LSP with an existing ECMP association object. In the above embodiment, before the PCE advertises the message (i.e., pcadd message or pcinitial message) to the PCC, the PCC may first grant the LSP to the stateful PCE, and after the PCC grants the LSP to the stateful PCE, the stateful PCE may create a new ECMP association for the granted LSP (the ECMP association may include more than two LSPs associated based on an ECMP purpose), or add the granted LSP to the ECMP association that has been created in advance. The PCE that creates a new ECMP or adds to an existing ECMP association, which in this embodiment is embodied in a stateful state, advertises a correlation message (i.e., PCUpd message, or pcinite message) to the PCC.
In another alternative embodiment, the advertising, by the PCC to the PCE, of the ECMP association object in a manner that extends the PCEP described above includes: when the PCE is a stateful PCE, the PCC advertises an expanded PCRpt message to the PCE, wherein the expanded PCRpt message carries information of an ECMP related object to be established or deleted; establishing or deleting an ECMP associated object indicated by the extended PCRpt message; or when the PCE is a stateless PCE, the PCC advertises an extended PCReq message to the PCE, where the extended PCReq message carries information of an ECMP associated object to be established or deleted; and establishing or deleting the ECMP associated object indicated by the extended PCReq message. In this embodiment, the extended PCRpt message is used to instruct the PCE to create or delete an ECMP associated object indicated by the extended PCRpt message, so that the PCE creates or deletes the ECMP associated object indicated by the extended PCRpt message; the extended PCReq message is used to instruct the PCE to establish or delete the ECMP association object indicated by the extended PCReq message, so that the PCE establishes or deletes the ECMP association object indicated by the extended PCReq message. In the above embodiment, the ECMP associated object is triggered by the PCC, and in this case, the PCC sends the extended PCEP protocol (in this embodiment, the extended PCEP protocol may be in the form of an extended PCRpt message, or in the form of an extended PCReq message). In the above embodiment, when the PCRpt message (PCReq is also similar) carries information for deleting an ECMP associated object, a path may be deleted, and when a path is deleted, a predetermined flag bit may be set in the PCReq message.
In an optional embodiment, the source addresses of two or more LSPs associated based on the ECMP destination are the same, and the destination addresses are the same. That is, the source addresses of all LSPs included in the ECMP association are the same, and the destination addresses are also the same.
In an optional embodiment, the type of the ECMP associated object includes a packet-by-packet type and/or a stream-by-stream type, where the packet-by-packet type is a type that specifies a percentage of a stream carried by the ECMP associated object; the per-stream type is a type specifying a relationship between streams having the same keyword and the ECMP related object.
In an alternative embodiment, the keywords include at least one of: a stream-based key of a source Media Access Control (MAC) address, a stream-based key of a destination MAC address, a stream-based key of a port number, a stream-based key of a Virtual Local Area Network-identity (VLAN-ID), a stream-based key of a tag, a stream-based key of a source IP address, and a destination IP address.
The invention is illustrated below with reference to specific examples:
detailed description of the preferred embodiment
In this embodiment, in a stateful PCE scenario, the PCC actively establishes and deletes an LSP.
Fig. 2 is a network connection diagram of PCEs according to an embodiment of the present invention, in fig. 2, a Node1 Node may be regarded as a PCC, and the PCC and PCE may interact through an advertisement PCEP protocol, where three LSPs exist between the same source and destination: LSP1(Node1-Node2-Node3-Node8), LSP2(Node1-Node4-Node5-Node3-Node8) and LSP3(Node1-Node2-Node6-Node7-Node 8).
In this embodiment, the PC report message is extended to carry the ECMP related object, and the format of the extended PC report message may be:
the ECMP related objects include packet-by-packet sub-objects and stream-by-stream sub-objects.
In this embodiment, a method for implementing ECMP by extending PCEP protocol is provided, and fig. 3 is a flowchart of an implementation according to a first embodiment of the present invention; as shown in fig. 3, the flow includes the following steps S302 to S304:
step 302: the PCC sends a PCRpt Message (i.e., PCRpt Message) carrying the ECMP associated object to the PCE.
In this embodiment (which is also applicable in other embodiments), the method for determining the ECMP related object may be: the utilization rate of the existing LSP is too high, and in order to ensure the service quality of a user, a new LSP or a plurality of LSPs can be triggered to be established to form an ECMP associated object with the existing LSP. Therefore, under the condition that the original service flow is not changed, the bandwidth utilization rate of the previous LSP and the bandwidth utilization rate of the previous link can be reduced, and the flow of the whole network is ensured to be more balanced.
As shown in fig. 2, Node1 sends an association object carrying ECMP to PCE (see format in fig. 4), and ECMP associates sub-objects packet by packet (see format in fig. 5), where FC per represents the percentage of traffic carried by each LSP, for example, LSP 140%, LSP 230%, and LSP 330% may be specified (it should be noted that the percentage of traffic carried by each path may be set according to actual conditions (link capability, load condition, etc.).
When the controller finds that the bandwidth utilization of LSP1 exceeds a predetermined threshold, it will offload a portion of the traffic to other LSPs by modifying the percentage of all LSP bearer traffic in the ECMP object. For example, the load sharing ratio of LSP1 in the ECMP object is adjusted to 30%, LSP2 is increased to 40%, and LSP3 is still 30%.
LSP1, LSP2, and LSP3 become an ECMP association.
Step 304: and the PCE stores and updates the ECMP association relationship reported by the PCC.
The second embodiment is as follows:
fig. 6 is an implementation flowchart of a second embodiment of a method for implementing ECMP by extending PCEP protocol according to an embodiment of the present invention, and as shown in fig. 6, the flowchart includes the following steps S602 to S604:
step 602: the PCC sends a PCRpt Message (i.e., PCRpt Message) carrying an ECMP associated object to the PCE, and sets the R bit in the associated object to 1.
As shown in fig. 2, Node1 sends a carry ECMP association object (format see fig. 4) to PCE, and ECMP associates sub-objects packet by packet (format see fig. 5).
The format of the PC report message of the ECMP associated object sent in this embodiment is the same as that in the first embodiment, and will not be described here. Here, setting the R bit in the ECMP association object to 1 only indicates deleting the ECMP association relationship of this LSP.
Step 604: and the PCE deletes the ECMP association relationship reported by the PCC.
The third concrete embodiment:
in this embodiment, under a scenario where a stateful PCE actively establishes and deletes an LSP. In the scenario, the PCE issues LSP creation or deletion to the PCC through a pcinitial message.
In this embodiment, the pcinitial message is extended to issue the ECMP association, and the extended pcinitial message may be:
in this embodiment, a method for implementing ECMP by extending PCEP protocol is provided, and fig. 7 is a flowchart of a method for implementing ECMP by extending PCEP protocol according to a third embodiment of the present invention, as shown in fig. 7, the flowchart includes the following steps S702 to S704:
step 702: the PCE issues LSP creation to the PCC through the PCInitiate message, and simultaneously carries an ECMP associated object.
The ECMP associated object is carried in the PCInitiate message and is used for creating or updating an ECMP associated relation.
As shown in fig. 2, PCE sends a carrying ECMP association object (format see fig. 4) to Node1, and ECMP associates sub-objects (format see fig. 8) stream by stream, where FS represents a key of a stream, and when a bit is 1, this field is a key of a stream.
LSP1, LSP2, and LSP3 become an ECMP association.
Step 704: the PCC maintains or updates ECMP associations and advertises its effective ECMP relationships by sending PC report messages.
The present embodiment only involves the PCE creating or updating ECMP associations for LSPs. If the PCE wants to actively delete the ECMP association relationship of the LSP, the R bit position in the PC initial message issued by the PCE indicates that the LSP (PLSP-ID) is to be deleted, and at the same time, the R bit position in the ECMP association object needs to be set to 1, indicating that the ECMP association relationship of the LSP is deleted.
The fourth concrete embodiment:
the embodiment is a method for implementing an ECMP association relationship in a stateless PCE.
In this embodiment, the PCReq message is extended to issue an ECMP association relationship, and the extended PCReq message may be:
in this embodiment, a method for implementing ECMP by extending PCEP protocol is provided, and fig. 9 is a flowchart of a method for implementing ECMP by extending PCEP protocol according to a fourth embodiment of the present invention, as shown in fig. 9, the flowchart includes the following steps S902 to S904:
step 902: the PCC sends a PCReq Message (i.e., a PCReq Message) carrying an ECMP association object to the PCE.
As shown in fig. 2, Node1 sends a carry ECMP association object (format see fig. 4) to PCE, and ECMP associates sub-objects packet by packet (format see fig. 5).
Step 904: and the PCE stores and updates the ECMP association relationship reported by the PCC.
Through the above description of the embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware, but the former is a better implementation mode in many cases. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a storage medium (e.g., ROM/RAM, magnetic disk, optical disk) and includes instructions for enabling a terminal device (e.g., a mobile phone, a computer, a server, or a network device) to execute the method according to the embodiments of the present invention.
In this embodiment, an ECMP processing apparatus is further provided, and the ECMP processing apparatus is used for implementing the foregoing embodiments and preferred embodiments, and the description of the ECMP processing apparatus is omitted. As used below, the term "module" may be a combination of software and/or hardware that implements a predetermined function. Although the means described in the embodiments below are preferably implemented in software, an implementation in hardware, or a combination of software and hardware is also possible and contemplated.
Fig. 10 is a block diagram of an ECMP processing apparatus according to an embodiment of the present invention, and as shown in fig. 10, the ECMP processing apparatus includes an announcement module 102, and the ECMP processing apparatus is described as follows:
the notifying module 102 is configured to notify an ECMP associated object in a PCEP (extended path computing element protocol), where the ECMP associated object is a label switched path LSP associated based on an equal-cost multi-path ECMP purpose.
In an optional embodiment, the advertisement module 102 may be applied in a path computation element PCE, and is configured to advertise an ECMP association object to a path computation client PCC by extending the PCEP; alternatively, the advertisement module 102 is applied to a path computation client PCC, and configured to advertise an ECMP association object to a path computation element PCE by extending the PCEP.
Fig. 11 is a first structural block diagram of the advertisement module 102 in the ECMP processing apparatus according to the embodiment of the present invention, and as shown in fig. 11, when the advertisement module 102 is applied to a stateful path computation element PCE, the advertisement module 102 includes a first advertisement unit 112 or a second advertisement unit 114, and the following describes the advertisement module 102:
a first notifying unit 112, configured to notify the PCC of an extended PCUpd message, where the PCUpd message carries information of an ECMP associated object to be established or deleted;
a second notifying unit 114, configured to notify the PCC of an extended pcinitial message, where the pcinitial message carries information of an ECMP associated object to be established or deleted.
Fig. 12 is a block diagram of a structure of a notification module 102 in an ECMP processing apparatus according to an embodiment of the present invention, as shown in fig. 12, the notification module 102 includes a third notification unit 122 or a fourth notification unit 124, and the notification module 102 is described as follows:
a third notifying unit 122, configured to notify, when the PCE is a stateful PCE, an extended PCRpt message to the PCE, where the extended PCRpt message carries information of an ECMP associated object to be established or deleted;
a fourth notifying unit 124, configured to notify an extended PCReq message to the PCE when the PCE is a stateless path computation element PCE, where the extended PCReq message carries information of an ECMP associated object to be established or deleted.
In an optional embodiment, the source addresses of two or more LSPs associated based on the ECMP destination are the same, and the destination addresses of the two or more LSPs are the same. That is, the source addresses of all LSPs included in the ECMP-associated object are the same, and the destination addresses are also the same.
In an optional embodiment, the type of the ECMP associated object includes a packet-by-packet type and/or a stream-by-stream type, where the packet-by-packet type is a type that specifies a percentage of a stream carried by the ECMP associated object; the per-stream type is a type specifying a relationship between streams having the same keyword and the ECMP related object.
In an alternative embodiment, the keywords include at least one of: a stream-based key of a source Media Access Control (MAC) address, a stream-based key of a destination MAC address, a stream-based key of a port number, a stream-based key of a Virtual Local Area Network-identity (VLAN-ID), a stream-based key of a tag, a stream-based key of a source IP address, and a destination IP address.
It should be noted that, the above modules may be implemented by software or hardware, and for the latter, the following may be implemented, but not limited to: the modules are all positioned in the same processor; alternatively, the modules are respectively located in different processors in any combination.
The embodiment of the invention also provides a storage medium. Alternatively, in the present embodiment, the storage medium may be configured to store program codes for performing one or a combination of the steps in the above embodiments.
Optionally, in this embodiment, the storage medium may include, but is not limited to: various media capable of storing program codes, such as a usb disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic disk, or an optical disk.
Optionally, in this embodiment, the processor executes one or a combination of the steps in the above embodiments according to the program code stored in the storage medium.
Optionally, the specific examples in this embodiment may refer to the examples described in the above embodiments and optional implementation manners, and this embodiment is not described herein again.
It will be apparent to those skilled in the art that the modules or steps of the present invention described above may be implemented by a general purpose computing device, they may be centralized on a single computing device or distributed across a network of multiple computing devices, and alternatively, they may be implemented by program code executable by a computing device, such that they may be stored in a storage device and executed by a computing device, and in some cases, the steps shown or described may be performed in an order different than that described herein, or they may be separately fabricated into individual integrated circuit modules, or multiple ones of them may be fabricated into a single integrated circuit module. Thus, the present invention is not limited to any specific combination of hardware and software.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.