CN111857945A - Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium - Google Patents

Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium Download PDF

Info

Publication number
CN111857945A
CN111857945A CN201910365452.2A CN201910365452A CN111857945A CN 111857945 A CN111857945 A CN 111857945A CN 201910365452 A CN201910365452 A CN 201910365452A CN 111857945 A CN111857945 A CN 111857945A
Authority
CN
China
Prior art keywords
data
data packet
sfl
entry
plane
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910365452.2A
Other languages
Chinese (zh)
Inventor
涂晓平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201910365452.2A priority Critical patent/CN111857945A/en
Priority to PCT/CN2020/084612 priority patent/WO2020220987A1/en
Publication of CN111857945A publication Critical patent/CN111857945A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

The embodiment of the invention provides a data packet transmission and management method, a data packet transmission and management device, a data forwarding device and a storage medium, aiming at the problem that related technical chips do not support direct storage of information related to a data packet Geneve, so that a Geneve tunnel header and an Option TLV of the data packet are stripped, after the processing of a corresponding SF is completed, general network virtualization encapsulation cannot be carried out again, and the realization of a data service function chain is influenced, the data packet SPI, SI and SFL Option TLV are interacted through a data plane and a control plane, so that the data plane can store the mapping relation of the SPI, SI and SFL Option TLV through a data plane management table under the control of the control plane, and when the data packet returns from the SF to wait for encapsulation, the general network virtualization encapsulation can be realized by directly acquiring the SFL Option TLV corresponding to the data packet through querying the data plane management table.

Description

Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium
Technical Field
The present invention relates to the field of communications, and in particular, to a method and an apparatus for transmitting and managing data packets, a data forwarding device, and a storage medium.
Background
The data packet is subjected to Generic (Generic Network Virtualization Encapsulation) to carry SFP (Service function path) information and NSH (Network Service header) information in the data packet. The NSH packet includes an SPI (Service path identifier) and an SI (Service index).
When a data packet is forwarded between SFFs (service function forwarders), after one SFF receives a data packet from another SFF, it is necessary to strip SFP information carried by the data packet from the Geneve tunnel header and the SFL Option TLV (service function list Option triplet) of the data packet, and then the data packet can be transmitted to a corresponding SF (service function) for processing. After the SF processes the data packet, the processed data packet is transmitted to the SFF, so that the SFF performs general network virtualization encapsulation on the data packet. When performing general network virtualization encapsulation on a packet, the SFF needs the SPI, SFP information, and current SI of the packet. However, neither an Application Specific Integrated Circuit (ASIC) switch chip nor a language supporting a programmable switch chip (such as P4, NPL) support that the switch chip directly stores information related to a packet universal network virtualization package, that is, after an SFF strips SFP information of a packet, the switch chip cannot record SFP information corresponding to the packet, and thus when the packet is subjected to a gene, SFP information corresponding to the packet cannot be acquired, and thus the gene for the packet cannot be realized.
Disclosure of Invention
The embodiments of the present invention provide a method and an apparatus for transmitting and managing data packets, a data forwarding device, and a storage medium, and mainly solve the technical problem that: the switch chip of the switch does not support the information about the storage data packet and the universal network virtualization encapsulation, so that the problem that the data packet processed by SF is stripped because of SFP and the universal network virtualization encapsulation can not be carried out again is caused.
To solve the foregoing technical problem, an embodiment of the present invention provides a data packet transmission method, including:
receiving and analyzing the data packet to obtain original package information of the data packet, wherein the original package information comprises SPI, service index SI and SFL option TLV;
reporting the original package information obtained by analysis to a control plane;
receiving a table item newly-added instruction issued by a control plane, and adding SPI, SI and SFL option TLV corresponding to original packaging information as a table item to a data plane management table according to the table item newly-added instruction, wherein the data plane management table takes the SPI and the SI as table keywords and takes the SFL option TLV as table contents corresponding to the table keywords;
when a target data packet sent by a service function SF is received, inquiring a data plane management table according to SPI and SI carried by the target data packet, and determining an SFL option TLV corresponding to the target data packet;
And packaging the target data packet according to the SFL option TLV obtained by inquiry and transmitting the target data packet.
The embodiment of the invention also provides a data packet transmission management method, which comprises the following steps:
receiving original package information of a data packet reported by a data plane, wherein the original package information comprises SPI, SI and SFL option TLV;
and calling an interface of the data plane to issue a table entry adding instruction to the data plane, wherein the table entry adding instruction is used for controlling the data plane to add a table entry corresponding to the original packaging information in a data plane management table, and the data plane management table takes SPI and SI as table keywords and SFL option TLV as table contents corresponding to the table keywords.
An embodiment of the present invention further provides a data packet transmission device, where the data packet transmission device includes:
the receiving and analyzing module is used for receiving and analyzing the data packet to obtain original packaging information of the data packet, wherein the original packaging information comprises SPI, SI and SFL option TLV;
the information uploading module is used for uploading the analyzed original package information to the control plane;
the table entry adding module is used for receiving a table entry adding instruction issued by the control surface, and adding SPI, SI and SFL option TLV corresponding to the original packaging information as a table entry to the data surface management table according to the table entry adding instruction, wherein the data surface management table takes the SPI and the SI as table keywords and takes the SFL option TLV as table contents corresponding to the table keywords;
The information query module is used for querying a data plane management table according to the SPI and the SI carried by the target data packet and determining the SFL option TLV corresponding to the target data packet when the target data packet sent by the service function SF is received;
and the encapsulation transmission module is used for encapsulating the target data packet according to the SFL option TLV obtained by inquiry and transmitting the target data packet.
An embodiment of the present invention further provides a data packet transmission management device, where the data packet transmission management device includes:
the information receiving module is used for receiving original packaging information of the data packet reported by the data plane, wherein the original packaging information comprises SPI, SI and SFL option TLV;
and the instruction sending module is used for calling an interface of the data plane to issue an item adding instruction to the data plane, the item adding instruction is used for controlling the data plane to add an item corresponding to the original packaging information in the data plane management table, and the data plane management table takes SPI and SI as table keywords and SFL option TLV as table contents corresponding to the table keywords.
The embodiment of the invention also provides data forwarding equipment, which comprises a processor, a memory and a communication bus;
the communication bus is used for realizing connection communication between the processor and the memory;
the processor is used for executing the data packet transmission program stored in the memory to realize the steps of the data packet transmission method, or the processor is used for executing the data packet transmission program stored in the memory to realize the steps of the data packet transmission management method.
The embodiment of the present invention further provides a storage medium, where the storage medium stores at least one of a data packet transmission program and a data packet transmission management program, and the data packet transmission program may be executed by one or more processors to implement the steps of the data packet transmission method; the packet transmission management program may be executed by one or more processors to implement the steps of the packet transmission management method described above.
The invention has the beneficial effects that:
the data packet transmission method and the data packet transmission management method provided by the embodiment of the invention receive and analyze 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, aiming at the problem that the chip in the related technology does not support the direct storage of the information related to the data packet, so that the Geneve tunnel header and the Option TLV of the data packet are stripped, and after the corresponding SF is processed, the universal network virtualization encapsulation cannot be carried out again, and the realization of the data service function chain is affected. After the control plane receives the original encapsulation information, the control plane controls the data plane to add a table entry corresponding to the original encapsulation information into the data plane management table, because the data plane management table uses the SPI and the SI as table keys and uses the SFL option TLV as table contents corresponding to the table keys, the table entry records the mapping relationship among the SPI, the SI, and the SFL option TLV. After the SF processes the data packet stripped by the Geneve tunnel header and the 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 the SI carried by the data packet, so that the universal network virtualization encapsulation is completed according to the SPI, the SI and the SFL Option TLV of the data packet, and the transmission of the data packet to the next node is realized. According to the data packet transmission and management scheme provided by the embodiment of the invention, the data packets are interacted with the SPI, SI and SFL option TLV through the data plane and the control plane, so that the data plane can store the mapping relation of the SPI, SI and SFL option TLV through the data plane management table under the control of the control plane, and when the data packets return from the SF to wait for encapsulation, the SFL option TLV corresponding to the data packets can be directly acquired through inquiring the data plane management table, so that the universal network virtualization encapsulation is realized.
Additional features and corresponding advantages of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention.
Drawings
FIG. 1 is a schematic service chain diagram of a Geneve overlay network according to a first embodiment of the present invention;
FIG. 2 is a diagram illustrating a data structure of a Geneve tunnel header according to a first embodiment of the present invention;
fig. 3 is a schematic data structure diagram of the SFL Option TLV shown in the first embodiment of the present invention;
fig. 4 is a schematic interaction diagram of a data plane and a control plane in a data transmission scheme in a data forwarding device according to a first embodiment of the present invention;
fig. 5 is a flowchart of a method for managing packet transmission of a control plane according to a second embodiment of the present invention;
fig. 6 is a flowchart of deleting entries in the data plane according to the second embodiment of the present invention;
fig. 7 is a flowchart of performing entry aging evaluation by the control plane according to the second embodiment of the present invention;
fig. 8 is a processing flow chart of the control plane shown in the second embodiment of the present invention after receiving the original encapsulation information reported by the data plane;
fig. 9 is a schematic structural diagram of a data packet transmission apparatus according to a fourth embodiment of the present invention;
Fig. 10 is a schematic structural diagram of a packet transmission management apparatus according to a fourth embodiment of the present invention;
fig. 11 is a schematic diagram of a hardware structure of a data forwarding device provided in the fifth embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, embodiments of the present invention are described in detail below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
The first embodiment is as follows:
when data packets are transmitted in a network, the data packets often need to pass through various service function nodes to ensure that the network can provide safe, rapid and stable network services for network management personnel according to design requirements. These service function nodes (SF) include well-known FireWalls (FireWalls), Intrusion detection (Intrusion detection system), Load Balancing (Load Balancing), and the like. Network traffic needs to traverse these service points in a defined order as required by the service logic to achieve the required security services.
The RFC7665 document defines the architecture of an SFC (Service function chain) that defines a Service function path as a certain set of Service function forwarders/Service functions that a packet will access when actually traversing the network.
The optimized SFP is helpful for constructing an efficient service Function chain, and can be used for controlling traffic according to a classification rule and metadata information so as to provide services for NFV (Network Function Virtualization). The metadata is typically passed between the service function and the service function forwarder SFF along the service function path. The NVO3(network virtualization over Layer 3, Layer 3 network virtualization) domain uses tunneling and encapsulation protocols (e.g., gene) to provide connectivity for tenant workloads and service functions running in its domain.
The [ RFC8300] document defines a new encapsulation protocol, the Network Service Header (NSH), for encoding SFPs and metadata.
The draft-routes-nvo 3-gene-availability-for-sfc draft proposes a method for using generic network virtualization encapsulation (Geneve) to carry Service Function Path (SFP) information and Network Service Header (NSH) encapsulation. In this scheme, SFP will implement the transfer using the new Geneve Service Function List (SFL) option and strictly limit the transfer between service function forwarders and Network Virtualization Edges (NVEs) in the same network virtualization overlay network, NSH encapsulation will include service path identification and service index, NSH SI will jump as VNF to index of SFL.
The following describes the forwarding flow of the scheme proposed in the draft-hubs-nvo 3-gene-availability-for-sfc:
1) ingress operation (Ingress operation)
The controller may program the ingress NVE node to classify traffic and identify a service function path, i.e., a set of service functions in the path. And the ingress NVE node (SC) fills a Service Function List (SFL) in the path, and then resolves the first service function according to the SFL to carry out the Geneve tunnel encapsulation. Then, the service index is set to n, where n is the number of elements in the SFL, and the Geneve packet is sent to the first nve (sff), please refer to fig. 1, which shows a service chain diagram of the Geneve overlay network.
2) Transit operation (Transit operation)
The data packets are forwarded between Service Function Forwarders (SFFs) along a service function path, SFL options are identified on the SFFs, and service functions are located in the list based on a Service Index (SI).
When a packet arrives at an SFF, the Geneve tunnel header and SFL Option TLV of the packet will be stripped. Please refer to fig. 2 for the data structure of the Geneve tunnel header:
VER (2 bit): version, which is currently 0;
opt Len (6 bit): the Length of Variable Length Options is indicated in units of 4 bytes. Since there are only 6 bits, the Variable Length Options is 252(63 x 4) bytes at most.
O (1 bit): indicating that this is an OAM packet containing control information rather than data. The Endpoint can prioritize this packet based on this bit.
C (1 bit): indicating that within the Variable Length Options, there are one or more Critical Options. When C is set, Variable Length Options must be parsed and if the current Endpoint does not support GENEVE parsing, then the packet should be dropped. If C is not set, then Endpoint can directly discard all Variable Length Options according to Opt Length.
Rsvd (6 bit): fields are reserved.
Protocol Type (16 bit): the type of protocol encapsulated, for example Ethernet, is 0x 6558. The presence of this field makes it possible for GENEVE to encapsulate other two-layer protocols.
VNI (24bit), namely, Virtual NETwork Identifier (VXLAN NETwork Identifier).
Reserved (8 bit): fields are reserved.
Variable Length Options: consists of TLVs, containing extensible metadata.
Fig. 3 shows the data structure of the SFL Option TLV.
The stripped data packet is transmitted to the SF or VNF, and the SF or VNF performs corresponding processing on the data packet. When the data packet carries the SPI and returns from the SF together with the 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 analyzed according to the SFL, the Geneve tunnel encapsulation is carried out, the service index is reduced by 1, and the Geneve data packet is sent to the next NVE (SFF).
3) Termination operation (end operation)
The service index of the Geneve data packet received by the last SFF node from the previous SFF node is 1, and the data packet with the service index of 0 is discarded. At the last NVE node along the service function path, the NVE locates the service function in the sfload TLV based on the NSH service index.
The Geneve tunnel header and SFL Option TLV will be stripped off and the packet will be passed to the SF. When a packet returns from the SF, the SFL Option TLV will be able to be located based on the NSH SPI or based on the NVE on the packet. At this time, the service index is 0, the last SFF encapsulates the NSH of the stripped packet, and forwards the packet to the destination.
In fig. 1, the Geneve overlay network 1 includes four SFF nodes, a data packet is sent from an src node to an SFF4 and then transmitted from an SFF4 to an SFF3, a Geneve tunnel header and an Option TLV of the data packet are stripped off at the SFF3, and then the SFF3 transmits the data packet to its corresponding SF1, and the data packet is processed by an SF 1. After the SF1 completes processing the data packet, the processed data packet is returned to the SFF3, and the SFF3 performs Geneve tunneling on the data packet and then sends the data packet to the SFF 2. The processing of the data packets on the SFFs 2 and the SF2, the service index of the data packet becomes 0 after the SF2 finishes processing the data packet, and when the SFF2 receives the data packet with the service index of 0 from the SF, the NSH of the stripped data packet is encapsulated, and the data packet is sent to the SFF1 and then sent to the dst node by the SFF 1.
In fig. 1, because there are only two service function nodes, in some scenarios, after SFF2 receives a packet from SF2, the packet may not be sent to SFF1, but sent out of Geneve1 directly.
As can be seen, the SFF (or NVE) should maintain an association between the SFL Option TLV and the NSH service path identification SPI. However, after the SFF strips the SFP information of a data packet, the current switch chip cannot record the SFP information corresponding to the data packet, so that when the data packet is subjected to Geneve, the SFP information corresponding to the data packet cannot be acquired, and thus Geneve for the data packet cannot be implemented, for this, this embodiment provides a data transmission scheme, please refer to an interaction diagram of a data plane and a control plane in a data transmission scheme in the data forwarding device shown in fig. 4:
s402: and the data plane receives and analyzes the data packet to obtain the original packaging information of the data packet.
It should be appreciated 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 the general network virtualization. When the data plane receives a packet, the data plane performs parsing such as stripping of a generic tunnel header and an Option TLV on the packet, thereby acquiring original encapsulation information of the packet, where the original encapsulation information is SPI, SI, and SFL Option TLV (service function list Option triplet) of the packet.
For a packet, no matter which node in the SFL is currently located, the SPI and the sflocation TLV are always unchanged, while the SI varies with the node where the packet is located, and specifically, the value of the SI gradually decreases with the transmission process of the packet. The SI in the original package information obtained by analyzing the data packet by the data plane refers to the SI carried by the data packet when the data plane receives the data packet.
S404: and the data plane reports the analyzed original package information to the control plane.
After the data plane acquires the original encapsulation information of the data packet, the original encapsulation information may be reported to the control plane, and it should be understood that the control plane is also the control plane of the SFF. It should be noted, however, that the data plane and the control plane may be located on different physical devices.
In this embodiment, after the data plane obtains the original encapsulation information through analysis, the data plane not only reports the original encapsulation information to the control plane, but also sends the data packet with the Geneve tunnel header and the SFL option TLV stripped to the corresponding SF, so that the SF performs corresponding function processing on the data packet.
S406: and the control plane calls an interface of the data plane to issue a table item adding instruction to the data plane.
The control plane receives the original package information reported by the data plane, and after receiving the original package information reported by the data plane, the control plane can issue a table entry adding instruction to the data plane, so that the data plane adds a table entry corresponding to the original package information in the data plane management table.
It should be understood that the data plane management table is provided on the data plane side, being provided by the data plane. The method is used for maintaining and recording the mapping relation among the SPI, the SI and the SFL option TLV corresponding to the data packet, so that after the data plane receives the data packet returned from the SF, the SFL option TLV of the data packet can be determined, and further the universal network virtualization packaging of the data packet is realized. In this embodiment, the data plane management TABLE uses SPI and SI as TABLE keys, and uses SFL option TLV as TABLE contents corresponding to the TABLE keys, please refer to the data plane management TABLE SFL _ TABLE _ data shown in TABLE 1:
TABLE 1
SPI SI SFL option TLV
7 6 x
2 2 y
…… …… ……
n 2 v
In table 1, a row is an entry, and as can be seen from table 1, a row in the table includes an SPI value, an SI value, and an SFL option TLV corresponding to the SPI and SI. Therefore, one table entry includes SPI, SI, and SFL option TLV corresponding to SPI and SI. And after one data packet carries the SPI and the SI and returns to the data plane of the SFF from the SF, the data plane can search corresponding SFL option TLV information from the data plane management table according to the SPI and the SI carried by the data packet.
When issuing the entry addition instruction to the data plane, the control plane may invoke an interface of the data plane, including but not limited to an SDK (Software Development Kit), to issue the instruction.
S408: and the data plane adds the SPI, the SI and the SFL option TLV corresponding to the original package information as an entry to a data plane management table according to the entry adding instruction.
After receiving the table item addition instruction sent by the control plane, the data plane adds a new table item in the data plane management table according to the table item addition instruction. Usually, the table addition command sent by the control plane to the data plane carries related information of the newly added table, including SPI, SI, and SFL option TLV in the newly added table.
It should be understood that the control plane instructs the data plane to add an entry corresponding to the original encapsulation information through the entry addition instruction, but this does not mean that the SPI, SI, and SFL option TLV in the added entry is the SPI, SI, and SFL option TLV in the original encapsulation information.
For example, in some examples of this embodiment, after the SF receives the data packet sent by the SFF data plane, the SI of the data packet is decremented, usually by "1", so that, although the data packet sent by the SF to the SFF is the same data packet as the data packet sent by the SFF to the SF, 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 packets is really different, and the SI value of the packet sent by SF to SFF is 1 less than the SI value of the packet sent by both SFFs 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, the data plane performs decremental update on the SI in the original encapsulation information on the basis of the SI corresponding to the data packet when the entry corresponding to the data packet is newly added in advance. Here, as an example, assuming that the value of SI in the original encapsulation information reported by the data plane is "4", the value of SI carried in a data packet returned by the SF to the SFF data plane should be "3", and naturally, when the data plane performs the general network virtualization encapsulation on the data packet returned by the SF, the data plane is queried in the data plane management table based on the SI value being "3". Therefore, when the control plane controls the data plane to add a new entry in the data plane management table through the entry addition instruction, the value of SI in the original package information should be decremented by 1 to obtain "3", so that the data plane is added with an entry with the SI value of "3".
Of course, as will be understood by those skilled in the art, even if the SI value carried in the data packet returned from the SF has been decremented by the SF, in some examples of the embodiment, when the control plane adds an entry to the control data plane, the SI value carried in the entry addition instruction may still be the SI value in the original encapsulation information. In this way, when the data plane queries the data plane management table, the SI value obtained by subtracting 1 from the data packet is increased by 1. For example, assuming that the value of SI in the original encapsulation information reported by the data plane is "4", after receiving the original encapsulation information reported by the data plane, the control plane may send an entry addition instruction to the data plane, where the value of SI in the entry addition instruction is still "4". Correspondingly, the SI value of the data plane is "4" in the newly added entry of the data plane management table. The value of the SI carried by the data packet returned by the SF to the SFF data surface should be '3', and when the data surface performs general network virtualization encapsulation on the data packet returned from the SF, the data surface management table can be inquired after increasing '1' on the basis of the current SI value '3'. That is, the data plane has "4" as one of the keys for querying the data plane management table. 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 the SFL option TLV corresponding to the data packet is obtained, and the SI value on the data packet is not really changed.
It can be understood that, as long as the control plane determines the content of the table entry new increase instruction corresponding to each data packet according to the unified rule, and the data plane also queries the data plane management table according to the corresponding rule, it is feasible whether the SI value in the table entry new increase instruction sent by the control plane is consistent with the SI value in the original encapsulation information.
S410: and when the data plane receives a target data packet sent by the SF, inquiring a data plane management table according to the SPI and the SI carried by the target data packet, and determining the SFL option TLV corresponding to the target data packet.
When the data plane receives a data packet returned by the SF, it needs to perform general network virtualization encapsulation on the data packet, and for convenience of description, the data packet is referred to as a "target data packet". It can be understood that, for the same data plane, it may continuously receive packets with the same or different services, so that, while receiving packets sent from other SFFs or NVEs, it also receives a processed target packet sent by the SF, and the entry corresponding to the target packet is not necessarily the latest entry in the data plane management table, but is necessarily an entry that the data plane has been added to the data plane management table.
The data plane can acquire the SPI and the SI carried on the target data packet, and then query a data plane management table according to the SPI and the SI: if the SI value in the table item newly-increased instruction sent by the control plane is subjected to decrement processing when the table item is newly increased, the data plane can directly query the data plane management table by using the SPI and the SI acquired from the target data packet as keywords to acquire the corresponding SFL option TLV; if the SI value in the table item addition instruction sent by the control plane is not subjected to decremental processing when the table item is added, the data plane may add "1" to the SI value obtained from the target data packet and then query the data plane management table together with the obtained SPI value as a key to obtain the corresponding SFL option TLV.
S412: and the data plane encapsulates the target data packet according to the SFL option TLV obtained by query and transmits the target data packet.
After the data plane acquires the SFL option TLV of a target data packet, it may perform generic network virtualization encapsulation on the target data packet according to the SFL option TLV. And after the universal network virtualization encapsulation is completed, the data plane sends the encapsulated data packet to the next node of the node in the SFL.
Although the current switch chip does not support direct storage of information on the received packet, in the packet transmission method and the packet transmission management method provided in this embodiment, the data plane sets a data plane management table specifically used for storing the sflocation TLV, SPI, and SI information in an associated manner. After a data plane receives a data packet and acquires original encapsulation information of the data packet, the data packet is reported to a control plane firstly, and then SPI, SI and SFL option TLV of the data packet are stored in a data plane management table in an associated mode under the indication of the control plane, so that after the data packet is processed by SF, the corresponding SFL option TLV can be inquired to realize general network virtualization encapsulation, and the problem that the general network virtualization encapsulation of the data packet at the SFF cannot be realized due to the fact that a switching chip does not support the mapping relation between the SFL option TLV and the SPI of a direct storage data packet is solved.
Example two:
in this embodiment, a packet transmission scheme will be described continuously, it should be understood that the packet transmission scheme includes a method for implementing a packet transmission in a data plane and a method for implementing a packet transmission management in a control plane, and the packet transmission scheme is mainly described in the following with reference to the packet transmission management method in the control plane, please refer to the flowchart shown in fig. 5:
s502: and the control plane receives the original encapsulation information reported by the data plane.
The original encapsulation information received by the control plane shall include 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 besides the SPI, the SI, and the SFL option TLV.
S504: and the control plane adds a table entry corresponding to the original packaging information in the control plane management table and issues a table entry addition instruction to the data plane.
In this embodiment, not only the data plane but also the Control plane is provided with a management TABLE, which is a 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 keys, and the table contents corresponding to the table keys also include SFL option TLV. When the control plane receives the original encapsulation information reported by the data plane, a table entry corresponding to the original encapsulation information may be newly added in the control plane management table. Similar to the new entry corresponding to the original package information added in the data plane management table, the control plane does not indicate that the content in the new entry is completely identical to the content in the original package information, and for example, the SI value in the new entry may be an updated SI value obtained after decrementing the SI value in the original package information.
In this embodiment, for the same data packet, the entry content of the newly added entry in the data plane management table is the same as the entry content of the newly added entry in the control plane management table, for example, if in the original encapsulation information reported by the data plane, SPI is "27", SI is "4", and SFL option TLV is "x", the control plane may add an entry whose SPI is "27", SI is "3", and SFL option TLV is "x" in the control plane management table according to the original encapsulation information. In addition, the control plane can also send an entry addition instruction for the original package information to the data plane, where the entry addition instruction includes SPI "27", SI "3", and SFL option TLV "x". Therefore, after the data plane receives the entry addition instruction, entries with SPI of "27", SI of "3", and SFL option TLV of "x" are added in the data plane management table.
It can be understood that the process of adding the table entry in the control plane management table by the control plane and the process of issuing the table entry addition instruction to the data plane may be performed simultaneously or sequentially, for example, adding the table entry in the control plane management table first and then issuing the table entry addition instruction; of course, in some other examples of this embodiment, the control plane may issue the entry addition instruction first, and then add an entry in the control plane management table.
The control plane is provided with a control plane management table mainly for managing each table entry in the data plane management table, where the management includes addition and deletion of table entries in the data plane management table:
(1) newly adding:
it can be understood that, for a plurality of packets belonging to the same service, SPI and sflocation TLV of each packet are the same, and naturally SI values of the packets at the same SFF node are also the same, so that for the packets belonging to the same service, if an entry is newly added to the data plane management table for each packet, a plurality of entries having substantially the same contents exist in the data plane management table. This results in a waste of data plane storage resources.
And after the control plane is provided with a control plane management table, and the control plane management table is also added with the table entry with the same content as that in the data plane management table, after the data plane reports the original encapsulation information of a data packet, before the control plane sends a table entry addition instruction to the data plane, the control plane can determine whether the control plane management table has the table entry corresponding to the original encapsulation information, if so, the control plane does not need to add the corresponding table entry in the control plane management table, and only if not, the control plane management table can add the corresponding table entry in the control plane management table. Of course, since the contents of the entries in the control plane management table and the data plane management table are the same, the control plane determines whether or not an entry corresponding to the original package information exists in the control plane management table, that is, whether or not an entry corresponding to the original package information exists in the data plane management table is determined. If the judgment result of the control plane is yes, the control plane does not need to send a table entry adding instruction to the data plane, and only if the judgment result is no, the control plane sends a table entry adding instruction to the data plane, so that the data plane adds a table entry which does not exist originally.
Therefore, the control plane is provided with the control plane management table, so that the control plane manages whether to add new entries according to the control plane management table, a plurality of repeated entries are avoided being arranged in the data plane management table, the waste of data plane storage resources is reduced, and the optimal configuration of the resources is facilitated.
(2) And (3) deleting:
as can be seen from the foregoing description, in the data plane management table, one table entry is not only used for encapsulating and transmitting one data packet, but is used for encapsulating and transmitting the data packet with the same SPI and SI, that is, transmitting all data packets with the same service. However, when all the packets of a service are encapsulated and transmitted on the SFF data plane, the corresponding entries of the service packets in the data plane management table no longer make sense. If the table entries are continuously reserved, the storage resources of the SFF are occupied, and resources are wasted. Therefore, in this embodiment, the control plane may delete the invalid entry in the data plane management table according to the control plane management table.
In this embodiment, although the control plane management table and the data plane management table have the same contents, the control plane management table and the data plane management table do not completely correspond to each other: each entry in the control plane management table has a corresponding aging time, the control plane may manage deletion or retention of the entry in the control plane management table based on the aging time of the entry in the control plane management table, and if the aging time of one entry is over, the control plane deletes the entry from the control plane management table. Please refer to the control plane management table shown in table 2:
TABLE 2
SPI SI SFL option TLV Aging time
7 6 x t1
2 2 y t0
…… …… …… ……
n 2 v t3
Of course, when there is a certain entry in the control plane management table that needs to be deleted, there is naturally 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 a certain entry in the control plane management table is over, the control plane may send an entry deletion instruction to the data plane by calling the interface of the data plane, so that the data plane deletes the specified entry from the data plane management table. Please refer to a flowchart of table entry deletion in the data plane shown in fig. 6:
s602: and the data plane receives a table item deleting instruction sent by the control plane.
When the control plane sends a table entry deletion instruction to the data plane, the control plane needs to delete the number of the table entry deletion instruction, which usually includes SPI and SI of a target table entry to be deleted.
S604: and the data plane deletes the target table entry in the data plane management table according to the table entry deletion instruction.
After the data plane receives the entry deletion instruction, the target entry may be found from the data plane management table according to the SPI and SI carried in the entry deletion instruction, and then the entry is deleted.
For each entry in the control plane management table, the aging time may be the same or may not be the same, for example, in an example of the present embodiment, the aging time set by the control plane for one entry is t1, and the aging time of all the other entries is t 2. However, in another example of the present embodiment, the control plane sets the aging time for all the entries to be t 1. For the setting of the aging time of each table entry, the aging time may be set by the network manager in a unified manner according to the empirical value, and optionally, the network manager sets the aging time according to the transmission time interval between two adjacent data packets in the same service.
It is understood that many entries may exist in one 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 count the entry according to the aging time of the entry, the control plane may need to spend more processing resources to perform aging time monitoring. In order to save processing resources, in some examples of this embodiment, the control plane may periodically and periodically judge whether the aging time of each entry ends, in an example of this embodiment, the processing period set by the control plane is t0, the control plane may reduce the aging time of each entry in the control plane management table by t0 every t0 time, then judge whether the remaining aging time of each entry is less than or equal to 0, and for those entries whose remaining aging time does not exceed 0, the control plane may determine that the entry needs to be deleted. For example, assuming that three entries, namely, entry 1, entry 2 and entry 3, remain in the control plane management table after the previous aging evaluation, the remaining aging times of the three entries are 5s, 3s and 7s, and the processing cycle of the control plane is 5s, when the processing cycle arrives, the remaining aging times of the three entries, namely, entry 1, entry 2 and entry 3, become 0s, -2s and 2s, respectively, at this time, because the remaining aging times of entry 1 and entry 2 are both less than or equal to 0, entry 1 and entry 2 will be deleted in the processing process, and correspondingly, the same key entry of entry 1 and entry 2 at the terminal of the data plane management table will also be deleted. Please refer to the flowchart of fig. 7:
S702: selecting a table item which is not subjected to the aging evaluation from a control surface management table;
s704: reducing the aging time of the table entry by t 0;
s706: judging whether the residual aging time of the table item is less than or equal to 0;
if the determination result is yes, the process proceeds to S708, otherwise, the process proceeds to S710.
S708: deleting the table entry from the control plane management table, and indicating the data plane to delete the corresponding table entry of the same key word in the data plane management table through a table entry deleting instruction;
s710: and judging whether the control plane management table has any table entry which is not subjected to the aging evaluation.
If the determination result is yes, the process proceeds to S702, otherwise, the process proceeds to S712.
S712: and waiting for the time length of t0 and entering the next aging evaluation treatment.
It should be understood that, in the process of performing aging evaluation on the entries in the control plane management table, if the set processing cycle duration is shorter, the evaluation of the control plane is more frequent, so that after the actual aging time of one entry is over, the entry can be cleaned as soon as possible, and the entry cannot be deleted for processing because the processing cycle is short, so that the proportion of the effective entries in the control plane management table and the data plane management table can be increased, the waste of storage resources is reduced, and meanwhile, the processing resources of the control plane for aging evaluation can also be increased.
Because each entry in the control plane management table has an aging time, as long as the aging time is not over, the entry will not be deleted. 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 the 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 or add a corresponding entry in the control plane management table, and 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 the data packet of the same service before the aging time of the entry is finished, the aging time of the entry is reset to the initial value again, and the process is circulated until all data packets of the service are transmitted, or the aging time of the entry is finished before the new data packet arrives.
The following describes, with reference to the flowchart of fig. 8, a processing procedure after the control plane receives the original encapsulation information reported by the data plane:
s802: it is determined whether or not an entry corresponding to the received original encapsulation information exists in the control plane management table.
If yes, the process proceeds to S804, otherwise, the process proceeds to S806.
S804: and resetting the aging time of the table entry corresponding to the original packaging information in the control plane management table to an initial value.
Since the control plane management table already has the entry corresponding to the original encapsulation information, the control plane may directly initialize the aging time of the corresponding entry in the control plane management table in order to reduce the occupation of the storage resources of the control plane and the data plane. In fact, this process is equivalent to modifying the table entry in the control plane management table, and the table entry corresponding to the original encapsulation information reported by the data plane is obtained through modification.
S806: and adding a table entry corresponding to the original package information in the control plane management table.
If the control plane is judged, it is determined that the table entry corresponding to the original encapsulation information does not exist in the control plane management table, and the control plane can add the table entry corresponding to the original encapsulation information in the control plane management table.
S808: and sending a table item adding instruction corresponding to the original packaging information to the data plane.
Because the control plane management table does not have the entry corresponding to the original package information, the data plane management table does not naturally have the entry corresponding to the original package information, and therefore, the control plane also sends an entry addition instruction to the data plane, so that the data plane adds the entry corresponding to the original package information in the data plane management table.
It is needless to say that, although in fig. 8, the control plane sends the new entry to the data plane after the control plane sends the new entry to the control plane management table, in other examples of this embodiment, the control plane may send the new entry to the control plane management table first and then add the new entry to the control plane management table, or both processes may be performed simultaneously.
Of course, it is understood that in some other examples of this embodiment, the control plane management table may not be used to manage deletion of the entry in the data plane management table, and after the data plane completes search of one data packet SFL option TLV information and general network virtualization encapsulation of the data packet, the control plane may be reported to allow the control plane to issue an entry deletion instruction, and then delete the entry according to the entry deletion instruction. Or the data plane directly deletes the table entry after finishing the search of the SFL option TLV information of a data packet and the universal network virtualization encapsulation of the data packet. In the two latter schemes, 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 an entry addition instruction to add an entry to the data plane.
In the data packet transmission management scheme provided by this embodiment, the control plane management table corresponding to the data plane management table is set on the control plane, aging time is not set for each table entry in the control plane management table, and memory deletion management of the table entry in the control plane management table is realized based on the aging time, that is, memory deletion management of the table entry in the data plane management table is also realized.
Example three:
in order to make those skilled in the art better understand the advantages and details of the data transmission scheme in the foregoing embodiments, the present embodiment will describe, with reference to specific examples, a process of the control plane and the data plane jointly implementing a data packet transmission management method and a data packet transmission method in the foregoing embodiments:
preset processing:
the network administrator sets a fixed entry aging time (assumed to be aging time 20s) in advance on the Control plane, and creates an empty TABLE (assumed here to be SFL _ TABLE _ Control) containing SFL option tlv and an aging time value of entry contents corresponding to the TABLE key, using SPI and SI as TABLE keys.
On the other hand, the control plane also creates a TABLE with SPI and SI as TABLE keys and SFL option TLV as TABLE contents corresponding to the TABLE keys on the Data plane by calling the switching chip SDK (or related technology) (here, the TABLE name is assumed to be SFL _ TABLE _ Data).
In addition, the network administrator may set a timing processing procedure on the control plane (assuming that the timing time is 5s, i.e., the processing cycle is 5 s).
Processing of the data plane:
and (3) processing a Transit operation on the data plane:
1) when a packet arrives at the SFF, the data plane strips the packet's Geneve tunnel header and SFL options tlv, and then passes the packet to a Service Function (SF) or Virtual Network Function (VNF) for processing.
2) The data plane sends SFL option TLV (assuming three IP address lists { [10.5.2.1], [10.6.3.1], [10.7.3.1] }) of the packet and corresponding SPI and SI values (assuming SPI equal to 3 and SI equal to 3) to the control plane.
3) When the data packet carries the SPI and the SI and returns from the SF or VNF, the SI carried by the data packet is decremented by the SF or VNF, and the SI value carried by the data packet is changed to 2, that is, the SPI of the returned data packet is 3, and the SI of the returned data packet is 2. And the Data plane queries SFL _ TABLE _ Data by taking the SPI and SI carried by the Data packet as values as keywords, and determines SFL option TLV of the returned Data packet as { [10.5.2.1], [10.6.3.1], [10.7.3.1] }.
4) And the data plane encapsulates the inquired SFL option TLV into a data message and continues the forwarding process.
The processing procedure of the control plane:
Figure BDA0002047997400000201
and the control plane performs the processing of table item addition or modification:
1) the control plane receives the original encapsulation information data sent on the data plane, where SPI is 3, SI is 3, and the corresponding SFL options tlv is { [10.5.2.1], [10.6.3.1], [10.7.3.1] }.
2) The control plane subtracts 1 from the SI value in the original encapsulation information to obtain SI 2.
3) The SFL _ TABLE _ Control TABLE is queried by the Control plane for the current SPI and SI values (SPI 3, SI 2) as keys.
If the data packet currently received by the data plane is not the head packet of the service to which the data packet belongs, the Control plane will inquire the hit, and in this case, the Control plane resets the aging time of the entry inquired and hit in the SFL _ TABLE _ Control to 20 s.
If the data packet currently received by the data plane is the first packet of the service to which the data packet belongs, the query cannot be performed for a hit, so the Control plane adds an entry corresponding to the original encapsulation information to the SFL _ TABLE _ Control, the SPI of the newly added entry is 3, the SI is 2, the SFL option TLV is { [10.5.2.1], [10.6.3.1], [10.7.3.1] }, and the aging time is 20 s. Meanwhile, the control plane calls the switching chip API (or related technologies), and adds an SPI ═ 3, an SI ═ 2, and SFL option TLV to { [10.5.2.1], [10.6.3.1], [10.7.3.1] } entries in SFL _ TABLE _ Data of the Data plane.
Figure BDA0002047997400000202
The control plane carries out table entry aging evaluation processing:
1) when the processing cycle arrives, the Control plane fetches each entry in the TABLE SFL _ TABLE _ Control and reduces the aging time of the fetched entry by 5 s.
2) After the aging time reduction processing is completed, the control plane judges whether the residual aging time of each table entry is less than or equal to 0.
For the entry of the keyword SPI-3 and SI-2, the aging time of the initial 20s is continuously reduced after each aging evaluation process minus 5s, so that the remaining aging time of the entry is always reduced to 0 or less in a certain aging evaluation process. This is because the control plane will delete the entry and call the switching chip SDK (or related technology) to delete the entry in the Data plane SFL _ TABLE _ Data that is the same key.
In this embodiment, by adding the interactive flow between the control plane and the data plane, the purpose of maintaining the mapping relationship between the data packets SPI, SI, and the SFL option TLV is achieved. Meanwhile, for a data service flow, only after the first data packet of a certain service arrives, a corresponding entry is newly added on the control plane and the data plane in the whole process from the beginning to the end. When the service data flow is finished, a deletion operation is generated on the control plane and the data plane through the table entry aging timeout mechanism, so that the interaction times of the control plane and the data sending plane are greatly reduced.
Example four:
the present embodiment provides a data packet transmission device, which is applied to the data plane side, please refer to a schematic structural diagram of a data packet transmission device 90 shown in fig. 9:
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 querying module 908, and an encapsulation transmission module 910, where the receiving and parsing module 902 is configured to receive and parse a data packet to obtain original encapsulation information of the data packet, where the original encapsulation information includes SPI, SI, and SFL option TLV. The information uploading module 904 uploads the analyzed original package information to the control plane; the table entry adding module 906 is configured to receive a table entry adding instruction issued by the control plane, and add, according to the table entry adding instruction, the SPI, the SI, and the SFL option TLV corresponding to the original encapsulation information as a table entry to the data plane management table, where the data plane management table uses the SPI and the SI as table keywords, and uses the SFL option TLV as table contents corresponding to the table keywords; the information query module 908 is configured to, when receiving a target data packet sent by the service function SF, query a data plane management table according to the SPI and SI carried by the target data packet, and determine an SFL option TLV corresponding to the target data packet; and the encapsulation transmission module 910 is configured to encapsulate the target data packet according to the queried SFL option TLV and transmit the target data packet.
The present embodiment further provides a packet transmission management device, which is applied to the control plane side, please refer to a schematic structural diagram of the packet transmission management device 10 shown in fig. 10:
the data packet transmission management device 10 includes an information receiving module 102, configured to receive original encapsulation information of a data packet reported by a data plane, where the original encapsulation information includes an SPI, an SI, and an SFL option TLV; in addition, the data packet transmission management apparatus 10 further includes an instruction sending module 104, configured to invoke an 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.
It should be appreciated that the data plane is the data plane of the SFF, so in this embodiment, the receiving parsing module 902 receives a data packet from the ingress NVE node or other SFF, and the data packet is encapsulated by the generic network virtualization. When the receiving analysis module 902 receives a packet, it performs analysis processing such as stripping of the generic tunnel header and the Option TLV on the packet, and acquires the original package information of the packet, where the original package information is SPI, SI, and SFL Option TLV of the packet.
For a packet, no matter which node in the SFL is currently located, the SPI and the sflocation TLV are always unchanged, while the SI varies with the node where the packet is located, and specifically, the value of the SI gradually decreases with the transmission process of the packet. The SI in the original package information obtained by analyzing the data packet by the receiving and analyzing module 902 is the SI carried by the data packet when the data plane receives the data packet.
After the receiving and parsing module 902 obtains the original encapsulation information of the data packet, the information uploading module 904 may report the original encapsulation information to the control plane, which should be understood that the control plane is also a control plane of the SFF. It should be noted, however, 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 packet transmission management device 10 receives the original package information uploaded by the received information uploading module 904.
In this embodiment, after the receiving and analyzing module 902 analyzes the original package information, the data plane will not only report the original package information to the control plane, but also send the data packet with the Geneve tunnel header and the SFL option TLV stripped to the corresponding SF, so that the SF performs corresponding function processing on the data packet.
After the information receiving module 102 reports the original package information to the data plane, the instruction sending module 104 may issue an entry addition instruction to the data plane, so that the data packet transmission device 90 of the data plane adds an entry corresponding to the original package information to the data plane management table.
It should be understood that the data plane management table is provided on the data plane side, provided by the packet transfer device 90. The information query module 908 is used for maintaining and recording the mapping relationship among the SPI, the SI, and the 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 can determine the SFL option TLV of the data packet, thereby implementing the general network virtualization encapsulation of the data packet. In this embodiment, the data plane management table uses SPI and SI as table keys, and uses SFL option TLV as table contents corresponding to the table keys, please refer to table 1.
In table 1, a row is an entry, and as can be seen from table 1, a row in the table includes an SPI value, an SI value, and an SFL option TLV corresponding to the SPI and SI. Therefore, one table entry includes SPI, SI, and SFL option TLV corresponding to SPI and SI. Therefore, after a data packet carries the SPI and the SI and returns to the data plane of the SFF from the SF, the information query module 908 may search the corresponding SFL option TLV information from the data plane management table according to the SPI and the SI carried in the data packet.
When issuing the entry addition instruction to the data plane, the instruction sending module 104 may invoke an interface of the data plane, including but not limited to the SDK, to issue the instruction.
The entry adding module 906 adds an entry in the data plane management table according to the entry adding instruction after receiving the entry adding instruction sent by the control plane. Usually, the table addition command sent by the control plane packet transmission management device 10 will carry the relevant information of the newly added table, including SPI, SI, and SFL option tlv in the newly added table.
It should be understood that the packet transmission management device 10 instructs the packet transmission device 90 to add an entry corresponding to the original encapsulation information in the data plane through the entry addition instruction, but this does not mean that the SPI, SI, and sflocation TLV in the added entry are the SPI, SI, and SFL option TLV in the original encapsulation information.
For example, in some examples of this embodiment, after the SF receives the data packet sent by the SFF data plane, the SI of the data packet is decremented, usually by "1", so that, although the data packet sent by the SF to the SFF is the same data packet as the data packet sent by the SFF to the SF, 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 packets is really different, and the SI value of the packet sent by SF to SFF is 1 less than the SI value of the packet sent by both SFFs to SF. In this case, when the encapsulation transmission module 910 of the data plane packet transmission device 90 performs network virtualization encapsulation on the packet, if the information query module 908 directly uses the current SPI and SI on the packet as keywords to query the data plane management table, the data plane shall perform decremental update on the SI in the original encapsulation information on the basis of the SI corresponding to the newly added entry corresponding to the packet. Here, as an example, assuming that the SI value in the original encapsulation information reported by the data plane is "4", the value of the SI carried by the data packet returned by the SF to the SFF data plane should be "3", and naturally, when performing the general network virtualization encapsulation on the data packet returned by the SF, the information query module 908 performs query in the data plane management table based on the SI value being "3". Therefore, when the control plane instruction sending module 104 controls the entry adding module 906 to add an entry in the data plane management table through the entry adding instruction, the SI value in the original package information should be decremented by 1 to obtain "3", so that the data plane should add an entry with the SI value of "3".
Of course, as will be understood by those skilled in the art, even if the SI value carried in the data packet returned from the SF has been decremented by the SF, in some examples of the embodiment, when the control plane adds an entry to the control data plane, the SI value carried in the entry addition instruction may still be the SI value in the original encapsulation information. In this way, when the data plane queries the data plane management table, the SI value obtained by subtracting 1 from the data packet is increased by 1. For example, assuming that the value of SI in the original encapsulation information reported by the data plane is "4", after receiving the original encapsulation information reported by the data plane, the control plane may send an entry addition instruction to the data plane, where the value of SI in the entry addition instruction is still "4". Correspondingly, the SI value of the data plane is "4" in the newly added entry of the data plane management table. The value of the SI carried by the data packet returned by the SF to the SFF data surface should be '3', and when the data surface performs general network virtualization encapsulation on the data packet returned from the SF, the data surface management table can be inquired after increasing '1' on the basis of the current SI value '3'. That is, the data plane has "4" as one of the keys for querying the data plane management table. 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 the SFL option TLV corresponding to the data packet is obtained, and the SI value on the data packet is not really changed.
It can be understood that, as long as the control plane determines the content of the table entry new increase instruction corresponding to each data packet according to the unified rule, and the data plane also queries the data plane management table according to the corresponding rule, it is feasible whether the SI value in the table entry new increase instruction sent by the control plane is consistent with the SI value in the original encapsulation information.
When the data plane receives a data packet returned by the SF, it needs to perform general network virtualization encapsulation on the data packet, and for convenience of description, the data packet is referred to as a "target data packet". It can be understood that, for the same data plane, it may continuously receive packets with the same or different services, so that, while receiving packets sent from other SFFs or NVEs, it also receives a processed target packet sent by the SF, and the entry corresponding to the target packet is not necessarily the latest entry in the data plane management table, but is necessarily an entry that the data plane has been added to the data plane management table.
The information query module 908 may obtain the SPI and the SI carried in the target data packet, and then query the data plane management table according to the SPI and the SI: if the SI value in the table item addition instruction sent by the control plane has been subjected to decremental processing when the table item is added, the information query module 908 may directly query the data plane management table by using the SPI and the SI obtained from the target data packet as keywords to obtain the corresponding SFL option TLV; if the SI value in the table item addition instruction sent by the control plane is not subjected to decremental processing when the table item is added, the information query module 908 may add "1" to the SI value acquired from the target data packet and then query the data plane management table together with the acquired SPI value as a key to obtain the corresponding sflocation TLV.
After the information query module 908 obtains the SFL option TLV of a target packet, the encapsulation transmission module 910 may perform general network virtualization encapsulation on the target packet according to the SFL option TLV. After the completion of the general network virtualization encapsulation, the encapsulation transmission module 910 sends the encapsulated data packet to the node next to the node in the SFL.
Although the current switch chip does not support direct storage of information on the received data packet, the data packet transmission device and the data packet transmission management device provided by the embodiment of the invention, by arranging a data plane management table specially used for associating and storing the data packet SFL option TLV with the SPI and SI information on the data plane, when the data plane receives a data packet and obtains the original encapsulation information of the data packet, the data packet is firstly reported to the control plane, then the SPI, SI and SFL option TLV of a data packet are stored in the data plane management table in an associated way under the direction of the control plane, therefore, after the data packet is processed by the SF, the corresponding SFL option TLV can be inquired so as to realize the universal network virtualization packaging, and the problem that the universal network virtualization packaging of the data packet at the SFF can not be realized because the switching chip does not support the mapping relation between the SFL option TLV and the SPI for directly storing the data packet is solved.
For other details of the data packet transmission scheme implemented by the data packet transmission device and the data packet transmission management device, reference may be made to the descriptions of the first to third embodiments, and details are not described here.
In this embodiment, the packet transmission apparatus 90 is disposed on a data forwarding device on the data plane side, and the functions of the packet transmission apparatus including the receiving and analyzing module 902, the information uploading module 904, the table addition module 906 and the encapsulation transmission module 910 can be implemented together by a processor of the data forwarding device and a communication unit, while the function of the information query module 908 can be implemented by a processor of the data forwarding device. The data plane management table on the data plane side may be stored in the memory.
The packet transmission management device 10 is disposed on a data forwarding device on the control plane side, wherein the functions of the information receiving module 102 and the instruction transmitting module 104 can be realized by a processor and a communication unit of the data forwarding device. The control plane management table may be stored in a data forwarding device memory.
Example five:
the present embodiment provides a storage medium, in which one or more computer programs that can be read, compiled and executed by one or more processors are stored, and in the present embodiment, the computer readable storage medium may store at least one of a data packet transmission program and a data packet transmission management program, where the data packet transmission program can be used by one or more processors to execute a process for implementing any one of the data packet transmission methods described in the foregoing embodiments; the packet transmission management program may be provided for one or more processors to execute the process of implementing any one of the packet transmission management methods described in the foregoing embodiments.
The present embodiment further provides a data forwarding device, as shown in fig. 11: the data forwarding apparatus 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 packet transmission program and/or the packet transmission management program. The processor 111 may read the packet transmission program, compile and execute the procedures for implementing the packet transmission method described in the foregoing embodiments:
the processor 111 receives and analyzes the data packet to obtain original package information of the data packet, wherein the original package information comprises a Service Path Identifier (SPI), a Service Index (SI) and a service function list option triple (SFL) option TLV; then reporting the analyzed original package information to a control surface, then receiving a table item newly-adding instruction issued by the control surface, and adding SPI, SI and SFL option TLV corresponding to the original package information as a table item to a data surface management table according to the table item newly-adding instruction, wherein the data surface management table takes the SPI and the SI as table keywords and the SFL option TLV as table contents corresponding to the table keywords;
when receiving a target data packet sent by a service function SF, the processor 111 queries a data plane management table according to the SPI and SI carried by the target data packet, and determines an SFL option TLV corresponding to the target data packet; and packaging the target data packet according to the SFLoption TLV obtained by query and transmitting the target data packet.
The processor 111 may also read the packet transmission management program, compile and execute the flow of implementing the packet transmission management method described in the foregoing embodiment:
the processor 111 receives original encapsulation information of the data packet reported by the data plane, and then calls an 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.
In some examples of this embodiment, when the processor 111 executes the packet transmission management program, an entry corresponding to the original encapsulation information may be further added to the control plane management table, and deletion or retention of the entry in the control plane management table is managed based on the aging time of the entry, and if the entry aging time is over, the entry is deleted from the control plane management table; after determining that the entry needs to be deleted from the control plane management table, the processor 111 calls an interface of the data plane to issue an entry deletion instruction to the data plane, and controls the data plane to delete the corresponding entry of the same key from the data plane management table.
The control surface management table takes SPI and SI as table keywords, and table contents corresponding to the table keywords comprise SFLoption TLV; the items of the control plane management table have corresponding aging time, and the contents of the items newly added in the control plane management table are the same as those of the items newly added in the data plane management table.
In the data forwarding device provided in this embodiment, in the packet transmission method and the packet transmission management method provided in this embodiment, a data plane may set a data plane management table that is specifically used for storing information of the packet SFL option TLV, the SPI, and the SI in an associated manner. After a data plane receives a data packet and acquires original encapsulation information of the data packet, the data packet is reported to a control plane firstly, and then SPI, SI and SFLoption TLV of the data packet are stored in a data plane management table in an associated mode under the indication of the control plane, so that after the data packet is processed by SF, the corresponding SFL option TLV can be inquired to realize the universal network virtualization encapsulation, and the problem that the universal network virtualization encapsulation of the data packet at the SFF cannot be realized due to the fact that a switching chip does not support the mapping relation between the SFL option TLV and the SPI of a direct storage data packet is solved.
Furthermore, the data forwarding device sets the control plane management table corresponding to the data plane management table on the control plane, and does not set aging time for each table entry in the control plane management table, so as to realize deletion management of the table entries in the control plane management table based on the aging time, that is, deletion management of the table entries in the data plane management table, on the basis that frequent interaction between the data plane and the control plane is not needed, the proportion of effective table entries in the data plane management table is deleted, occupation of storage resources is reduced, and resource configuration is optimized.
It will be apparent to those skilled in the art that all or some of the steps of the methods, systems, functional modules/units in the devices disclosed above may be implemented as software (which may be implemented in program code executable by a computing device), firmware, hardware, and suitable combinations thereof. In a hardware implementation, the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components; for example, one physical component may have multiple functions, or one function or step may be performed by several physical components in cooperation. Some or all of the physical components may be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application specific integrated circuit. Such software may be distributed over computer-readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media), executed by a computing device, and in some cases may perform the steps shown or described in a different order than here. The term computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, as is well known to those of ordinary skill in the art. Computer storage media includes, but is 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 tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer. In addition, communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media as known to those skilled in the art. Thus, the present invention is not limited to any specific combination of hardware and software.
The foregoing is a more detailed description of embodiments of the present invention, and the present invention is not to be considered limited to such descriptions. For those skilled in the art to which the invention pertains, several simple deductions or substitutions can be made without departing from the spirit of the invention, and all shall be considered as belonging to the protection scope of the invention.

Claims (12)

1. A method of data packet transmission, comprising:
receiving and analyzing a data packet to obtain original packaging information of the data packet, wherein the original packaging information comprises a Service Path Identifier (SPI), a Service Index (SI) and a service function list option triple (SFL) option TLV;
reporting the original packaging information obtained by analysis to a control plane;
receiving a table item newly-added instruction issued by the control plane, and adding the SPI, the SI and the SFL option TLV corresponding to the original packaging information as a table item to a data plane management table according to the table item newly-added instruction, wherein the data plane management table takes the SPI and the SI as table keywords and takes the SFL option TLV as table contents corresponding to the table keywords;
when a target data packet sent by a service function SF is received, inquiring the data plane management table according to the SPI and the SI carried by the target data packet, and determining the SFL option TLV corresponding to the target data packet;
And encapsulating the target data packet according to the SFL option TLV obtained by inquiry and transmitting the target data packet.
2. The method for transmitting data packets according to claim 1, further comprising:
receiving a table item deleting instruction sent by the control plane, wherein the table item deleting instruction comprises an SPI and an SI of a target table item to be deleted;
and deleting the target table entry in the data plane management table according to the table entry deleting instruction.
3. The method for transmitting data packets according to claim 1 or 2, wherein the adding SPI, SI, and SFL option TLV corresponding to the original package information as one entry to a data plane management table according to the entry addition instruction comprises:
adding the SPI, the SI and the SFL option TLV carried in the newly added instruction as a table entry to a data plane management table, wherein the SPI and the SFL option TLV carried in the newly added instruction are respectively the SPI and the SFL option TLV in the original packaging 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 packaging information.
4. A data packet transmission management method comprises the following steps:
receiving original package information of a data packet reported by a data plane, wherein the original package information comprises SPI, SI and SFL option TLV;
And calling an interface of the data plane to issue a table entry adding instruction to the data plane, wherein the table entry adding instruction is used for controlling the data plane to add a table entry corresponding to the original package information in a data plane management table, and the data plane management table takes SPI and SI as table keywords and SFL option TLV as table contents corresponding to the table keywords.
5. The method for managing packet transmission according to claim 4, wherein after receiving the original encapsulation information of the packet reported by the data plane, the method further comprises:
adding a table entry corresponding to the original package information into a control surface management table, wherein the control surface management table takes SPI and SI as table keywords, and the table content corresponding to the table keywords comprises SFL option TLV; the items of the control plane management table have corresponding aging time, and the contents of the items newly added in the control plane management table are the same as those of the items newly added in the data plane management table;
managing deletion or retention of the table entry in the control plane management table based on the aging time of the table entry, and deleting the table entry from the control plane management table if the aging time of the table entry is over;
after determining that the table entry needs to be deleted from the control plane management table, calling an interface of the data plane to issue a table entry deletion instruction to the data plane, and controlling the data plane to delete the corresponding table entry of the same key word from the data plane management table.
6. The method for managing packet transmission according to claim 5, wherein before adding the entry corresponding to the original encapsulation information to the control plane management table, the method further comprises:
and determining that no table entry corresponding to the original packaging information exists in the control plane management table.
7. The method for managing packet transmission according to claim 6, wherein if it is determined that the control plane management table has an entry corresponding to the original encapsulation information, the method further comprises:
and resetting the aging time of the table entry corresponding to the original packaging information to an initial value.
8. The method for managing packet transmission according to any of claims 4 to 7, wherein the SPI and the SFL option TLV carried in the new instruction are the SPI and the SFL option TLV in the original encapsulation information, respectively, and the SI carried in the new instruction is an updated SI value obtained by subtracting 1 from the SI value in the original encapsulation information.
9. A data packet transmission device, the data packet transmission device comprising:
the receiving and analyzing module is used for receiving and analyzing a data packet to obtain original packaging information of the data packet, wherein the original packaging information comprises SPI, SI and SFL option TLV;
The information uploading module is used for reporting the original packaging information obtained by analysis to a control plane;
the table entry adding module is used for receiving a table entry adding instruction issued by the control surface and adding SPI, SI and SFL option TLV corresponding to the original packaging information as a table entry to a data surface management table according to the table entry adding instruction, wherein the data surface management table takes the SPI and the SI as table keywords and takes the SFL option TLV as table contents corresponding to the table keywords;
the information query module is used for querying the data plane management table according to the SPI and the SI carried by the target data packet and determining the SFL option TLV corresponding to the target data packet when the target data packet sent by the service function SF is received;
and the encapsulation transmission module is used for encapsulating the target data packet according to the SFL option TLV obtained by inquiry and transmitting the target data packet.
10. A packet transmission management device, the packet transmission management device comprising:
the information receiving module is used for receiving original packaging information of a data packet reported by a data plane, wherein the original packaging information comprises SPI, SI and SFL option TLV;
and the instruction sending module is used for calling an interface of the data plane to issue an item adding instruction to the data plane, the item adding instruction is used for controlling the data plane to add an item corresponding to the original package information in a data plane management table, and the data plane management table takes SPI and SI as table keywords and SFL option TLV as table contents corresponding to the table keywords.
11. A data forwarding device comprises a processor, a memory and a communication bus;
the communication bus is used for realizing connection communication between the processor and the memory;
the processor is configured to execute a packet transmission program stored in the memory to implement the steps of the packet transmission method according to any one of claims 1 to 3, or the processor is configured to execute a packet transmission program stored in the memory to implement the steps of the packet transmission management method according to any one of claims 4 to 8.
12. A storage medium storing at least one of a packet transmission program and a packet transmission management program, the packet transmission program being executable by one or more processors to implement the steps of the packet transmission method according to any one of claims 1 to 3; the packet transmission management program is executable by one or more processors to implement the steps of the packet transmission management method according to any one of claims 4 to 8.
CN201910365452.2A 2019-04-30 2019-04-30 Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium Pending CN111857945A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910365452.2A CN111857945A (en) 2019-04-30 2019-04-30 Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium
PCT/CN2020/084612 WO2020220987A1 (en) 2019-04-30 2020-04-14 Data packet transmission method and apparatus, data packet transmission management method and apparatus, data forwarding device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910365452.2A CN111857945A (en) 2019-04-30 2019-04-30 Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium

Publications (1)

Publication Number Publication Date
CN111857945A true CN111857945A (en) 2020-10-30

Family

ID=72965942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910365452.2A Pending CN111857945A (en) 2019-04-30 2019-04-30 Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium

Country Status (2)

Country Link
CN (1) CN111857945A (en)
WO (1) WO2020220987A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024000135A1 (en) * 2022-06-28 2024-01-04 新华三技术有限公司 Packet processing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104980374B (en) * 2014-04-04 2018-07-03 华为技术有限公司 A kind of packaging method, business Delivery Function and the control plane of business routing message
CN106453204B (en) * 2015-08-07 2020-11-17 中兴通讯股份有限公司 Method and device for processing data message
US10116553B1 (en) * 2015-10-15 2018-10-30 Cisco Technology, Inc. Application identifier in service function chain metadata
US10164875B2 (en) * 2016-02-22 2018-12-25 Cisco Technology, Inc. SR app-segment integration with service function chaining (SFC) header metadata
EP3468112A4 (en) * 2016-07-01 2019-05-08 Huawei Technologies Co., Ltd. Method, apparatus and system for forwarding packet in service function chaining (sfc)
CN109088821B (en) * 2017-06-14 2022-02-25 中兴通讯股份有限公司 Message transmission method, service chain system and computer readable storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024000135A1 (en) * 2022-06-28 2024-01-04 新华三技术有限公司 Packet processing

Also Published As

Publication number Publication date
WO2020220987A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
US20230239368A1 (en) Accelerated network packet processing
CN107113240B (en) Method for transmitting message of extensible virtual local area network, computer equipment and readable medium
US10530691B2 (en) Method and system for managing data traffic in a computing network
US10237177B2 (en) Transfer device and transfer system
CN108141416A (en) A kind of message processing method, computing device and message process device
US20210328860A1 (en) Operation, Administration, and Maintenance IOAM Packet Transmission Method and Related Apparatus
JP6269999B2 (en) Packet processing method and apparatus
WO2019185051A1 (en) Integrated flow table-based packet forwarding method and device
US20100046533A1 (en) Router and packet discarding method
US20120207026A1 (en) Computer-readable medium storing communication control program, information processing device, and packet communication method
US11516322B2 (en) Data transmission method and apparatus
US9325613B2 (en) Communication device and address learning method
EP4221141A1 (en) Network congestion control method and apparatus
EP2953302B1 (en) Service packet processing method, apparatus and system
CN112543108A (en) Network isolation policy management method and network isolation policy management system
EP4329248A1 (en) Packet forwarding method and apparatus, network device, and storage medium
WO2016150020A1 (en) Scheduling flow identifier-based packet scheduling method and device
US9385951B2 (en) Apparatus and method for controlling packet transfer based on registered destination information
CN111857945A (en) Data packet transmission method, data packet management method, data packet transmission device, data packet management device, data packet forwarding device and storage medium
CN101577660B (en) Method and device for acquiring label forwarding list item and forwarding message
CN115242892B (en) Stream identifier acquisition method, device, equipment and medium
CN111865801B (en) Virtio port-based data transmission method and system
KR100650433B1 (en) Communicating state information in a network
CN116668375B (en) Message distribution method, device, network equipment and storage medium
CN114928589B (en) Data transmission method, data transmission device, computer readable medium and apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination