Data packet transmission, management method, device, data forwarding equipment, storage medium
By recording the SPI, SI and SFL option TLV mapping relationships of data packets in the data plane management table, the problem that the switching chip does not support storing data packets' universal network virtualization encapsulation information is solved, and the data packets can be encapsulated again after SF processing is completed.
Patent Information
- Application Number
- CN201910365452.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-04-30
- Publication Date
- 2025-04-29
- Estimated Expiration
- 2039-07-05
AI Technical Summary
The switch's switching chip does not support the storage of information related to the general network virtualization encapsulation, which causes the SF-processed data packets cannot be encapsulated again due to SFP.
The original encapsulated information of the data packet is obtained by receiving and analyzing it on the data surface and reporting it to the control surface. New instructions are added to the posting entry under the control surface, adding SPI, SI and SFL option TLV as a table entry to the data surface management table to record the mapping relationship between SPI, SI and SFL option TLV of the data packet.
It realizes that after the packet is processed by SF, it can be packaged again in a general network virtualization manner, avoiding the packaging failure caused by the switching chip that does not support the SFL option TLV and SPI mapping relationship that directly stores data packets.
Smart Images

Figure CN111857945B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communications, and in particular to a data packet transmission and management method, device, data forwarding equipment, and storage medium. Background Art
[0002] Geneve (Generic Network Virtualization Encapsulation) of the data packet can carry SFP (Service function path) information and NSH (Network service header) in the data packet. Among them, NSH encapsulation will include SPI (Service path identifier) and SI (Service index).
[0003] When a data packet is forwarded between SFFs (service function forwarders), after an SFF receives a data packet from another SFF, it needs to first remove the Geneve tunnel header and SFL Option TLV (service function list option triplet) of the data packet, that is, it will strip off the SFP information carried by the data packet, and then transmit it to the corresponding SF (Service Function) for processing. After the SF processes the data packet, it will transmit the processed data packet to the SFF, allowing the SFF to perform universal network virtualization encapsulation on the data packet. When the SFF performs universal network virtualization encapsulation on the data packet, it needs the SPI, SFP information and current SI of the data packet. However, the current general-purpose ASIC (Application Specific Integrated Circuit) switching chips and languages that support programmable switching chips (such as P4 and NPL) do not support the switching chips to directly store information related to the general network virtualization encapsulation of data packets. That is, when the SFF strips the SFP information of a data packet, the switching chip cannot record the SFP information corresponding to the data packet, which results in the inability to obtain the SFP information corresponding to the data packet when the data packet is generated, thereby failing to generate the data packet. Summary of the invention
[0004] The data packet transmission and management method, device, data forwarding equipment, and storage medium provided in the embodiments of the present invention mainly solve the technical problem that the switching chip of the switch does not support the storage of information related to the data packet and the general network virtualization encapsulation, resulting in the data packet processed by SF being stripped due to SFP and unable to be encapsulated for general network virtualization again.
[0005] In order to solve the above technical problems, an embodiment of the present invention provides a data packet transmission method, comprising:
[0006] Receive and parse the data packet to obtain the original encapsulation information of the data packet, which includes SPI, service index SI and SFL option TLV;
[0007] Report the parsed original encapsulation information to the control plane;
[0008] Receive the table entry addition instruction issued by the control plane, and add the SPI, SI and SFL option TLV corresponding to the original encapsulation information as a table entry to the data plane management table according to the table entry addition instruction. The data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keywords;
[0009] When receiving a target data packet sent by the service function SF, query the data plane management table according to the SPI and SI carried by the target data packet to determine the SFL option TLV corresponding to the target data packet;
[0010] The target data packet is encapsulated according to the SFL option TLV obtained by the query and the target data packet is transmitted.
[0011] The embodiment of the present invention also provides a data packet transmission management method, including:
[0012] Receive the original encapsulation information of the data packet reported by the data plane, including SPI, SI and SFL optionTLV;
[0013] The interface of the data plane is called to issue a table entry addition instruction to the data plane. The table entry addition instruction is used to control the data plane to add a table entry corresponding to the original encapsulation information in the data plane management table. The data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keywords.
[0014] The embodiment of the present invention further provides a data packet transmission device, the data packet transmission device comprising:
[0015] A receiving and parsing module is used to receive and parse a data packet to obtain the original encapsulation information of the data packet, where the original encapsulation information includes SPI, SI and SFL option TLV;
[0016] The information upload module reports the parsed original packaged information to the control plane;
[0017] A table entry adding module is used to receive a table entry adding instruction issued by the control plane, and add the SPI, SI and SFL option TLV corresponding to the original encapsulation information as a table entry to the data plane management table according to the table entry adding instruction. The data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keywords;
[0018] The information query module is used to query the data plane management table according to the SPI and SI carried by the target data packet when receiving the target data packet sent by the service function SF, and determine the SFL option TLV corresponding to the target data packet;
[0019] The encapsulation and transmission module is used to encapsulate the target data packet according to the SFL option TLV obtained by query and transmit the target data packet.
[0020] The embodiment of the present invention further provides a data packet transmission management device, the data packet transmission management device comprising:
[0021] An information receiving module, used to receive the original encapsulation information of the data packet reported by the data plane, the original encapsulation information including SPI, SI and SFL option TLV;
[0022] The instruction sending module is used to call the interface of the data plane to issue an entry addition instruction to the data plane. The entry addition instruction is used to control the data plane to add a table entry corresponding to the original encapsulation information in the data plane management table. The data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keyword.
[0023] An embodiment of the present invention further provides a data forwarding device, including a processor, a memory and a communication bus;
[0024] The communication bus is used to realize the connection and communication between the processor and the memory;
[0025] The processor is used to execute the data packet transmission program stored in the memory to implement the steps of the above-mentioned data packet transmission method, or the processor is used to execute the data packet transmission program stored in the memory to implement the steps of the above-mentioned data packet transmission management method.
[0026] An embodiment of the present invention also provides a storage medium, characterized in that the storage medium stores at least one of a data packet transmission program and a data packet transmission management program, the data packet transmission program can be executed by one or more processors to implement the steps of the above-mentioned data packet transmission method; the data packet transmission management program can be executed by one or more processors to implement the steps of the above-mentioned data packet transmission management method.
[0027] The beneficial effects of the present invention are:
[0028] The data packet transmission and management method, device, data forwarding device, and storage medium provided by the embodiment of the present invention are aimed at the problem that the chip in the related technology does not support direct storage of information related to the Geneve of the data packet, resulting in the stripping of the Geneve tunnel header and Option TLV of the data packet. After completing the processing of the corresponding SF, it is impossible to perform general network virtualization encapsulation again, affecting the implementation of the data service function chain. The data packet transmission method and data packet transmission management method provided by this embodiment receive and parse the data packet through the data plane to obtain the original encapsulation information of the data packet, and then report the original encapsulation information to the control plane. After receiving the original encapsulation information, the control plane will control the data plane to add a table entry corresponding to the original encapsulation information in the data plane management table. Because the data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keyword, the table entry records the mapping relationship between SPI, SI, and SFL option TLV. After SF completes processing of the data packet stripped of the Geneve tunnel header and Option TLV, the data plane can find the SFL option TLV corresponding to the data packet from the data plane management table according to the SPI and SI carried by the data packet, thereby completing the general network virtualization encapsulation according to the SPI, SI and SFL option TLV of the data packet, and realizing the transmission of the data packet to the next node. The data packet transmission and management solution provided by the embodiment of the present invention interacts with the data plane and the control plane on the data packet SPI, SI and SFL option TLV, so that the data plane can store the mapping relationship between SPI, SI and SFL option TLV through the data plane management table under the control of the control plane. When the data packet is returned from the SF to wait for encapsulation, the SFL option TLV corresponding to the data packet can be directly obtained by querying the data plane management table, thereby realizing general network virtualization encapsulation.
[0029] Other features and corresponding beneficial effects of the present invention are described in the latter part of the specification, and it should be understood that at least part of the beneficial effects become obvious from the description in the specification of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 This is a service chain diagram of the Geneve overlay network shown in the first embodiment of the present invention;
[0031] Figure 2 This is a schematic diagram of the data structure of the Geneve tunnel header shown in the first embodiment of the present invention;
[0032] Figure 3This is a schematic diagram of the data structure of the SFL Option TLV shown in the first embodiment of the present invention;
[0033] Figure 4 A schematic diagram of interaction between a data plane and a control plane in a data transmission scheme in a data forwarding device provided in Embodiment 1 of the present invention;
[0034] Figure 5 A flow chart of a control plane data packet transmission management method provided in Embodiment 2 of the present invention;
[0035] Figure 6 A flow chart of deleting table entries on the data plane provided in the second embodiment of the present invention;
[0036] Figure 7 A flow chart of performing entry aging evaluation on the control plane provided in the second embodiment of the present invention;
[0037] Figure 8 This is a processing flow chart after the control plane receives the original encapsulation information reported by the data plane shown in the second embodiment of the present invention;
[0038] Fig. 9 A schematic diagram of the structure of a data packet transmission device provided in Embodiment 4 of the present invention;
[0039] Fig.10 A schematic diagram of the structure of a data packet transmission management device provided in Embodiment 4 of the present invention;
[0040] Fig.11 This is a schematic diagram of the hardware structure of the data forwarding device provided in Embodiment 5 of the present invention. DETAILED DESCRIPTION
[0041] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the following is a further detailed description of the embodiments of the present invention through specific implementation methods combined with the accompanying drawings. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
[0042] Embodiment 1:
[0043] When data packets are transmitted in the network, they often need to pass through various business service function nodes to ensure that the network can provide safe, fast and stable network services to network managers in accordance with the design requirements. These business service function nodes (SF) include well-known firewalls, intrusion detection (Intrusion Prevention System), load balancing (Load Balancing), etc. Network traffic needs to pass through these business points in the established order required by the business logic to achieve the required security business.
[0044] The [RFC7665] document defines the architecture of the SFC (Service Function Chain). The SFC defines the service function path as a determined set of service function forwarders / service functions that a data packet will visit when actually traversing the network.
[0045] Optimized SFPs help build efficient service function chains, which can be used to control traffic based on classification rules as well as metadata information to provide services for NFV (Network Function Virtualization). Metadata is usually passed between service functions and service function forwarders SFF along the service function path. NVO3 (Network Virtualization over Layer 3) domains use tunneling and encapsulation protocols such as Geneve to provide connectivity between tenant workloads and service functions running in their domains.
[0046] The [RFC8300] document defines a new encapsulation protocol, Network Services Header (NSH), for encoding SFP and metadata.
[0047] The draft [draft-boutros-nvo3-geneve-applicability-for-sfc] proposes a method to use Generic Network Virtualization Encapsulation (Geneve) to carry Service Function Path (SFP) information and Network Service Header (NSH) encapsulation. In this scheme, SFP will be transmitted using the new Geneve Service Function List (SFL) option and is strictly limited to transmission between the Service Function Forwarder and the Network Virtualization Edge (NVE) in the same Network Virtualization Overlay Network. NSH encapsulation will include service path identification and service index, and NSH SI will be used as the index for VNF to jump to SFL.
[0048] The following is an explanation of the forwarding process on the data plane of the solution proposed in the draft [draft-boutros-nvo3-geneve-applicability-for-sfc]:
[0049] 1) Ingress operation
[0050] The controller can program the ingress NVE node to classify traffic and identify the service function path, that is, the set of service functions in the path. The ingress NVE node (SC) populates the service function list (SFL) in the path, and then parses the first service function according to the SFL for Geneve tunnel encapsulation. It then sets the service index to n, where n is the number of elements in the SFL, and sends the Geneve packet to the first NVE (SFF), see Figure 1 FIG. 4 shows a service chain diagram of the Geneve overlay network.
[0051] 2) Transit operation
[0052] The data packet is forwarded between service function forwarders (SFFs) along the service function path, the SFL option is identified on the SFF, and the service function is located in the list based on the service index (SI).
[0053] When a packet reaches an SFF, the Geneve tunnel header and SFL Option TLV of the packet will be stripped. Figure 2 The data structure of the Geneve tunnel header is shown:
[0054] VER (2 bits): Version, currently 0;
[0055] Opt Len (6 bits): Indicates the length of the Variable Length Options (available length options) in 4-byte units. Since there are only 6 bits, the maximum length of the Variable Length Options is 252 (63*4) bytes.
[0056] O(1 bit): indicates that this is an OAM packet, which contains control information rather than data. The endpoint can prioritize the packet based on this bit.
[0057] C (1 bit): Indicates that there are one or more critical options in the Variable Length Options. When C is set, the Variable Length Options must be parsed. If the current Endpoint does not support GENEVE parsing, the packet should be discarded. If C is not set, the Endpoint can directly discard all Variable Length Options based on Opt Len.
[0058] Rsvd.(6bit): reserved field.
[0059] Protocol Type (16 bits): The type of protocol being encapsulated, such as Ethernet is 0x6558. The existence of this field makes it possible for GENEVE to encapsulate other Layer 2 protocols.
[0060] VNI (24 bits), namely Virtual NETwork Identifier (VXLAN Network Identifier).
[0061] Reserved (8 bits): reserved field.
[0062] Variable Length Options: Consists of TLVs and contains extensible metadata.
[0063] Figure 3 Figure 2 shows the data structure of the SFL Option TLV.
[0064] The stripped data packet will be passed to the SF or VNF, which will process the data packet accordingly. When the data packet returns from the SF with the SPI and SI, the SFF should determine the SFL Option TLV belonging to the data packet based on the SPI and SI on the data packet. Then, the next service function is parsed according to the SFL, the Geneve tunnel is encapsulated, the service index is reduced by 1, and the Geneve data packet is sent to the next NVE (SFF).
[0065] 3) Termination operation
[0066] The service index of the Geneve packet received by the last SFF node from the previous SFF node is 1, and the packet with service index 0 will be discarded. At the last NVE node along the service function path, the NVE locates the service function in the SFLOption TLV based on the NSH service index.
[0067] The Geneve tunnel header and SFL Option TLV will be stripped, and the packet will be passed to the SF. When the packet returns from the SF, the SFL Option TLV will be located based on the NSH SPI on the packet or based on the NVE. At this time, the service index is 0, and the last SFF will strip the NSH encapsulation of the packet and continue to forward the packet to the destination.
[0068] exist Figure 1In the example, Geneve overlay network 1 includes four SFF nodes. The data packet is sent from the src node to SFF4, and then transmitted from SFF4 to SFF3. On SFF3, the Geneve tunnel header and Option TLV of the data packet will be stripped. Subsequently, SFF3 will transmit the data packet to its corresponding SF1, which will process the data packet. After SF1 completes the processing of the data packet, it will return the processed data packet to SFF3, which will then perform Geneve tunnel encapsulation on the data packet and send it to SFF2. The data packet is processed on SFF2 and SF2. After SF2 completes the processing of the data packet, the service index of the data packet becomes 0. At this time, after SFF2 receives the data packet with a service index of 0 from SF, it will strip the NSH encapsulation of the data packet and send the data packet to SFF1, which will then be sent to the dst node by SFF1.
[0069] exist Figure 1 Among them, because there are only two service function nodes, in some situations, after SFF2 receives a data packet from SF2, it may no longer send the data packet to SFF1, but directly send the data packet to Geneve1.
[0070] It can be seen that SFF (or NVE) should maintain the association between SFL Option TLV and NSH service path identifier SPI. However, when SFF strips the SFP information of a data packet, the current switching chip cannot record the SFP information corresponding to the data packet, which results in the inability to obtain the SFP information corresponding to the data packet when the data packet is generated, and thus the Geneve for the data packet cannot be implemented. In this regard, this embodiment provides a data transmission solution, see Figure 4 The following is a schematic diagram showing the interaction between the data plane and the control plane in the data transmission scheme in the data forwarding device:
[0071] S402: The data plane receives and parses the data packet to obtain original encapsulation information of the data packet.
[0072] It should be understood that the data plane is the data plane of the SFF, so in this embodiment, the data plane will receive a data packet from the ingress NVE node or other SFF, and the data packet is encapsulated using a general network virtualization. After the data plane receives the data packet, it performs parsing processing such as stripping the Geneve tunnel header and Option TLV on the data packet, thereby obtaining the original encapsulation information of the data packet, where the so-called original encapsulation information refers to the SPI, SI and SFL option TLV (service function list option triplet) of the data packet.
[0073] For a data packet, no matter which node it is currently in the SFL, its SPI and SFLoption TLV remain unchanged, while SI varies with the node it is in. Specifically, the value of SI gradually decreases as the data packet is transmitted. The SI in the original encapsulation information obtained by the data plane parsing the data packet refers to the SI carried by the data packet when the data plane receives the data packet.
[0074] S404: The data plane reports the original encapsulation information obtained by parsing to the control plane.
[0075] After the data plane obtains the original encapsulation information of the data packet, it can report the original encapsulation information to the control plane. It should be understood that the control plane is also the control plane of the SFF. However, it should be noted that the data plane and the control plane may be located on different physical devices.
[0076] In this embodiment, after parsing and obtaining the original encapsulation information, the data plane not only reports the original encapsulation information to the control plane, but also sends the data packet stripped of the Geneve tunnel header and the SFL option TLV to the corresponding SF so that the SF performs corresponding functional processing on the data packet.
[0077] S406: The control plane calls the interface of the data plane and issues a new entry instruction to the data plane.
[0078] The control plane receives the original encapsulation information reported by the data plane. After receiving the original encapsulation information reported by the data plane, the control plane can issue an entry addition instruction to the data plane, so that the data plane adds a table entry corresponding to the original encapsulation information in the data plane management table.
[0079] It should be understood that the data plane management table is set on the data plane side and is set by the data plane. It is used to maintain the mapping relationship between the SPI, SI and SFL option TLV corresponding to the data packet, so that after the data plane receives the data packet returned from the SF, it can also determine the SFL option TLV of the data packet, thereby realizing the universal network virtualization encapsulation of the data packet. In this embodiment, the data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keywords. Please refer to the data plane management table SFL_TABLE_data shown in Table 1:
[0080] Table 1
[0081] SPI SI SFL option TLV 7 6 x 2 2 y …… …… …… n 2 v
[0082] In Table 1, a row is a table entry. It can be seen from Table 1 that a row in the table includes an SPI value, an SI value, and an SFL option TLV corresponding to the SPI and SI. Therefore, a table entry includes the SPI, SI, and the SFL option TLV corresponding to the SPI and SI. A data packet can be uniquely identified by the unique combination of the SPI and SI. Therefore, when a data packet carrying the SPI and SI is returned from the SF to the data plane of the SFF, the data plane can find the corresponding SFL option TLV information from the data plane management table according to the SPI and SI carried by the data packet.
[0083] When the control plane issues a new instruction to the data plane, it can call the interface of the data plane including but not limited to SDK (Software Development Kit) to issue the instruction.
[0084] S408: The data plane adds the SPI, SI and SFL optionTLV corresponding to the original encapsulation information as an entry to the data plane management table according to the entry adding instruction.
[0085] After receiving the table entry addition instruction sent by the control plane, the data plane will add a table entry in the data plane management table according to the table entry addition instruction. Usually, the table entry addition instruction sent by the control plane to the data plane will carry relevant information of the newly added table entry, including the SPI, SI and SFL option TLV in the newly added table entry.
[0086] It should be understood that the control plane instructs the data plane to add a table entry corresponding to the original encapsulation information through a table entry addition instruction, but this does not mean that the SPI, SI and SFL option TLV in the newly added table entry are the SPI, SI and SFL option TLV in the original encapsulation information.
[0087] For example, in some examples of the present embodiment, after SF receives a data packet sent by the SFF data plane, it will decrement the SI of the data packet, usually by "1". In this way, although the data packet sent by SF to SFF and the data packet sent by SFF to SF are the same data packet, the difference is that the former is after the data packet is processed by the corresponding function, and the latter is before the data packet is processed by the corresponding function. However, the SI carried by these two data packets is indeed different. The SI value of the data packet sent by SF to SFF is 1 less than the SI value of the data packet sent by SFF to SF. In this case, when the data plane performs network virtualization encapsulation on the data packet, if the current SPI and SI on the data packet are directly used as keywords to query the data plane management table, then when the data plane pre-adds the table entry corresponding to the data packet, it should also correspondingly update the SI decrementally based on the SI in the original encapsulation information. Here is an example. Assuming that the SI value in the original encapsulation information reported by the data plane is "4", the SI value carried on the data packet returned by SF to the SFF data plane should be "3". Naturally, when the data plane performs universal network virtualization encapsulation on the data packet returned from SF, it will query the data plane management table based on the SI value of "3". Therefore, when the control plane controls the data plane to add a table entry in the data plane management table through the table entry addition instruction, the SI value in the original encapsulation information should also be reduced by 1 to get "3", so that the data plane adds a table entry with an SI value of "3".
[0088] Of course, it can be understood by those skilled in the art that even if the SI value carried on the data packet returned from the SF has been decremented by the SF, in some examples of the present embodiment, when the control plane controls the data plane to add a table entry, the SI value carried in the table entry addition instruction can still be the SI value in the original encapsulation information. In this way, it is only necessary for the data plane to increase the SI value of the data packet after decrementing by 1 by 1 when querying the data plane management table. For example, assuming that the SI value in the original encapsulation information reported by the data plane is "4", the control plane can send a table entry addition instruction to the data plane after receiving the original encapsulation information reported by the data plane. In the table entry addition instruction, the SI value is still "4". Correspondingly, the SI value in the table entry newly added by the data plane in the data plane management table is "4". The value of the SI carried on the data packet returned by the SF to the SFF data plane should be "3". When the data plane performs general network virtualization encapsulation on the data packet returned from the SF, it can add "1" to the current SI value "3" and then query the data plane management table. That is, the data plane uses "4" as one of the keywords to query the data plane management table. However, it should be noted that the data plane adds "1" to the current SI value of the data packet only to query the data plane management table and obtain the SFL option TLV corresponding to the data packet, and does not actually change the SI value on the data packet.
[0089] It can be understood that as long as the control plane determines the content of the table entry new addition instruction corresponding to each data packet according to a unified rule, and the data plane also queries the data plane management table according to the corresponding rules, then it is feasible to determine whether the SI value in the table entry new addition instruction sent by the control plane is consistent with the SI in the original encapsulation information.
[0090] S410: When the data plane receives a target data packet sent by the SF, the data plane management table is searched according to the SPI and SI carried by the target data packet to determine the SFL option TLV corresponding to the target data packet.
[0091] When the data plane receives a data packet returned by SF, it needs to perform general network virtualization encapsulation on the data packet. For the sake of convenience, the data packet is referred to as the "target data packet" here. It can be understood that for the same data plane, it may continuously receive data packets with the same or different services. Therefore, while receiving data packets sent from other SFFs or NVEs, it will also receive the processed target data packet sent by SF. The table entry corresponding to the target data packet is not necessarily the latest table entry in the data plane management table, but it must be an entry that the data plane has added to the data plane management table.
[0092] The data plane can obtain the SPI and SI carried by the target data packet, and then query the data plane management table according to the SPI and SI: if the SI value in the table entry addition instruction sent by the control plane has been decremented when adding a table entry, the data plane can directly use the SPI and SI obtained from the target data packet as keywords to query the data plane management table to obtain the corresponding SFL option TLV; if the SI value in the table entry addition instruction sent by the control plane has not been decremented when adding a table entry, the data plane can add "1" to the SI value obtained from the target data packet and then use it together with the obtained SPI value as a keyword to query the data plane management table to obtain the corresponding SFL option TLV.
[0093] S412: The data plane encapsulates the target data packet according to the SFL option TLV obtained by the query and transmits the target data packet.
[0094] After the data plane obtains the SFL option TLV of a target data packet, it can perform universal network virtualization encapsulation on the target data packet according to the SFL option TLV. After the universal network virtualization encapsulation is completed, the data plane sends the encapsulated data packet to the next node of the current node in the SFL.
[0095] Although the current switching chip does not support direct storage of information on received data packets, in the data packet transmission method and data packet transmission management method provided in this embodiment, the data plane will set a data plane management table specifically used to associate and save the SFLoption TLV of the data packet with the SPI and SI information. When the data plane receives a data packet and obtains the original encapsulation information of the data packet, it will first report it to the control plane, and then associate and save the SPI, SI and SFL option TLV of a data packet in the data plane management table under the instruction of the control plane, so that after the data packet is processed by the SF, the corresponding SFL option TLV can be queried to implement universal network virtualization encapsulation, avoiding the problem that the universal network virtualization encapsulation of the data packet cannot be implemented at the SFF because the switching chip does not support the direct storage of the SFL option TLV and SPI mapping relationship of the data packet.
[0096] Embodiment 2:
[0097] This embodiment will continue to explain the data packet transmission scheme. It should be understood that the data packet explanation scheme includes a data packet transmission method implemented by the data plane and a data packet transmission management method implemented by the control plane. The data packet transmission scheme is mainly explained below based on the control plane data packet transmission management method. Figure 5 The flowchart shown:
[0098] S502: The control plane receives the original encapsulation information reported by the data plane.
[0099] The original encapsulation information received by the control plane should include the SPI, SI and SFL option TLV of the data packet currently received by the data plane. Of course, in some other examples of this embodiment, the information reported by the data plane to the control plane may include other information in addition to SPI, SI and SFL option TLV.
[0100] S504: The control plane adds an entry corresponding to the original encapsulation information in the control plane management table, and issues an entry addition instruction to the data plane.
[0101] In this embodiment, not only the data plane will be set up with a data plane management table, but also a management table will be set up on the control plane, and the management table is the control plane management table (SFL_TABLE_Control). Similar to the data plane management table, the control plane management table also uses SPI and SI as table keywords, and the table content corresponding to the table keywords also includes SFL option TLV. After the control plane receives the original encapsulation information reported by the data plane, a table entry corresponding to the original encapsulation information can be added to the control plane management table. Similar to adding a table entry corresponding to the original encapsulation information in the data plane management table, the table entry "corresponding" to the original encapsulation information added by the control plane in the control plane management table does not mean that the content in the newly added table entry is completely equivalent to the content in the original encapsulation information. For example, the SI value in the newly added table entry may be an updated SI value obtained after decrementing the SI value in the original encapsulation information.
[0102] In this embodiment, for the same data packet, the table entry content of the newly added table entry in the data plane management table is the same as the table entry content of the newly added table entry in the control plane management table. For example, if the original encapsulation information reported by the data plane has an SPI of "27", an SI of "4", and an SFL option TLV of "x", the control plane can add a table entry with an SPI of "27", an SI of "3", and an SFL option TLV of "x" in the control plane management table according to the original encapsulation information. In addition, the control plane can also send a table entry addition instruction for the original encapsulation information to the data plane. In the table entry addition instruction, the SPI is "27", the SI is "3", and the SFL option TLV is "x". Therefore, after receiving the table entry addition instruction, the data plane will add a table entry with an SPI of "27", an SI of "3", and an SFL option TLV of "x" in the data plane management table.
[0103] It can be understood that the process of the control plane adding a new table entry in the control plane management table and the process of issuing an instruction to add a table entry to the data plane can be performed simultaneously or one after the other. For example, a new table entry is first added to the control plane management table, and then an instruction to add a table entry is issued. Of course, in some other examples of this embodiment, the control plane may first issue an instruction to add a table entry, and then add a new table entry to the control plane management table.
[0104] The control plane management table is set on the control plane mainly to manage the various items in the data plane management table. The management here includes the addition and deletion of items in the data plane management table:
[0105] (1) Newly added:
[0106] It is understandable that for multiple data packets belonging to the same service, the SPI and SFLoption TLV of each data packet are the same, and naturally the SI values of these data packets at the same SFF node are also the same. If the data plane adds a new entry in the data plane management table for each of these data packets belonging to the same service, it will result in many entries with the same substantive content in the data plane management table. This will lead to a waste of data plane storage resources.
[0107] After the control plane sets the control plane management table and adds the same table items as those in the data plane management table to the control plane management table, when the data plane reports the original encapsulation information of a data packet to the control plane, before the control plane sends the table item addition instruction to the data plane, the control plane can determine whether there is a table item corresponding to the original encapsulation information in the control plane management table. If the judgment result is yes, the control plane does not need to add the corresponding table item to the control plane management table. Only when the judgment result is no, the corresponding table item will be added to the control plane management table. Of course, because the content of the table items in the control plane management table and the data plane management table are the same, the control plane determines whether there is a table item corresponding to the original encapsulation information in the control plane management table, which is actually determining whether there is a table item corresponding to the original encapsulation information in the data plane management table. If the judgment result of the control plane is yes, the control plane does not need to send the table item addition instruction to the data plane. Only when the judgment result is no, the control plane sends the table item addition instruction to the data plane, so that the data plane adds a table item that does not exist originally.
[0108] Therefore, by setting a control plane management table on the control plane, the control plane manages whether to add new entries according to the control plane management table, avoiding setting multiple duplicate entries in the data plane management table, reducing the waste of data plane storage resources, and facilitating the optimal allocation of resources.
[0109] (2) Delete:
[0110] According to the above introduction, in the data plane management table, one entry is not only used for the encapsulation and transmission of one data packet, but is used for the encapsulation and transmission of all data packets with the same SPI and SI, that is, for the transmission of all data packets of the same service. However, after the encapsulation and transmission of all data packets of a service on an SFF data plane are completed, the corresponding entry of the service data packet in the data plane management table is no longer meaningful. If these entries continue to be retained, the storage resources of the SFF will be occupied, resulting in a waste of resources. Therefore, in this embodiment, the control plane can delete the invalid entries in the data plane management table according to the control plane management table.
[0111] In this embodiment, although the content of the items in the control plane management table and the data plane management table is the same, the control plane management table and the data plane management table are not completely consistent: each item in the control plane management table has a corresponding aging time, and the control plane can manage the deletion or retention of the items in the control plane management table based on the aging time of the items in the control plane management table. If the aging time of an item ends, the control plane will delete the item from the control plane management table. Please refer to the control plane management table shown in Table 2:
[0112] Table 2
[0113] SPI SI SFL option TLV Aging time 7 6 x t1 2 2 y t0 …… …… …… …… n 2 v t3
[0114] Of course, when there is an entry in the control plane management table that needs to be deleted, there will naturally be a corresponding entry in the data plane management table that needs to be deleted. Therefore, when the control plane determines that the aging time of an entry in the control plane management table has expired, it can send an entry deletion instruction to the data plane by calling the data plane interface, so that the data plane can delete the specified entry from the data plane management table. Figure 6 A flow chart showing how to delete table entries on the data plane is shown:
[0115] S602: The data plane receives an entry deletion instruction sent by the control plane.
[0116] When the control plane sends an entry deletion instruction to the data plane, it needs to pass the entry deletion instruction data, which usually includes the SPI and SI of the target entry to be deleted.
[0117] S604: The data plane deletes the target entry in the data plane management table according to the entry deletion instruction.
[0118] After the data plane receives the entry deletion instruction, it can find the target entry from the data plane management table according to the SPI and SI carried in the entry deletion instruction, and then delete the entry.
[0119] For each table item in the control plane management table, the aging time may be the same or different. For example, in one example of the present embodiment, the control plane sets an aging time of t1 for one table item, and the aging time of all other table items is t2. However, in another example of the present embodiment, the control plane sets an aging time of t1 for all table items. The aging time of each table item may be uniformly set by the network administrator according to the empirical value. Optionally, the network administrator sets the aging time according to the time interval between two adjacent data packets in the same service.
[0120] It is understandable that there may be many entries in a control plane management table at the same time. In this case, if the control plane is required to set a corresponding timer or timer for each entry and strictly time according to the aging time of the entry, the control plane may need to spend more processing resources to monitor the aging time. In order to save processing resources, in some examples of this embodiment, the control plane can periodically and periodically judge whether the aging time of each entry has ended. In one example of this embodiment, the control plane sets the processing cycle to t0. Then, every t0, the control plane will uniformly reduce the aging time of each entry in the control plane management table by t0, and then judge whether the remaining aging time of each entry is less than or equal to 0. For those entries whose remaining aging time does not exceed 0, the control plane can determine that they are entries that need to be deleted. For example, assuming that after the last aging evaluation, there are still three entries in the control plane management table, namely, entry 1, entry 2, and entry 3. The remaining aging time of these three entries is 5s, 3s, and 7s respectively, and the processing cycle of the control plane is 5s. When the processing cycle arrives, the remaining aging time of entry 1, entry 2, and entry 3 becomes 0s, -2s, and 2s respectively. At this time, because the remaining aging time of entry 1 and entry 2 is less than or equal to 0, entry 1 and entry 2 will be deleted during this processing. Correspondingly, the same-keyword entries of entry 1 and entry 2 at the data plane management table terminal will also be deleted. Please refer to Figure 7 Flowchart:
[0121] S702: Select an entry from the control plane management table that has not undergone this aging evaluation;
[0122] S704: reduce the aging time of the entry by t0;
[0123] S706: Determine whether the remaining aging time of the entry is less than or equal to 0;
[0124] If the judgment result is yes, proceed to S708, otherwise, proceed to S710.
[0125] S708: Delete the entry from the control plane management table, and instruct the data plane to delete the corresponding entry with the same keyword in the data plane management table through an entry deletion instruction;
[0126] S710: Determine whether there are any entries in the control plane management table that have not undergone this aging evaluation.
[0127] If the judgment result is yes, go to S702, otherwise go to S712.
[0128] S712: Wait for t0 time and then enter the next aging evaluation process.
[0129] It should be understood that when the control plane performs aging evaluation on the items in the control plane management table, if the set processing cycle time is shorter, the control plane evaluation will be more frequent. In this way, when the actual aging time of an item ends, it can be cleared as soon as possible and will not be deleted because the processing cycle has not expired. This can increase the proportion of valid items in the control plane management table and the data plane management table and reduce the waste of storage resources, but it will also increase the processing resources used by the control plane for aging evaluation.
[0130] Because each entry in the control plane management table has an aging time, the entry will not be deleted as long as the aging time has not expired. Therefore, after the data plane of the SFF receives a data packet from another SFF or NVE and reports the original encapsulation information of the data packet to the control plane, if the control plane determines that an entry corresponding to the original encapsulation information already exists in the control plane management table, the control plane does not need to send an entry addition instruction to the data plane, nor does it need to add a corresponding entry to the control plane management table. It only needs to reset the aging time of the corresponding entry in the control plane management table to the initial value. If the data plane receives a data packet of the same service before the aging time of the entry expires, the aging time of the entry will be reset to the initial value again, and this cycle will continue until all data packets of the service are transmitted, or the aging time of the entry expires before a new data packet arrives.
[0131] Combine the following Figure 8 The flowchart of the control plane describes the processing process after receiving the original encapsulation information reported by the data plane:
[0132] S802: Determine whether there is an entry corresponding to the received original encapsulation information in the control plane management table.
[0133] If the judgment result is yes, then go to S804, otherwise go to S806.
[0134] S804: Reset the aging time of the entry corresponding to the original encapsulation information in the control plane management table to an initial value.
[0135] Since the control plane management table already has an entry corresponding to the original encapsulation information, in order to reduce the occupation of the control plane and data plane storage resources, the control plane can directly initialize the aging time of the corresponding entry in the control plane management table. In fact, this process is equivalent to modifying the entry in the control plane management table, and the entry corresponding to the original encapsulation information reported by the data plane is obtained through the modification.
[0136] S806: Add a table entry corresponding to the original encapsulation information in the control plane management table.
[0137] If the control plane determines, through judgment, that there is no entry corresponding to the original encapsulation information in the control plane management table, the control plane may first add an entry corresponding to the original encapsulation information in the control plane management table.
[0138] S808: Send a table entry adding instruction corresponding to the original encapsulation information to the data plane.
[0139] Because there is no table entry corresponding to the original encapsulation information in the control plane management table, there will naturally be no table entry corresponding to the original encapsulation information in the data plane management table. Therefore, the control plane will also send a table entry addition instruction to the data plane, allowing the data plane to add a table entry corresponding to the original encapsulation information in the data plane management table.
[0140] There is no doubt that although Figure 8 In the process, the control plane adds a new entry to the control plane management table and then sends a table entry addition instruction to the data plane. But in fact, in some other examples of this embodiment, the control plane may first send a table entry addition instruction and then add a new entry to the control plane management table, or the two processes may be performed simultaneously.
[0141] Of course, it is understandable that in some other examples of this embodiment, the control plane management table may not be used to manage the deletion of table items in the data plane management table. After the data plane completes the search for the SFL option TLV information of a data packet and the general network virtualization encapsulation of the data packet, it can report to the control plane, allowing the control plane to issue a table item deletion instruction, and then delete the table item according to the table item deletion instruction. Or the data plane directly deletes the table item after completing the search for the SFL option TLV information of a data packet and the general network virtualization encapsulation of the data packet. However, in the latter two solutions, the data plane and the control plane need to interact frequently, because once the data plane receives a data packet, the control plane needs to issue a table item addition instruction to allow the data plane to add a table item.
[0142] The data packet transmission management solution provided in this embodiment sets a control plane management table corresponding to the data plane management table on the control plane, and sets an aging time for each item in the control plane management table. Based on the aging time, deletion and storage management of items in the control plane management table is implemented, that is, deletion and storage management of items in the data plane management table is implemented. Without requiring frequent interaction between the data plane and the control plane, the proportion of valid items in the data plane management table is deleted, thereby reducing the occupancy of storage resources and optimizing resource allocation.
[0143] Embodiment three:
[0144] In order to enable those skilled in the art to better understand the advantages and details of the data transmission scheme in the aforementioned embodiment, this embodiment will illustrate the process of the control plane and the data plane jointly implementing the data packet transmission management method and the data packet transmission method in the aforementioned embodiment with reference to specific examples:
[0145] Preset processing:
[0146] The network administrator sets a fixed table entry aging time (assuming the aging time is 20s) on the control plane in advance, and creates an empty table (assuming the table name is SFL_TABLE_Control) with SPI and SI as table keywords and table entry contents corresponding to the table keywords, including SFL optionTLV and aging time value.
[0147] On the other hand, the control plane also creates an empty table (here it is assumed that the table name is SFL_TABLE_Data) on the data plane with SPI and SI as table keywords and SFL option TLV as table content corresponding to the table keywords by calling the switching chip SDK (or related technology).
[0148] In addition, the network administrator can set a timing processing program on the control plane (assuming that the timing time is 5 seconds, that is, the processing cycle is 5 seconds).
[0149] Data processing:
[0150] The data plane performs the Transit operation:
[0151] 1) When a data packet arrives at the SFF, the data plane strips off the Geneve tunnel header and SFL OptionTLV of the packet, and then passes the packet to the service function (SF) or virtual network function (VNF) for processing.
[0152] 2) The data plane sends the SFL option TLV of the data packet (assuming a list of three IP addresses {[10.5.2.1], [10.6.3.1], [10.7.3.1]}) and the corresponding SPI and SI values (assuming SPI=3, SI=3) to the control plane.
[0153] 3) When the data packet carrying SPI and SI is returned from SF or VNF, after the SF or VNF decrements SI, the SI value carried by the data packet becomes 2, that is, the returned data packet SPI = 3, SI = 2. The data plane uses the SPI and SI carried by the data packet as the value as the keyword to query SFL_TABLE_Data, and determines that the SFL option TLV of the returned data packet is {[10.5.2.1], [10.6.3.1], [10.7.3.1]}.
[0154] 4) The data plane encapsulates the queried SFL option TLV into the data message and continues the forwarding process.
[0155] Control plane processing:
[0156] The control plane adds or modifies table entries:
[0157] 1) The control plane receives the original encapsulated information sent by the data plane, SPI=3, SI=3, and the corresponding SFL optionTLV is {[10.5.2.1], [10.6.3.1], [10.7.3.1]}.
[0158] 2) The control plane subtracts 1 from the SI value in the original encapsulation information to obtain SI=2.
[0159] 3) The current SPI and SI values of the control plane (SPI=3, SI=2) are used as keywords to query the SFL_TABLE_Control table.
[0160] If the data packet currently received by the data plane is not the first packet of the service to which it belongs, the control plane will query the hit. In this case, the control plane resets the aging time of the query hit table entry in SFL_TABLE_Control to 20s.
[0161] If the data packet currently received by the data plane is the first packet of the service to which it belongs, the query hit cannot be found. Therefore, the control plane adds a table entry corresponding to the original encapsulation information in SFL_TABLE_Control, and the SPI of the newly added table entry is 3, SI = 2, and the SFL option TLV is {[10.5.2.1], [10.6.3.1], [10.7.3.1]}, and the aging time is 20s. At the same time, the control plane calls the switching chip API (or related technology) to add a table entry with SPI = 3, SI = 2, and SFL option TLV is {[10.5.2.1], [10.6.3.1], [10.7.3.1]} in the SFL_TABLE_Data of the data plane.
[0162] The control plane performs table entry aging assessment processing:
[0163] 1) When the processing cycle arrives, the control plane takes out each item in the table SFL_TABLE_Control and reduces the aging time of the taken-out item by 5s.
[0164] 2) After completing the aging time reduction process, the control plane determines whether the remaining aging time of each entry is less than or equal to 0.
[0165] For the table entry with the keyword SPI=3 and SI=2, its initial aging time of 20s will be continuously reduced after each aging evaluation process minus 5s, so that the remaining aging time of the table entry will always be reduced to less than or equal to 0 during a certain aging evaluation process. At this time, the control plane will delete the table entry and call the switching chip SDK (or related technology) to delete the table entry with the same keyword in the data plane SFL_TABLE_Data.
[0166] In this embodiment, by adding the interaction process between the control plane and the data plane, the purpose of maintaining the mapping relationship between the SPI, SI and SFL option TLV of the data packet on the data plane is achieved. At the same time, for a data service flow, from the beginning to the end of the whole process, only after the first data packet of a certain service arrives, a corresponding table entry will be added to the control plane and the data plane. When the service data flow ends, a deletion operation is generated on the control plane and the data plane through the table entry aging timeout mechanism, thereby greatly reducing the number of interactions between the control plane and the data plane.
[0167] Embodiment 4:
[0168] This embodiment provides a data packet transmission device, which is applied to the data plane side. Fig. 9 A schematic diagram of the structure of a data packet transmission device 90 is shown:
[0169] The data packet transmission device 90 includes a receiving and parsing module 902, an information uploading module 904, a table entry adding module 906, an information query module 908, and an encapsulation transmission module 910, wherein the receiving and parsing module 902 is used to receive and parse the data packet to obtain the original encapsulation information of the data packet, and the original encapsulation information includes SPI, SI and SFL option TLV. The information uploading module 904 reports the original encapsulation information obtained by the analysis to the control plane; the table entry adding module 906 is used to receive the table entry adding instruction issued by the control plane, and according to the table entry adding instruction, the SPI, SI and SFL option TLV corresponding to the original encapsulation information are added as a table entry to the data plane management table, and the data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keyword; the information query module 908 is used to query the data plane management table according to the SPI and SI carried by the target data packet when receiving the target data packet sent by the service function SF, and determine the SFL option TLV corresponding to the target data packet; the encapsulation transmission module 910 is used to encapsulate the target data packet according to the SFL option TLV obtained by the query and transmit the target data packet.
[0170] This embodiment also provides a data packet transmission management device, which is applied to the control plane side. Fig.10 A structural diagram of a data packet transmission management device 10 is shown:
[0171] The data packet transmission management device 10 includes an information receiving module 102, which is used to receive the original encapsulation information of the data packet reported by the data plane, and the original encapsulation information includes SPI, SI and SFL option TLV; in addition, the data packet transmission management device 10 also includes an instruction sending module 104, which is used to call the interface of the data plane to issue an entry addition instruction to the data plane, and the entry addition instruction is used to control the data plane to add a table entry corresponding to the original encapsulation information in the data plane management table.
[0172] It should be understood that the data plane is the data plane of the SFF, so in this embodiment, the receiving and parsing module 902 receives a data packet from the ingress NVE node or other SFF, and the data packet is encapsulated in a general network virtualization. After receiving the data packet, the receiving and parsing module 902 performs parsing processing such as stripping the Geneve tunnel header and Option TLV on the data packet, thereby obtaining the original encapsulation information of the data packet, where the so-called original encapsulation information refers to the SPI, SI and SFL option TLV of the data packet.
[0173] For a data packet, no matter which node it is currently in the SFL, its SPI and SFLoption TLV remain unchanged, while SI varies with the node it is in. Specifically, the value of SI gradually decreases as the data packet is transmitted. The SI in the original encapsulation information obtained by parsing the data packet by the receiving parsing module 902 refers to the SI carried by the data packet when the data plane receives the data packet.
[0174] After the receiving parsing module 902 obtains the original encapsulation information of the data packet, the information uploading module 904 can report the original encapsulation information to the control plane. It should be understood that the control plane is also the control plane of the SFF. However, it should be noted that the data plane and the control plane may be located on different physical devices. The information receiving module 102 of the control plane side data packet transmission management device 10 will receive the original encapsulation information uploaded by the receiving information uploading module 904.
[0175] In this embodiment, after the data plane receives and analyzes the original encapsulation information through the parsing module 902, it not only reports the original encapsulation information to the control plane, but also sends the data packet stripped of the Geneve tunnel header and the SFL option TLV to the corresponding SF so that the SF performs corresponding functional processing on the data packet.
[0176] After the information receiving module 102 reports the original encapsulation information to the data plane, the instruction sending module 104 may issue an entry adding instruction to the data plane, so that the data packet transmission device 90 of the data plane adds an entry corresponding to the original encapsulation information in the data plane management table.
[0177] It should be understood that the data plane management table is set on the data plane side and is set by the data packet transmission device 90. It is used to maintain and record the mapping relationship between the SPI, SI and SFL option TLV corresponding to the data packet, so that after the data plane receives the data packet returned from the SF, the information query module 908 can determine the SFL option TLV of the data packet, thereby realizing the universal network virtualization encapsulation of the data packet. In this embodiment, the data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keywords, see Table 1.
[0178] In Table 1, a row is a table entry. It can be seen from Table 1 that a row in the table includes an SPI value, an SI value, and an SFL option TLV corresponding to the SPI and SI. Therefore, a table entry includes the SPI, SI, and the SFL option TLV corresponding to the SPI and SI. A data packet can be uniquely identified by the unique combination of the SPI and SI. Therefore, when a data packet carrying the SPI and SI is returned from the SF to the data plane of the SFF, the information query module 908 can find the corresponding SFL option TLV information from the data plane management table according to the SPI and SI carried by the data packet.
[0179] When issuing a new item addition instruction to the data plane, the instruction sending module 104 may call an interface of the data plane including but not limited to the SDK to issue the instruction.
[0180] After receiving the table entry addition instruction sent by the control plane, the table entry addition module 906 will add a table entry to the data plane management table according to the table entry addition instruction. Usually, the table entry addition instruction sent by the control plane data packet transmission management device 10 will carry relevant information of the newly added table entry, including the SPI, SI and SFL optionTLV in the newly added table entry.
[0181] It should be understood that the data packet transmission management device 10 instructs the data packet transmission device 90 to add a table entry corresponding to the original encapsulation information on the data plane through a table entry addition instruction, but this does not mean that the SPI, SI and SFL option TLV in the newly added table entry are the SPI, SI and SFL option TLV in the original encapsulation information.
[0182] For example, in some examples of the present embodiment, after SF receives a data packet sent by the SFF data plane, it will decrement the SI of the data packet, usually by "1". In this way, although the data packet sent by SF to SFF and the data packet sent by SFF to SF are the same data packet, the difference is that the former is after the data packet is processed by the corresponding function, and the latter is before the data packet is processed by the corresponding function. However, the SI carried by these two data packets are indeed different. The SI value of the data packet sent by SF to SFF is 1 less than the SI value of the data packet sent by SFF to SF. In this case, when the encapsulation transmission module 910 of the data plane data packet transmission device 90 performs network virtualization encapsulation on the data packet, if the information query module 908 directly uses the current SPI and SI on the data packet as keywords to query the data plane management table, then when the data plane adds a table entry corresponding to the data packet in advance, it should also correspondingly update the SI decrementally based on the SI in the original encapsulation information. Here is an example. Assuming that the SI value in the original encapsulation information reported by the data plane is "4", the SI value carried on the data packet returned by SF to the SFF data plane should be "3". Naturally, when the data packet returned from SF is encapsulated with general network virtualization, the information query module 908 will query the data plane management table based on the SI value of "3". Therefore, when the instruction sending module 104 of the control plane controls the table item adding module 906 to add a table item in the data plane management table through the table item adding instruction, the SI value in the original encapsulation information should also be reduced by 1 to obtain "3", so that the data plane adds a table item with a new SI value of "3".
[0183] Of course, it can be understood by those skilled in the art that even if the SI value carried on the data packet returned from the SF has been decremented by the SF, in some examples of the present embodiment, when the control plane controls the data plane to add a table entry, the SI value carried in the table entry addition instruction can still be the SI value in the original encapsulation information. In this way, it is only necessary for the data plane to increase the SI value of the data packet after decrementing by 1 by 1 when querying the data plane management table. For example, assuming that the SI value in the original encapsulation information reported by the data plane is "4", the control plane can send a table entry addition instruction to the data plane after receiving the original encapsulation information reported by the data plane. In the table entry addition instruction, the SI value is still "4". Correspondingly, the SI value in the table entry newly added by the data plane in the data plane management table is "4". The value of the SI carried on the data packet returned by the SF to the SFF data plane should be "3". When the data plane performs general network virtualization encapsulation on the data packet returned from the SF, it can add "1" to the current SI value "3" and then query the data plane management table. That is, the data plane uses "4" as one of the keywords to query the data plane management table. However, it should be noted that the data plane adds "1" to the current SI value of the data packet only to query the data plane management table and obtain the SFL option TLV corresponding to the data packet, and does not actually change the SI value on the data packet.
[0184] It can be understood that as long as the control plane determines the content of the table entry new addition instruction corresponding to each data packet according to a unified rule, and the data plane also queries the data plane management table according to the corresponding rules, then it is feasible to determine whether the SI value in the table entry new addition instruction sent by the control plane is consistent with the SI in the original encapsulation information.
[0185] When the data plane receives a data packet returned by SF, it needs to perform general network virtualization encapsulation on the data packet. For the sake of convenience, the data packet is referred to as the "target data packet" here. It can be understood that for the same data plane, it may continuously receive data packets with the same or different services. Therefore, while receiving data packets sent from other SFFs or NVEs, it will also receive the processed target data packet sent by SF. The table entry corresponding to the target data packet is not necessarily the latest table entry in the data plane management table, but it must be an entry that the data plane has added to the data plane management table.
[0186] The information query module 908 can obtain the SPI and SI carried by the target data packet, and then query the data plane management table according to the SPI and SI: if the SI value in the table entry addition instruction sent by the control plane has been decremented when adding a table entry, the information query module 908 can directly use the SPI and SI obtained from the target data packet as keywords to query the data plane management table to obtain the corresponding SFL option TLV; if the SI value in the table entry addition instruction sent by the control plane has not been decremented when adding a table entry, the information query module 908 can add "1" to the SI value obtained from the target data packet and then use it together with the obtained SPI value as keywords to query the data plane management table to obtain the corresponding SFLoption TLV.
[0187] After the information query module 908 obtains the SFL option TLV of a target data packet, the encapsulation and transmission module 910 can perform universal network virtualization encapsulation on the target data packet according to the SFL option TLV. After the universal network virtualization encapsulation is completed, the encapsulation and transmission module 910 sends the encapsulated data packet to the next node of the node in the SFL.
[0188] Although the current switching chip does not support direct storage of information on received data packets, the data packet transmission device and the data packet transmission management device provided by the embodiments of the present invention set a data plane management table specifically used to associate and save the SFL option TLV of the data packet with the SPI and SI information. When the data plane receives a data packet and obtains the original encapsulation information of the data packet, it will first report it to the control plane, and then, under the instruction of the control plane, associate and save the SPI, SI and SFL option TLV of a data packet in the data plane management table. Therefore, after the data packet is processed by the SF, the corresponding SFL option TLV can be queried to implement universal network virtualization encapsulation, thereby avoiding the problem that the universal network virtualization encapsulation of the data packet cannot be implemented at the SFF because the switching chip does not support direct storage of the SFL option TLV and SPI mapping relationship of the data packet.
[0189] For other details of the data packet transmission scheme implemented by the data packet transmission device and the data packet transmission management device, please refer to the introduction of the above-mentioned embodiments one to three, which will not be repeated here.
[0190] In this embodiment, the data packet transmission device 90 is deployed on the data forwarding device on the data plane side, and the functions of the receiving and parsing module 902, the information uploading module 904, the table entry adding module 906 and the encapsulation transmission module 910 can be implemented by the processor and the communication unit of the data forwarding device, and the function of the information query module 908 can be implemented by the processor of the data forwarding device. The data plane management table on the data plane side can be stored in the memory.
[0191] The data packet transmission management device 10 is deployed on the data forwarding device on the control plane side, wherein the functions of the information receiving module 102 and the instruction sending module 104 can be implemented by the processor and the communication unit of the data forwarding device. The control plane management table can be stored in the data forwarding device memory.
[0192] Embodiment five:
[0193] This embodiment provides a storage medium, which can store one or more computer programs that can be read, compiled and executed by one or more processors. In this embodiment, the computer-readable storage medium can store at least one of a data packet transmission program and a data packet transmission management program, wherein the data packet transmission program can be executed by one or more processors to implement the process of any one of the data packet transmission methods introduced in the aforementioned embodiments; and the data packet transmission management program can be executed by one or more processors to implement the process of any one of the data packet transmission management methods introduced in the aforementioned embodiments.
[0194] This embodiment also provides a data forwarding device, such as Fig.11 As shown: the data forwarding device 110 includes a processor 111, a memory 112, and a communication bus 113 for connecting the processor 111 and the memory 112, wherein the memory 112 may be the storage medium storing the data packet transmission program and / or the data packet transmission management program. The processor 111 may read the data packet transmission program, compile and execute the process of implementing the data packet transmission method described in the above embodiment:
[0195] The processor 111 receives and parses the data packet to obtain the original encapsulation information of the data packet, where the original encapsulation information includes a service path identifier SPI, a service index SI, and a service function list option triple SFL option TLV; then the original encapsulation information obtained by the parsing is reported to the control plane, and then a table item addition instruction issued by the control plane is received, and according to the table item addition instruction, the SPI, SI, and SFL option TLV corresponding to the original encapsulation information are added as a table item to the data plane management table, where the data plane management table uses SPI and SI as table keywords, and uses SFL option TLV as the table content corresponding to the table keywords;
[0196] When the processor 111 receives a target data packet sent by the service function SF, it queries the data plane management table according to the SPI and SI carried by the target data packet to determine the SFL option TLV corresponding to the target data packet; and encapsulates the target data packet according to the SFLoption TLV obtained by the query and transmits the target data packet.
[0197] The processor 111 may also read the data packet transmission management program, compile and execute the process of implementing the data packet transmission management method described in the above embodiment:
[0198] The processor 111 receives the original encapsulation information of the data packet reported by the data plane, and then calls the interface of the data plane to issue an entry addition instruction to the data plane, where the entry addition instruction is used to control the data plane to add an entry corresponding to the original encapsulation information in the data plane management table.
[0199] In some examples of this embodiment, when the processor 111 executes the data packet transmission management program, it can also add a table entry corresponding to the original encapsulation information in the control plane management table, and manage the deletion or retention of the table entry in the control plane management table based on the aging time of the table entry. If the aging time of the table entry ends, the table entry is deleted from the control plane management table; after determining that the table entry needs to be deleted from the control plane management table, the processor 111 calls the data plane interface to issue an entry deletion instruction to the data plane, controlling the data plane to delete the corresponding table entry with the same keyword from the data plane management table.
[0200] The control plane management table uses SPI and SI as table keywords, and the table content corresponding to the table keywords includes SFLoption TLV; the table items of the control plane management table have corresponding aging time, and the newly added table items in the control plane management table have the same content as the newly added table items in the data plane management table.
[0201] In the data forwarding device provided by the present embodiment, the data packet transmission method and the data packet transmission management method provided by the present embodiment, the data plane will set a data plane management table specifically used for associating and storing the SFL option TLV of the data packet with the SPI and SI information. After the data plane receives a data packet and obtains the original encapsulation information of the data packet, it will first report it to the control plane, and then, under the instruction of the control plane, the SPI, SI and SFLoption TLV of a data packet will be associated and stored in the data plane management table, so that after the data packet is processed by the SF, the corresponding SFL option TLV can be queried to implement universal network virtualization encapsulation, avoiding the problem that the universal network virtualization encapsulation of the data packet cannot be implemented at the SFF because the switching chip does not support the direct storage of the SFL option TLV and SPI mapping relationship of the data packet.
[0202] Furthermore, the data forwarding device sets a control plane management table corresponding to the data plane management table on the control plane, and sets an aging time for each item in the control plane management table. Based on the aging time, the deletion and storage management of the items in the control plane management table is implemented, that is, the deletion and storage management of the items in the data plane management table is implemented. On the basis of not requiring frequent interaction between the data plane and the control plane, the proportion of valid items in the data plane management table is deleted, thereby reducing the occupancy of storage resources and optimizing resource allocation.
[0203] Obviously, those skilled in the art should understand that all or some steps, systems, and functional modules / units in the above disclosed methods can be implemented as software (which can be implemented with program code executable by a computing device), firmware, hardware, and appropriate combinations thereof. In hardware implementations, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component can have multiple functions, or a function or step can be performed by several physical components in cooperation. Some physical components or all physical components can be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software can be distributed on a computer-readable medium, executed by a computing device, and in some cases, the steps shown or described can be performed in a different order than herein, and the computer-readable medium can include a computer storage medium (or a non-transitory medium) and a communication medium (or a transient medium). As is well known to those of ordinary skill in the art, the term computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information (such as computer readable instructions, data structures, program modules or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, it is well known to those of ordinary skill in the art that communication media typically contain computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transmission mechanism, and may include any information delivery medium. Therefore, the present invention is not limited to any particular combination of hardware and software.
[0204] The above contents are further detailed descriptions of the embodiments of the present invention in combination with specific implementation methods, and it cannot be determined that the specific implementation of the present invention is limited to these descriptions. For ordinary technicians in the technical field to which the present invention belongs, several simple deductions or substitutions can be made without departing from the concept of the present invention, which should be regarded as falling within the protection scope of the present invention.
Claims
1. A data packet transmission method, applied to a data plane of a service function forwarder SFF other than an ingress network virtualization edge NVE; the method comprises: Receive and parse a data packet to obtain original encapsulation information of the data packet, wherein the original encapsulation information includes a service path identifier SPI, a service index SI, and a service function list option triplet SFL option TLV; Reporting the original package information obtained by parsing to the control plane; Receive a table entry addition instruction issued by the control plane, and add the SPI, SI and SFL option TLV corresponding to the original encapsulation information as a table entry to the data plane management table according to the table entry addition instruction, wherein the data plane management table uses SPI and SI as table keywords and uses SFL option TLV as table content corresponding to the table keywords; When receiving a target data packet sent by the service function SF, query the data plane management table according to the SPI and SI carried by the target data packet to determine the SFL option TLV corresponding to the target data packet; Encapsulate the target data packet according to the SFL option TLV obtained by query and transmit the target data packet; Wherein, the control plane is configured as: Adding a table entry corresponding to the original encapsulation information to the control plane management table, wherein the control plane management table uses SPI and SI as table keywords, and the table content corresponding to the table keywords includes SFL option TLV; the table entry of the control plane management table has a corresponding aging time, and the newly added table entry in the control plane management table has the same content as the newly added table entry in the data plane management table; managing deletion or retention of the entry in the control plane management table based on the aging time of the entry, and deleting the entry from the control plane management table if the aging time of the entry expires; After determining that the entry needs to be deleted from the control plane management table, the interface of the data plane is called to issue an entry deletion instruction to the data plane, and the data plane is controlled to delete the corresponding entry with the same keyword from the data plane management table.
2. The data packet transmission method according to claim 1, characterized in that: Also includes: receiving a table entry deletion instruction sent by the control plane, wherein the table entry deletion instruction includes the SPI and SI of the target table entry to be deleted; The target entry in the data plane management table is deleted according to the entry deletion instruction.
3. The data packet transmission method according to claim 1 or 2, characterized in that: The newly added instruction according to the table entry Adding the SPI, SI and SFL option TLV corresponding to the original encapsulation information as a table entry to the data plane management table includes: The SPI, SI and SFL option TLV carried in the newly added instruction are added as a table entry to the data plane management table, the SPI and SFL option TLV carried in the newly added instruction are respectively the SPI and SFL option TLV in the original encapsulation information, and the SI carried in the newly added instruction is an updated SI value after the SI value in the original encapsulation information is subtracted by 1.
4. A data packet transmission management method, applied to the control plane of a service function forwarder SFF other than an ingress network virtualization edge NVE; the method comprises: Receive original encapsulation information of the data packet reported by the data plane, wherein the original encapsulation information includes SPI, SI and SFL optionTLV; Adding a table entry corresponding to the original encapsulation information in a control plane management table, wherein the control plane management table uses SPI and SI as table keywords, and the table content corresponding to the table keywords includes SFL option TLV; The table entries in the control plane management table have corresponding aging time, and the newly added table entries in the control plane management table have the same content as the newly added table entries in the data plane management table; managing deletion or retention of the entry in the control plane management table based on the aging time of the entry, and deleting the entry from the control plane management table if the aging time of the entry expires; After determining that the entry needs to be deleted from the control plane management table, calling the interface of the data plane to issue an entry deletion instruction to the data plane, and controlling the data plane to delete the corresponding entry with the same keyword from the data plane management table; The interface of the data plane is called to issue an entry addition instruction to the data plane, wherein the entry addition instruction is used to control the data plane to add a table entry corresponding to the original encapsulation information in the data plane management table, and the data plane management table uses SPI and SI as table keywords and SFL option TLV as the table content corresponding to the table keywords.
5. The data packet transmission management method according to claim 4, characterized in that: Before adding the entry corresponding to the original encapsulation information to the control plane management table, the method further includes: It is determined that there is no entry corresponding to the original encapsulation information in the control plane management table.
6. The data packet transmission management method according to claim 5, characterized in that: If it is determined that there is an entry corresponding to the original encapsulation information in the control plane management table, the data packet transmission management method further includes: The aging time of the entry corresponding to the original encapsulation information is reset to an initial value.
7. The data packet transmission management method according to any one of claims 4 to 6, characterized in that: The SPI and SFL option TLV carried in the newly added instruction are respectively the SPI and SFL option TLV in the original encapsulation information, and the SI carried in the newly added instruction is an updated SI value obtained by subtracting 1 from the SI value in the original encapsulation information.
8. A data packet transmission device, the data packet transmission device comprising: A receiving and parsing module, used for receiving and parsing a data packet to obtain original encapsulation information of the data packet, wherein the original encapsulation information includes SPI, SI and SFL option TLV; An information uploading module, used for reporting the original packaged information obtained by parsing to the control plane; A table entry adding module is used to receive a table entry adding instruction issued by the control plane, and add the SPI, SI and SFL option TLV corresponding to the original encapsulation information as a table entry to the data plane management table according to the table entry adding instruction, wherein the data plane management table uses SPI and SI as table keywords and uses SFL option TLV as table content corresponding to the table keywords; An information query module, configured to query the data plane management table according to the SPI and SI carried by the target data packet when receiving the target data packet sent by the service function SF, and determine the SFL option TLV corresponding to the target data packet; An encapsulation and transmission module, used for encapsulating the target data packet according to the SFL option TLV obtained by query and transmitting the target data packet; Wherein, the control plane is configured as: Adding a table entry corresponding to the original encapsulation information to the control plane management table, wherein the control plane management table uses SPI and SI as table keywords, and the table content corresponding to the table keywords includes SFL option TLV; the table entry of the control plane management table has a corresponding aging time, and the newly added table entry in the control plane management table has the same content as the newly added table entry in the data plane management table; managing deletion or retention of the entry in the control plane management table based on the aging time of the entry, and deleting the entry from the control plane management table if the aging time of the entry expires; After determining that the entry needs to be deleted from the control plane management table, the interface of the data plane is called to issue an entry deletion instruction to the data plane, and the data plane is controlled to delete the corresponding entry with the same keyword from the data plane management table.
9. A data packet transmission management device, the data packet transmission management device comprising: An information receiving module, used to receive original encapsulation information of a data packet reported on a data plane, wherein the original encapsulation information includes SPI, SI and SFL option TLV; an instruction sending module, used for calling the interface of the data plane to issue an entry adding instruction to the data plane, wherein the entry adding instruction is used for controlling the data plane to add an entry corresponding to the original encapsulation information in a data plane management table, wherein the data plane management table uses SPI and SI as table keywords and uses SFL option TLV as table content corresponding to the table keywords; The instruction sending module is also used for: Adding a table entry corresponding to the original encapsulation information in a control plane management table, wherein the control plane management table uses SPI and SI as table keywords, and the table content corresponding to the table keywords includes SFL option TLV; The table entries in the control plane management table have corresponding aging time, and the newly added table entries in the control plane management table have the same content as the newly added table entries in the data plane management table; managing deletion or retention of the entry in the control plane management table based on the aging time of the entry, and deleting the entry from the control plane management table if the aging time of the entry expires; After determining that the entry needs to be deleted from the control plane management table, the interface of the data plane is called to issue an entry deletion instruction to the data plane, and the data plane is controlled to delete the corresponding entry with the same keyword from the data plane management table.
10. A data forwarding device comprising a processor, a memory and a communication bus; The communication bus is used to realize the connection and communication between the processor and the memory; The processor is used to execute the data packet transmission program stored in the memory to implement the steps of the data packet transmission method as described in any one of claims 1 to 3, or the processor is used to execute the data packet transmission program stored in the memory to implement the steps of the data packet transmission management method as described in any one of claims 4 to 7.
11. A storage medium, characterized in that: The storage medium stores at least one of a data packet transmission program and a data packet transmission management program. The data packet transmission program can be executed by one or more processors to implement the steps of the data packet transmission method as described in any one of claims 1 to 3; the data packet transmission management program can be executed by one or more processors to implement the steps of the data packet transmission management method as described in any one of claims 4 to 7.
Citation Information
Patent Citations
Method, apparatus and system for forwarding packet in service function chaining (SFC)
CN107925613A