Multicast packet replication method
11658837 · 2023-05-23
Assignee
Inventors
Cpc classification
H04L49/901
ELECTRICITY
International classification
H04L49/901
ELECTRICITY
Abstract
A replication list table structure for multicast packet replication is provided. The replication list table structure includes a plurality of entries. Each one of the plurality of entries includes a first field, a second field, a third field and a fourth field. For each one of the plurality of entries, the first field is used to declare whether the entry is an end of a program execution, the second field is used to declare the fourth field as a first type field for indicating a switch how to modify a header of a multicast packet, or as a second type field for indicating the switch, while reading the list, to jump to another one of the plurality entries, and the third field is preset to the first type field for indicating the switch how to modify the header of the multicast packet.
Claims
1. A multicast packet replication method, comprising: configuring a switch to read a plurality of entries of a replication list table according to an indicator to replicate a plurality of packets respectively corresponding to a plurality of headers, each of the entries including a first field, a second field, a third field, and a fourth field, wherein for each of the entries, the first field is used only to declare whether corresponding entry is an end of a program execution, the third field is preset to a first type field for indicating the switch how to modify a header of one of the packets, the second field is used to declare the fourth field as the first type field or a second type field for indicating the switch to jump to another entry of the entries to read the another entry; and after the switch modifies the header of one of the packets according to the fourth field of a first entry of the entries, configuring the switch, in response to the first field of the first entry declaring that the first entry is not the end of the program execution, to continue to read a next entry immediately next to the first entry.
2. The multicast packet replication method according to claim 1, wherein the second field is further used to declare the fourth field as the first type field, the second type field or a third type field for indicating the switch to call a second entry of the entries to read the second entry.
3. The multicast packet replication method according to claim 2, further comprising: after the switch calls the second entry according to the fourth field of the first entry and modifies the header of one of the packets according to the fourth field of the second entry, configuring the switch, in response to the first field of the second entry declaring that the second entry is the end of the program execution, to return to read the next entry immediately next to the first entry.
4. The multicast packet replication method according to claim 3, wherein the second field is further used to declare the third field and the fourth field as the third type field and the second type field, respectively.
5. The multicast packet replication method according to claim 4, wherein, when the second field of the first entry declares the third field and the fourth field as the third type field and the second type field, respectively, the third field is used to indicate the switch to call a third entry of the entries to read the third entry, and after the switch modifies the header of at least one of the packets according to the third entry, the switch jumps to the another entry indicated by the fourth field of the first entry.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The present disclosure will become more fully understood from the following detailed description and accompanying drawings.
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS
(8) The present disclosure is more particularly described in the following examples that are intended as illustrative only since numerous modifications and variations therein will be apparent to those skilled in the art. Like numbers in the drawings indicate like components throughout the views. As used in the description herein and throughout the claims that follow, unless the context clearly dictates otherwise, the meaning of “a”, “an”, and “the” includes plural reference, and the meaning of “in” includes “in” and “on”. Titles or subtitles can be used herein for the convenience of a reader, which shall have no influence on the scope of the present disclosure.
(9) The terms used herein generally have their ordinary meanings in the art. In the case of conflict, the present document, including any definitions given herein, will prevail. The same thing can be expressed in more than one way. Alternative language and synonyms can be used for any term(s) discussed herein, and no special significance is to be placed upon whether a term is elaborated or discussed herein. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms is illustrative only, and in no way limits the scope and meaning of the present disclosure or of any exemplified term. Likewise, the present disclosure is not limited to various embodiments given herein. Numbering terms such as “first”, “second” or “third” can be used to describe various components, signals or the like, which are for distinguishing one component/signal from another one only, and are not intended to, nor should be construed to impose any substantive limitations on the components, signals or the like.
(10) Reference is made to
(11) As shown in
(12) In addition, when the output ports do not have so many packets with different headers to be sent, or there is a cancellation for a delivery of a packet with a different header, the fields of REP_ID0 and REP_ID1 can also be Null. In a word, each entry in the present embodiment can indicate modification manners for two headers at most, and compared with the existing RPL table structure, since the current entry and the next entry immediately next to the current entry can be regarded as one list, the present embodiment may not need the field of Next_ptr, but the field of End is required to declare the end of the program execution. Then, if the next entry cannot be found, the field of Mode can also declare the field of REP_ID1 as the second type field to indicate the switch, while reading the list, to jump to another entry. For example, the present embodiment uses Jump_ptr to represent, and for the convenience of the following description, the present embodiment also only uses a line with an arrow to indicate which entry that Jump_ptr indicates for the switch to jump while reading the list. Therefore, reference is made to
(13) As shown in
(14) In addition, in order to further explain operation principle of Jump_ptr,
(15) It can be seen that when more packets are to be copied for an output port, the embodiment can configure the current entry and the next entry immediately next to the current entry as one list, and can make the field of REP_ID1 as Jump_ptr to instruct the switch to jump to another entry while reading the list, therefore, compared with the existing RPL table structure, the present embodiment can save space costs caused by the field of Next_ptr. For example, when the number of replication packets is large, compared to the RPL table structure of
(16) On the other hand, in order to reduce the limitations on entry-sharing, for each one of these entries, the field of Mode can also be used to declare the field of REP_ID1 as a third type field for indicating the switch, while reading the list, to call another entry. For example, the present embodiment uses Call_ptr for representation, and for the convenience of the following description, the present embodiment also only uses a line with an arrow to indicate which entry that Call_ptr indicates for the switch while reading the list. It should be noted that Call_ptr is equivalent to “Function call” in programming, therefore, when a function ends, that is, the execution of the program ends, a return address should be a next entry immediately next to the entry calling the function. Similarly, the present embodiment only uses the field of Mode being 2 to indicate that the field of REP_ID1 is declared as the third type field, but the present disclosure is not limited thereto. Therefore, reference is made to
(17) As shown in
(18) It can be seen that, compared to the existing RPL table structure, a shared field in the present embodiment does not need to be placed at the end of the list, and each list does not need to be shared only at the end of the list. In addition, the present embodiment does not limit the field of Mode can only declare the field of REP_ID1 for other purposes. For example, for each of these entries, the field of Mode can be used to declare the fields of REP_ID0 and REP_ID1 as the third type field and the second type field, respectively. In order to facilitate the following description, the present embodiment only uses the field of Mode being 3 to indicate that the fields of REP_ID0 and REP_ID1 field are declared as the third type field and the second type field, respectively, i.e., Call_ptr and Jump_ptr, but the present disclosure is not limited thereto. Therefore, reference is made to
(19) As shown in
(20) Simply, each one of the entries of the RPL table structure can include at least one field of REP_ID, and the at least one field of REP_ID is originally used to indicate the switch how to modify the header of the multicast packet, but each one of the entries in the present embodiment further includes the field of Mode to declare the at least one field of REP_ID for other purposes. As mentioned above, according to the declaration of the field of Mode, the field of REP_ID can be used as Jump_ptr to indicate the switch to jump to another entry while reading the list, or as Call_ptr to indicate the switch to call another entry while reading the list. Since the relevant details are as described above, repeated descriptions are omitted hereinafter. In short, the present embodiment can arbitrarily combine a plurality of fields REP_ID with different uses in one entry, or a plurality of fields of REP_ID with same purpose can also be placed in one entry to achieve the packet replication that the switch completes for the output port. In addition, according to the foregoing teachings, those skilled in the art should understand that the RPL table structure of the present embodiment can omit the field of End while declare the end of program execution in other manners. For example, when the field of REP_ID is used as Jump_ptr, the present embodiment can also use Jump_ptr to direct to the current entry itself, or use Jump_ptr being “Null” to indicate the declaration of the end of the program execution, but the present declare is not limited thereto.
(21) In conclusion, the RPL table structure for multicast packet replication provided by the embodiment of the present disclosure can configure the current entry with the next entry immediately next to the current entry as one list, and can use Jump_ptr and Call_ptr to achieve entry-sharing. Therefore, compared to the existing RPL table structure, the present disclosure improves the usage efficiency of the RPL table structure, and also reduces the limitations for the entry-sharing.
(22) The foregoing description of the exemplary embodiments of the disclosure has been presented only for the purposes of illustration and description and is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Many modifications and variations are possible in light of the above teaching.
(23) The embodiments were chosen and described in order to explain the principles of the disclosure and their practical application so as to enable others skilled in the art to utilize the disclosure and various embodiments and with various modifications as are suited to the particular use contemplated. Alternative embodiments will become apparent to those skilled in the art to which the present disclosure pertains without departing from its spirit and scope.