VXLAN packet transmission method, network device, and system
By encapsulating the VXLAN Network Identifier in the IPv6 header, the method addresses the inefficiencies of UDP encapsulation in IPv6 networks, improving packet encapsulation and transmission efficiency for VXLAN packets.
Patent Information
- Application Number
- JP2024539724
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-08
- Filing Date
- 2022-12-29
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2042-12-29
AI Technical Summary
VXLAN packet transmission efficiency is low in IPv6 networks due to the use of UDP encapsulation, which increases the amount of data for encapsulation and affects packet transmission efficiency.
Encapsulate the VXLAN Network Identifier (VNI) in the IPv6 header instead of using additional UDP headers, reducing the amount of data for packet encapsulation and improving efficiency by utilizing the IPv6 header for VXLAN packet traversal in IPv6 networks.
This method enhances packet encapsulation efficiency and transmission efficiency by eliminating the need for additional UDP headers, allowing VXLAN packets to traverse IPv6 networks more effectively.
Smart Images

Figure 2024545917000001_ABST
Abstract
Description
[Technical field]
[0001] This application claims priority to Chinese Patent Application No. CN202111672776.4, entitled "Method for Implementing VXLAN and GTP Based on IPv6", filed with the State Intellectual Property Office of China on December 31, 2021, the entirety of which is incorporated herein by reference. This application claims priority to Chinese Patent Application No. 202210228141.3, entitled "VXLAN Packet Transmission Method, Network Device, and System", filed on March 8, 2022, the entirety of which is incorporated herein by reference.
[0002] The present application relates to the field of communication technologies, and in particular to a virtual extensible local area network (VXLAN) packet transmission method, network device, and system. [Background technology]
[0003] VXLAN is an overlay network technology. A layer 2 Ethernet tunnel can be established on a layer 3 network to implement cross-region layer 2 interconnection. In the VXLAN technology, an encapsulation format is used in which an original Ethernet packet is encapsulated into a user datagram protocol (UDP) data packet, and the original layer 2 data frame and a VXLAN header are encapsulated together in the UDP data packet. Since UDP is used as a transmission method in the outer layer, the original Ethernet packet can be transmitted on a layer 2 or layer 3 network. The VXLAN header includes a VXLAN network identifier (VNI), and the VNI occupies 24 bits in the data packet. Therefore, 16 million VXLANs can coexist, and tenants can be deployed on a large scale.
[0004] With the development and deployment of Internet Protocol version 6 (IPv6) technology, traffic of different tenants may need to cross IPv6 networks. Therefore, it is urgent to deploy VXLAN technology in IPv6 networks. However, because VXLAN uses UDP encapsulation, the encapsulation efficiency in IPv6 networks is low, and the packet transmission efficiency is affected. Summary of the Invention
[0005] The present application provides a VXLAN packet transmission method, network device, and system for reducing the amount of data for packet encapsulation when a VXLAN packet passes through an IPv6 network, improving packet encapsulation efficiency, and further improving packet transmission efficiency. [Means for solving the problem]
[0006] According to a first aspect of the present application, a VXLAN packet transmission method is provided. The method includes: a first network device receives a first packet and obtains a VNI based on the first packet; the first network device encapsulates an IPv6 header in the first packet to obtain a second packet; the IPv6 header carries the VNI; the first network device sends the second packet to a second network device; after obtaining a VNI corresponding to the first packet, the first network device encapsulates an IPv6 header in the first packet and knows to include the VNI in the IPv6 header; no additional UDP header needs to be encapsulated to carry the VNI; this reduces the amount of data for packet encapsulation and improves packet encapsulation efficiency. In addition, a method is provided for a VXLAN packet to traverse an IPv6 network by including a VNI in the IPv6 header. In this method, it is not necessary to use a UDP header to carry the VNI. Because the IPv6 header is the basic packet encapsulation method when a packet is forwarded on an IPv6 network, this method improves the flexibility of VXLAN packet encapsulation.
[0007] In a possible implementation, the way in which the IPv6 header carries the VNI may be to add the VNI to the IPv6 header, or may be to encapsulate the VXLAN header in the IPv6 header.
[0008] In a possible implementation, the IPv6 header is an IPv6 base header. The IPv6 base header contains basic packet forwarding information, including, for example, a source address field and a destination address field. The source address field is used to carry the source address of the packet, and the destination address field is used to carry the destination address of the packet.
[0009] In a possible implementation, the VNI is carried in the destination address field of the IPv6 base header. Since the destination address field of the IPv6 base header is 128 bits, the prefix information or SRv6 locator used for packet forwarding in the packet forwarding process usually occupies a part of the 128 bits, for example, only the first 64 bits. In this way, the VNI is included in the bits in the destination address field that are not occupied by the prefix information or SRv6 locator, and the destination address field of the IPv6 base header is multiplexed. There is no need to encapsulate an additional header to carry the VNI. This improves packet encapsulation efficiency.
[0010] In a possible implementation, the 65th to 128th bits in the destination address field carry the VNI.
[0011] In a possible implementation, the destination address field includes a VXLAN header, which carries the VNI. Since the VXLAN header occupies 64 bits, the VXLAN header can be carried completely in the destination address field. In addition to the VNI, the VXLAN header further includes some indication information used for VXLAN packet forwarding. Since the complete VXLAN header is carried in the destination address field, the reliability of packet forwarding is improved.
[0012] In a possible implementation, the 65th to 128th bits in the destination address field carry the VXLAN header.
[0013] In a possible implementation, the destination address in the destination address field indicates to the second network device to forward the packet based on the VNI information carried in the destination address field.
[0014] In a possible implementation, the IPv6 header is an IPv6 extension header, the IPv6 extension header comprising a destination options header (DOH) or a segment routing header (SRH). Optionally, the first network device encapsulating the IPv6 header in the first packet to obtain the second packet comprises the first network device encapsulating the IPv6 extension header and the IPv6 base header in the first packet. The IPv6 extension header carries the VNI, and the IPv6 base header is used for packet forwarding.
[0015] In a possible implementation, the DOH includes a type-length-value (TLV), where the type field of the TLV indicates that the DOH carries a VNI.
[0016] In possible implementations, the DOH is used to carry the VNI, or the DOH is used to carry the VXLAN header, which carries the VNI.
[0017] In a possible implementation, the VNI is carried in a segment identifier (SID) list (SID list) of the SRH. Optionally, the VNI is carried in a SID corresponding to the second network device in the SID list. In an application scenario of IPv6 forwarding plane-based segment routing (SRv6), when a part or all of the route needs to be explicitly specified, the SRH can be pushed to the packet to indicate an explicit route using the SID list in the SRH. The length of each SID in the SID list is specified to be 128 bits. Information about the SID used for packet forwarding in the packet forwarding process is usually only a part of the 128 bits, or the SID advertised by the network device may be a compressed SID that occupies only a part of the 128 bits, for example, occupies only 64 bits. In this way, the VNI is included in the unoccupied bits in the SID of the second network device in the SID list, and the segment identifier list in the segment routing header of the IPv6 extension header is multiplexed. There is no need to encapsulate an additional header to carry the VNI. This improves packet encapsulation efficiency.
[0018] In a possible implementation, the SID of the second network device includes a VXLAN header, which carries the VNI.
[0019] In a possible implementation, the SID of the second network device indicates the second network device to forward the packet based on the VNI carried in the SID. After receiving the second packet, the second network device determines that the second network device is an end node on the explicit route based on the SID carried in the second packet, and forwards the packet based on the VNI in the second packet. The SID of the second network device includes a locator field and a function field. Optionally, the SID of the second network device may further include a parameter field.
[0020] In a possible implementation, the VNI is carried in a function field of the SID of the second network device.
[0021] In a possible implementation, the function field of the SID of the second network device includes a VXLAN header, which carries the VNI.
[0022] In a possible implementation, the flow label in the IPv6 header carries the port number corresponding to the VXLAN packet.
[0023] In a possible implementation, the port number is used to perform load balancing processing in a forwarding process of the second packet, or the port number is used to determine that the second packet includes a VXLAN packet.
[0024] In a possible implementation, the source port number of the VXLAN packet is obtained by calculation based on the payload of the VXLAN packet, for example, by performing a hash on the payload of the VXLAN packet using a hash algorithm. The value of the port number obtained from the VXLAN packet may be carried in the flow label of the second packet. The method of calculating the value of the flow label of the second packet is the same as the method of calculating the UDP source port number used for load balancing in the VXLAN packet. That is, the port number carried in the flow label is also obtained by calculation based on the payload of the first packet, ensuring that the load balancing effect implemented in the forwarding process of the second packet is consistent with the load balancing effect implemented using the UDP source port number of the conventional VXLAN packet.
[0025] In a possible implementation, the IPv6 header further includes VXLAN flags, the VXLAN flags including a flag indicating that the second packet carries a valid VNI.
[0026] In a possible implementation, the IPv6 header carries a VXLAN header, which carries the VNI.
[0027] In a possible implementation form, the Next Header of the IPv6 header indicates that the next header adjacent to the IPv6 header of the second packet is an Ethernet header. The IPv6 header is used to carry the VNI, and there is no need to use a UDP header to carry the VNI in the packet. Therefore, the Next Header of the IPv6 header is set to an Ethernet (ETH) type. Therefore, the packet processing efficiency in the forwarding process of the second packet can be improved.
[0028] In one possible implementation, the first network device obtaining a VNI based on the first packet includes the first network device obtaining a VNI based on an interface through which the first packet is received, the VNI corresponding to the interface through which the first packet is received.
[0029] According to a second aspect of the present application, a VXLAN packet transmission method is provided. The method includes: a second network device receives a second packet from a first network device. The second packet is encapsulated with an IPv6 header, and the IPv6 header carries a VNI. The second network device obtains the VNI from the IPv6 header. The second network device decapsulates the second packet to obtain a first packet. The first packet does not include an IPv6 header. The second network device forwards the first packet based on the VNI.
[0030] In a possible implementation, the way in which the IPv6 header carries the VNI may be to add the VNI to the IPv6 header, or may be to encapsulate a VXLAN header in the IPv6 header, where the VXLAN header includes the VNI.
[0031] In a possible implementation, the IPv6 header is an IPv6 base header.
[0032] In a possible implementation, the VNI is carried in the destination address field of the IPv6 base header.
[0033] In a possible implementation, the destination address field includes a VXLAN header, which carries the VNI.
[0034] In a possible implementation, the 65th to 128th bits in the destination address field carry the VNI.
[0035] In a possible implementation, the 65th to 128th bits in the destination address field carry the VXLAN header.
[0036] In a possible implementation, the second network device obtaining the VNI from the IPv6 header includes: determining, by the second network device, that the destination address field includes an address of the second network device; and, in response to the second network device determining that the destination address field includes an address of the second network device, obtaining the VNI from the destination address field.
[0037] In a possible implementation, before the second network device receives the second packet from the first network device, the method further includes the second network device advertising an address of the second network device to the first network device to indicate to the first network device to include a VNI in the VXLAN packet sent to the second network device in the address of the second network device.
[0038] In a possible implementation, the IPv6 header is an IPv6 extension header, and the IPv6 extension header includes a DOH or an SRH.
[0039] In a possible implementation, the DOH includes a TLV, and a type field of the TLV indicates that the DOH carries a VNI.
[0040] In a possible implementation, the DOH includes a VXLAN header, which carries the VNI.
[0041] In a possible implementation, the VNI is carried in the SID list of the SRH.
[0042] In a possible implementation, the VNI is carried in a SID corresponding to the second network device in the SID list of the SRH.
[0043] In a possible implementation, the SID of the second network device includes a VXLAN header, which carries the VNI.
[0044] In a possible implementation, the second network device obtaining the VNI from the IPv6 header includes: the second network device determining that a destination address field of the second packet includes a SID of the second network device; and in response to the second network device determining that the destination address field of the second packet includes a SID of the second network device, obtaining the VNI from the SID of the second network device.
[0045] In a possible implementation, the type of the SID of the second network device is a virtual network endpoint (END.VN) type. The SID is an SRv6 SID. The locator portion of the SID includes the address of the VXLAN tunnel endpoints (VTEP) of the VXLAN packet, and the function portion of the SID includes a VXLAN Header header. The forwarding operation corresponding to the behavior of the SID includes: after receiving a packet, the destination VTEP node obtains a corresponding VXLAN instance forwarding table based on the VNI in the SID of the packet, decapsulates the packet, searches the forwarding table based on the MAC address in the payload, etc., and forwards the packet. Decapsulating the packet includes removing the IPv6 base header encapsulated in the second packet to obtain the first packet, or removing the IPv6 base header and the IPv6 extension header encapsulated in the second packet to obtain the first packet.
[0046] Optionally, the SID corresponding to the address of the second network device is an SID of END.VN type.
[0047] Optionally, the SID corresponding to the address of the second network device is an SRv6 Locator of the second network device.
[0048] In a possible implementation, before the second network device receives the second packet from the first network device, the method further includes the second network device advertising an SID of the second network device to the first network device to indicate to the first network device to include a VNI of the VXLAN packet sent to the second network device in the SID of the second network device.
[0049] In one possible implementation, the method further includes the second network device establishing a forwarding entry, the forwarding entry including a SID of the second network device, the second network device decapsulating the second packet based on the forwarding entry to obtain the first packet, and forwarding the first packet based on the VNI.
[0050] In a possible implementation, the flow label in the IPv6 header carries a port number corresponding to the VXLAN packet. Optionally, the port number is used to perform load balancing in the forwarding process of the second packet.
[0051] In a possible implementation, the IPv6 header further includes VXLAN flags, the VXLAN flags including a flag indicating that the second packet carries a valid VNI.
[0052] According to a third aspect of the present application, a first network device is provided, configured to perform a method according to the first aspect or any one of the possible implementations of the first aspect. In particular, the first network device includes a unit configured to perform a method according to the first aspect or any one of the possible designs of the first aspect.
[0053] According to a fourth aspect of the present application, a second network device is provided, configured to perform a method according to the second aspect or any one of the possible implementations of the second aspect. In particular, the second network device includes a unit configured to perform a method according to the second aspect or any one of the possible designs of the second aspect.
[0054] According to a fifth aspect of the present application, there is provided a network system for VXLAN packet transmission. The network system includes a first network device and a second network device. The first network device is configured to perform a method according to the first aspect or any one of the possible designs of the first aspect. The second network device is configured to perform a method according to the second aspect or any one of the possible designs of the second aspect.
[0055] According to a sixth aspect of the present application, there is provided a network device. The device includes a processor and a memory. The memory is configured to store instructions or program code. The processor is configured to execute the instructions or program code in the memory, such that the network device performs a method according to the first aspect or any one of the possible designs of the first aspect, or performs a method according to the second aspect or any one of the possible designs of the second aspect.
[0056] According to a seventh aspect of the present application, a computer-readable storage medium is provided. The computer-readable storage medium stores instructions. When the instructions are executed on a processor, the computer or network device is enabled to perform a method according to the first aspect or any one of the possible designs of the first aspect, or to perform a method according to the second aspect or any one of the possible designs of the second aspect.
[0057] According to an eighth aspect of the present application, there is provided a computer program product. The computer program product includes a program, which when executed on a processor enables a computer or network device to perform a method according to the first aspect or any one of the possible designs of the first aspect, or to perform a method according to the second aspect or any one of the possible designs of the second aspect.
[0058] According to a ninth aspect of the present application, there is provided a chip, comprising an interface circuit and a processor, the interface circuit being connected to the processor, the processor being configured to enable the chip to perform a method according to the first aspect or any one of the possible designs of the first aspect, or to perform a method according to the second aspect or any one of the possible designs of the second aspect.
[0059] In order to more clearly describe the technical solutions in the embodiments of the present application or the existing technology, the following briefly introduces the accompanying drawings used to describe the embodiments or the existing technology. The accompanying drawings in the following description only show some embodiments recorded in the present application, and it is obvious that those skilled in the art can further derive other drawings from these accompanying drawings without creative efforts. [Brief description of the drawings]
[0060] [Figure 1a] FIG. 1 is a schematic diagram of a VXLAN network application scenario according to an embodiment of the present application; [Figure 1b] FIG. 2 is a schematic diagram of a structure of VXLAN packet encapsulation according to an embodiment of the present application; [Diagram 2] 2 is a flow chart of a VXLAN packet transmission method according to an embodiment of the present application; [Figure 3a] 2 is a schematic diagram of an IPv6 basic header format according to an embodiment of the present application. [Figure 3b] FIG. 2 is a schematic diagram of encapsulation of a VNI in a destination address field according to an embodiment of the present application. [Figure 3c] FIG. 2 is another schematic diagram of encapsulation of a VNI in a destination address field according to an embodiment of the present application. [Figure 3d] FIG. 13 is yet another schematic diagram of encapsulation of a VNI in a destination address field according to an embodiment of the present application. [Figure 4a] FIG. 2 is a schematic diagram of a format of a DOH according to an embodiment of the present application. [Figure 4b] FIG. 1 is a schematic diagram of encapsulation of a VNI into a DOH according to an embodiment of the present application. [Figure 4c] FIG. 2 is another schematic diagram of encapsulation of a VNI into a DOH according to an embodiment of the present application. [Figure 4d] FIG. 13 is yet another schematic diagram of encapsulation of a VNI into a DOH according to an embodiment of the present application. [Figure 5a] FIG. 2 is a schematic diagram of a TLV format according to an embodiment of the present application. [Figure 5b] FIG. 2 is a schematic diagram of encapsulating a VNI using a TLV according to an embodiment of the present application; [Figure 5c] FIG. 2 is another schematic diagram of encapsulating a VNI using a TLV according to an embodiment of the present application; [Figure 6a] FIG. 2 is a schematic diagram of a format of an SRH according to an embodiment of the present application. [Figure 6b] FIG. 2 is a schematic diagram of a format of a SID according to an embodiment of the present application. [Figure 6c] FIG. 1 is a schematic diagram of encapsulation of a VNI in an SRH according to one embodiment of the present application. [Figure 6d] FIG. 2 is another schematic diagram of encapsulation of a VNI into an SRH according to an embodiment of the present application. [Figure 6e] FIG. 13 is yet another schematic diagram of encapsulation of a VNI into an SRH according to an embodiment of the present application. [Figure 6f] FIG. 1 is a schematic diagram of an application scenario according to an embodiment of the present application. [Figure 7] FIG. 2 is a schematic diagram of the structure of a network device for VXLAN packet transmission according to an embodiment of the present application; [Figure 8] FIG. 2 is a schematic diagram of the structure of another network device for VXLAN packet transmission according to an embodiment of the present application; [Figure 9] FIG. 1 is a schematic diagram of the structure of a network system for VXLAN packet transmission according to an embodiment of the present application; [Figure 10] FIG. 2 is a schematic diagram of the structure of a network device according to an embodiment of the present application; [Figure 11] FIG. 2 is a schematic diagram of the structure of another network device according to an embodiment of the present application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0061] In order to make those skilled in the art better understand the solutions provided in the present application, the following will clearly describe the technical solutions in the embodiments of the present application with reference to the accompanying drawings in the embodiments of the present application. It is obvious that the described embodiments are only some, but not all, of the embodiments of the present application.
[0062] Before describing the specific technical solutions, important terms and techniques in the embodiments of this application will be described first.
[0063] VXLAN is a virtual tunnel communication technology. A logical tunnel is established on an Internet Protocol (IP) network between a source network device and a destination network device, and user-side packets are forwarded through the tunnel after a certain encapsulation. For example, as shown in Figure 1a, a tunnel is established between two switches through VXLAN. Switch 1 encapsulates the original data frame sent by the source server, so that the original data frame can be transmitted on the bearer network. After reaching Switch 2 connected to the destination server, the original data frame leaves the VXLAN tunnel, is restored, and forwarded to the destination server.
[0064] In a VXLAN network, the device that encapsulates and decapsulates the original data frame is a VTEP. A VTEP is an edge device of a VXLAN network and is the start and end point of a VXLAN tunnel. As shown in Figure 1a, Switch 1 and Switch 2 are VTEPs. A VTEP may be an independent network device or a virtual switch in a server. The original data frame sent by the source server is encapsulated as a VXLAN-formatted packet on the VTEP and transmitted to other VTEPs in the IP network. The original data frame is restored by decapsulation and finally forwarded to the destination server.
[0065] A VNI is similar to a Virtual Local Area Network (VLAN) identifier (ID) and is used to distinguish VXLAN segments. Virtual machines in different VXLAN segments cannot directly communicate with each other at Layer 2. A VNI may also be understood as a user identifier. A VNI represents a tenant, and tenants belonging to different VNIs cannot directly communicate at Layer 2. As shown in Figure 1a, when a VXLAN packet is encapsulated, a 24-bit long space is assigned to the VNI, so that the VNI can support a large amount of tenant isolation. Specifically, the VTEP encapsulates the VXLAN header, UDP header, outer IP header, and outer media access control (MAC) header in the original data frame sent by the source server.
[0066] Figure 1b is a schematic diagram of a structure including a VXLAN header and a UDP header. The VXLAN header is 8 bytes long and includes a 24-bit VNI field for carrying the VNIs of different tenants in a VXLAN network. In addition, a VXLAN flags field and two reserved fields are further included. The VXLAN flags field occupies 8 bits and can have a value of 00001000. The two reserved fields occupy 24 bits and 8 bits, respectively.
[0067] The VXLAN header and the original data frame are used together as UDP data. The UDP header occupies 8 bytes. The UDP header includes the source port number, the destination port number, the UDP length, and the UDP checksum. Each field occupies 16 bits. Optionally, the destination port number (Dest Port) is fixed to 4789, and the source port number (Source Port) is determined by performing a hash algorithm on the original data frame.
[0068] The source IP address field in the outer IP header carries the IP address of the VTEP connected to the source server, and the destination IP address field is the IP address of the VTEP connected to the destination server. The outer IP header may include an outer IP version 4 (Internet Protocol version 4, IPv4) header or an outer IPv6 header. The outer IPv6 header is sometimes called an IPv6 base header. The source address field and the destination address field in the IPv6 base header each occupy 128 bits.
[0069] The Outer MAC Header is the encapsulated outer Ethernet header. The Source MAC Address field carries the MAC address of the VTEP connected to the source server, and the Destination MAC Address field is the MAC address of the next hop device on the path to the destination VTEP.
[0070] From the above description, we can see that when a VXLAN packet is transmitted through an IPv6 network, if the VXLAN header is encapsulated in the UDP encapsulation method, an additional UDP header needs to be encapsulated, which results in a large amount of encapsulated data, low encapsulation efficiency, and affects packet transmission efficiency.
[0071] Based on this, an embodiment of the present application provides a VXLAN packet transmission method. When a VXLAN packet is transmitted in an IPv6 network, the VNI corresponding to the packet is encapsulated in an IPv6 header, and no additional UDP header needs to be encapsulated, thereby improving encapsulation efficiency.
[0072] In order to facilitate the understanding of the technical solutions provided in the embodiments of the present application, the technical solutions are described below with reference to the accompanying drawings.
[0073] 2 is a flowchart of a VXLAN packet transmission method according to an embodiment of the present application. As shown in FIG. 2, the method includes the following steps:
[0074] S201: A first network device receives a first packet.
[0075] S202: The first network device obtains a VNI based on the first packet.
[0076] In this embodiment, the first network device may be the switch 1 in FIG. 1a. The first network device may receive a first packet sent by the host or source server in FIG. 1a, or the first network device generates a first packet. After the first packet is obtained, a VNI corresponding to the first packet is obtained based on the first packet. The VNI is a tenant identifier corresponding to the device that sends the first packet. Specifically, after receiving the first packet, the first network device may obtain a VNI corresponding to the first packet based on an interface for receiving the first packet. The VNI corresponds to the interface for receiving the first packet. For example, the VNI may be preconfigured on an interface of the first network device. After receiving the first packet through the interface, the first network device obtains the VNI based on the correspondence between the interface and the VNI. Alternatively, after receiving the first packet, the first network device may obtain a VNI corresponding to the first packet based on an address (source address) in the first packet. For example, the correspondence between the address and the VNI is preconfigured on the first network device. After receiving the first packet, the first network device determines a VNI corresponding to the address based on the address and the correspondence relationship of the first packet.
[0077] S203: The first network device encapsulates an IPv6 header into the first packet to obtain a second packet.
[0078] After determining the VNI corresponding to the first packet, the first network device encapsulates an IPv6 header in the first packet to obtain a second packet, and the VNI is carried in the IPv6 header. There are two ways in which the IPv6 header carries the VNI. In one way, the IPv6 header directly carries the VNI. In another way, the IPv6 header includes a VXLAN header, and the VXLAN header includes the VNI. Optionally, the IPv6 header is an IPv6 base header or an IPv6 extension header, and the VNI may be carried in the IPv6 base header or the IPv6 extension header. Alternatively, the VXLAN header may be carried in the IPv6 base header or the IPv6 extension header. The IPv6 base header includes basic packet forwarding information and is 40 bytes in length.
[0079] (1) The IPv6 header is the IPv6 base header.
[0080] When the IPv6 header is an IPv6 base header, the VNI may be carried in the destination address field of the IPv6 base header. Usually, the length of the destination address field in the IPv6 base header is 128 bits, and the field is used to carry the address of the destination network device. Optionally, in the packet forwarding process, the prefix information of the destination network device usually does not need to occupy the entire destination address field. For example, the prefix information of the destination network device needs to occupy only 64 bits of the destination address field. Optionally, the address of the destination network device may be compressed to 64 bits and may occupy the 1st bit to the 64th bit. In this way, the VNI may occupy the 65th bit to the 128th bit in the destination address field. Or, the VNI may occupy the 80th bit to the 128th bit in the destination address field. The position occupied by the VNI in the destination address field may be determined based on the actual application situation, which is not limited in this embodiment.
[0081] Figure 3a shows the packet format of the IPv6 base header. The IPv6 base header includes a Version field, a Traffic Type field, a Flow Label field, a Payload Length field, a Next Header field, a Hop Limit field, a Source Address (SA) field, and a Destination Address (DA) field. The Source Address field and the Destination Address field each occupy 128 bits. The Source Address field carries the source address, and the Destination Address field carries the destination address.
[0082] Optionally, the destination address field may include the destination address and the VNI, as shown in FIG. 3b.
[0083] In addition, the IPv6 header may further include VXLAN flags, and the VXLAN flags includes a flag indicating that the second packet carries a valid VNI. The VXLAN flags is 8 bits long, and the fifth bit indicates that the packet carries a valid VNI. For example, if the fifth bit is 1, it indicates that the second packet carries a valid VNI. The VXLAN flags may be carried in a destination address field. As shown in FIG. 3c, the destination address field includes a destination address, VXLAN flags, and a VNI.
[0084] There is another way to carry the VNI in the destination address field of the IPv6 base header. Specifically, the destination address field includes the VXLAN header, and the VXLAN header carries the VNI. That is, the VXLAN header is encapsulated in the destination address field of the IPv6 base header. The length of the VXLAN header is 64 bits. The destination address usually occupies the 1st bit to the 64th bit in the destination address field. In this case, the VXLAN header may be located from the 65th bit to the 128th bit in the destination address field, as shown in Figure 3d. The VXLAN header includes the VXLAN flags. Specifically, as shown in Figure 3d, the destination address field in the IPv6 base header includes the destination address and the VXLAN header, and the VXLAN header includes the VNI and the VXLAN flags.
[0085] The destination address field is usually used to carry the destination address of the packet. After receiving the packet, the destination network device indicated by the destination address reads the destination address from the destination address field and forwards the packet based on the destination address. In this embodiment, the destination address field includes not only the destination address but also the VNI. The VNI indicates the destination network device that forwards the packet. In order to enable the destination network device to forward the packet based on the VNI after receiving the packet, the device indicated by the destination address in the destination address field (the second network device) needs to be notified in advance to forward the second packet based on the VNI carried in the destination address field after receiving the packet.
[0086] (2) The IPv6 header is an IPv6 extension header.
[0087] Optionally, when encapsulating an IPv6 header in the first packet, the first network device may encapsulate an IPv6 base header and an IPv6 extension header in the first packet.
[0088] If the IPv6 header is an IPv6 extension header, the IPv6 extension header may be used to carry the VNI. The IPv6 extension header may include a hop-by-hop options header (HBH), a destination options header (DOH), a routing header (RH), a segment routing header (SRH), etc. The format of the DOH is shown in Figure 4a. The DOH includes a Next Header field, a header extension length (Hdr Ext Len) field, and an Options field.
[0089] In one embodiment, the VNI is carried in the DOH of the IPv6 extension header. When the DOH is used to carry the VNI, the options field in the DOH may be used to carry the VNI directly, as shown in FIG. 4b. Alternatively, the options field in the DOH may be used to carry a VXLAN header, which carries the VNI, as shown in FIG. 4c. When the IPv6 extension header further includes VXLAN flags, the options field in the DOH may be used to carry the VNI and VXLAN flags directly, as shown in FIG. 4d. Alternatively, the options field in the DOH may be used to carry a VXLAN header, which carries the VNI and VXLAN flags. Specifically, the VXLAN header may be completely copied into the options field.
[0090] Optionally, the "Options" in the DOH includes a type-length-value (TLV), and a type field in the TLV indicates that the DOH carries a VNI. For example, it may be specified that when the type field T is 1, it indicates that the DOH carries a VNI. After receiving the second packet, another network device can determine that the second packet includes a VNI based on T=1.
[0091] Optionally, the "Options" in the DOH includes a TLV, and the type of the TLV indicates that the DOH carries a VXLAN header. The TLV may be an extended VXLAN TLV, and the VXLAN TLV may also be called a VN Option TLV. As shown in Figure 5a, the VN (VXLAN) Option TLV includes an Option Type field, an Option Data Length field, and an Option Data field.
[0092] Optionally, the Option Type field and the Option Data Length field each occupy 8 bits, and the Option Data field occupies 64 bits.
[0093] The option type field identifies the TLV as a VN option, and specifically identifies that the VN option carries a VNI, or identifies that the VN option carries a VXLAN header.
[0094] Optionally, the VNI may be carried in an optional data field, as shown in FIG. 5b.
[0095] Optionally, the VXLAN header may be carried in an optional data field, as shown in FIG. 5c.
[0096] In some application scenarios, packets may be forwarded based on some or all of the pre-specified route. Segment routing (SR) protocol is a source routing protocol. A source node specifies a route for an application packet, converts the route into an ordered segment list, and encapsulates the list in a header. When SR is deployed in an IPv6 data plane, SR is called SRv6. During SRv6 application, forwarding route information is carried in an SRH that includes a SID list. A SID list is an ordered sequence of multiple segment lists, each of which indicates multiple segments. Each segment is an instruction or set of instructions for packet processing. The SRH is encapsulated in a packet, and the segment identifier list in the SRH carries the process of processing the packet by the SR network. For example, in the application scenario shown in Figure 1a, the specified route includes switch 1 and switch 2. In this case, the SID corresponding to switch 1 and the SID corresponding to switch 2 are added to the SID list carried in the SRH.
[0097] In another embodiment, when the VNI is carried in the SRH, the VNI may be carried in the SID list of the SRH. The format of the SRH is shown in Fig. 6a. The SRH includes a Next Header field, a Header Ext Len field, a Routing Type field, a Segment Left field, a Last Entry field, a Flags field, a Tag field, and a SID list. The SID list includes a number of elements arranged in the order of segment list [0] to segment list [n-1]. Each element is a SID, and the length of each element is 128 bits. In Fig. 6a, segment list [0] corresponds to the segment to be executed first, and segment list [n-1] corresponds to the segment to be executed last.
[0098] The format of the SID is shown in FIG. 6b. The SID may include a locator field and a function field. The SID may further include an argument field and / or a padding field after the function field. The content of the locator field, also called locator for short, is an identifier assigned to a network node in a network topology and identifies the network node in the network topology. The content of the function field, also called function for short, indicates an instruction or an instruction set for packet processing and is equivalent to an operation code of a computer instruction. When the instruction or instruction set indicated by the function is executed on a network node, the network node is enabled to execute the corresponding forwarding behavior. The content of the argument field, also called argument for short, indicates a parameter used to execute the instruction or instruction set indicated by the function.
[0099] Cases in which a VNI is carried in the SID list may include the following cases:
[0100] Case 1: The VNI is carried in the SID corresponding to the second network device in the SID list. Optionally, the VNI is carried in a function field of the SID of the second network device. If the SID of the second network device is used to carry the VNI, the SID of the second network device may be used to carry the VNI directly. As shown in FIG. 6c, the SID list includes SID 1 to SID n, and the SID of the second network device is SID n. SID n includes a locator and a VNI. The locator is the address or prefix of the second network device. For example, the VNI may occupy the 64th bit to the 128th bit in the SID of the second network device, or may occupy the 80th bit to the 128th bit in the SID of the second network device. If the SID n further includes a parameter, the SID n includes a locator, a VNI, and an argument. In this case, the VNI may occupy the 64th bit to the 87th bit in the SID of the second network device.
[0101] Alternatively, the SID of the second network device is used to carry a VXLAN header, and the VXLAN header includes a VNI. As shown in FIG. 6d, the SID of the second network device is SID n, and SID n includes a locator and a VXLAN header. Specifically, the VXLAN header may occupy the 64th bit to the 128th bit of the SID of the second network device. The SID of the second network device indicates to the second network device to forward the packet based on the VNI carried in the SID.
[0102] Case 2: The VNI is carried in a SID of a network device other than the second network device. For example, if the SID of the second network device in the SID list is SID 3, the VNI is carried in SID 4 in the SID list. That is, the VNI is carried in another SID. In this case, the other SID may be used to carry the VNI directly. For the carrying method, see FIG. 6c. Alternatively, the other SID may be used to carry a VXLAN header, which includes the VNI. For the carrying method, see FIG. 6d. The SID of the second network device indicates that the second network device reads the VNI from the other SID and forwards the packet based on the VNI.
[0103] In this embodiment, since the second network device needs to forward packets based on the VNI, when advertising the SID of the second network device, the second network device may inform that the type of the SID of the second network device is END.VN. The SID is an SRv6 SID. The locator portion of the SID includes a VTEP address or a VTEP SRv6 locator corresponding to the VXLAN packet, and the function portion of the SID includes a VNI or a VXLAN header. The forwarding operation corresponding to the behavior associated with the SID includes, after the packet reaches the destination VTEP node, obtaining a corresponding VXLAN instance forwarding table based on the VNI in the SID, decapsulating the packet, searching the forwarding table based on the MAC address in the payload, etc., and forwarding the packet. Optionally, the SID corresponding to the address of the second network device is an SID of the END.VN type. Optionally, the SID corresponding to the address of the second network device is an SRv6 Locator of the second network device.
[0104] In a specific implementation, after establishing an Interior Gateway Protocol (IGP) session or a Border Gateway Protocol (BGP) session with the first network device, the second network device can advertise the SID of the second network device and a type corresponding to the SID to the first network device by using the IGP or BGP. The first network device stores the SID of the second network device and a type corresponding to the SID. When a VXLAN packet needs to be forwarded to the second network device, the first network device may encapsulate a VNI corresponding to the packet into an IPv6 header based on the type of the SID of the second network device. When advertising the SID, the second network device locally establishes a forwarding table, and the forwarding table includes a match item and an action item. The match item includes the SID of the second network device. The action item indicates that the second network device decapsulates the packet and forwards the packet based on the VNI carried in the packet.
[0105] If the IPv6 header further includes VXLAN flags, the VXLAN flags may be carried in the SID of the second network device. For example, the VXLAN flags and the VNI are encapsulated in SID n in Figure 6e. If SID n further includes parameters, SID n includes a locator, VXLAN flags, a VNI, and an argument.
[0106] From the above description, it can be seen that either the IPv6 base header can be used to carry the VNI, or the IPv6 extension header can be used to carry the VNI. In either method, there is no need to encapsulate an additional UDP header. This reduces the amount of data for packet encapsulation and improves packet encapsulation efficiency.
[0107] In addition, the flow label in the IPv6 header may correspond to a destination port number of the VXLAN packet. The destination port number may be used not only to perform load balancing processing in the forwarding process of the second packet, but also to determine that the second packet includes a VXLAN packet. For example, if the port number carried in the flow label is 4789, the received packet may be identified to include a VXLAN packet based on the port number. The port number may be a fixed port number set in advance, or may be a port number obtained by dynamic calculation based on the payload of the first packet. Optionally, the method for calculating the flow label of the second packet is the same as the method for calculating the UDP source port used for load balancing in the VXLAN packet, and the port number value obtained from the VXLAN packet may be carried in the flow label of the second packet.
[0108] When an IPv6 header is encapsulated in a first packet to implement an in-situ flow information telemetry (IFIT) function, an IFIT command may be carried in the IPv6 header to implement hop-by-hop network in-situ flow information telemetry or network in-situ flow information telemetry of a specified node or a destination node. Specifically, the IFIT command may be carried in an IPv6 extension header.
[0109] S204: The first network device sends a second packet to the second network device.
[0110] In this embodiment, after obtaining the second packet by encapsulating the IPv6 header into the first packet, the first network device sends the second packet to the second network device. The second network device may be an end node in a VXLAN network. For example, the second network device is switch 2 in FIG. 1a. Optionally, a destination address field in the IPv6 header of the second packet includes an address of the second network device or an SRv6 locator of the second network device. For example, in FIG. 1a, the destination address field in the IPv6 header of the second packet includes an address of switch 2 or an SRv6 locator of switch 2.
[0111] S205: The second network device receives a second packet and obtains the VNI from the IPv6 header of the second packet.
[0112] From the above description, it can be seen that the VNI can be carried in an IPv6 base header or an IPv6 extension header. If the VNI is carried in a different IPv6 header, the second network device obtains the VNI from the IPv6 header in a different manner.
[0113] If the VNI is carried in the destination address field of the IPv6 basic header, after receiving the second packet sent by the first network device, the second network device determines whether the destination address field includes the address of the second network device. If the destination address field includes the address of the second network device, the VNI is obtained from the destination address field. If the VNI is directly carried in the destination address field, the second network device may obtain the VNI by parsing the destination address field. If the VNI is carried in the VXLAN header and the VXLAN header is carried in the destination address field, the second network device needs to first parse the destination address field to obtain the VXLAN header and read the VNI from the VXLAN header.
[0114] It should be noted that, since the address of the second network device needs to be encapsulated in the second packet, the second network device needs to advertise the address of the second network device to the first network device before the second network device receives the second packet sent by the first network device. The address of the second network device indicates to the second network device that it will forward the packet based on the VNI carried in the destination address field when receiving the second packet. When advertising the address of the second network device to the first network device, the second network device locally establishes a forwarding entry, and the forwarding entry may include a match item and an action item. The match item includes the address of the second network device. The action item indicates that after the match is successful by using the match item, the VNI is obtained from the destination address field, the second packet is decapsulated, and the decapsulated packet is forwarded based on the VNI.
[0115] If the VNI is carried in the DOH of the IPv6 extension header, after receiving the second packet sent by the first network device, the second network device determines whether the destination address field includes the address of the second network device. If the destination address field includes the address of the second network device, it is determined whether the type field of the TLV in the DOH indicates that the VNI is carried. If the type field of the TLV indicates that the VNI is carried, the VNI is obtained from the DOH. If the VNI is directly carried in the DOH, the second network device may obtain the VNI by parsing the DOH. If the VNI is carried in the VXLAN header and the VXLAN header is carried in the DOH, the second network device needs to first parse the DOH to obtain the VXLAN header and read the VNI from the VXLAN header.
[0116] If the VNI is carried in an SID corresponding to the second network device in the SID list of the SRH in the IPv6 extension header, after receiving the second packet, the second network device determines whether the destination address field of the second packet includes the SID of the second network device. If the destination address field of the second packet includes the SID of the second network device, the second network device obtains the VNI from the SID of the second network device carried in the second packet.
[0117] If the VNI is carried in another corresponding SID (the SID of a network device other than the second network device) in the SID list of the SRH in the IPv6 extension header, the second network device determines whether the destination address field of the second packet includes the SID of the second network device after receiving the second packet. If the destination address field of the second packet includes the SID of the second network device, the second network device obtains the VNI from another SID carried in the second packet. For example, a field or a new field in the SRH may be used to indicate the second network device to obtain the VNI from the specified SID, or it is predefined that the VNI is carried in the next SID adjacent to the SID of the second network device. In this case, after receiving the second packet, the second network device reads the next SID from the SID list and obtains the VNI from the next SID.
[0118] It should be noted that, since the SID of the second network device needs to be encapsulated in the second packet, before the second network device receives the second packet sent by the first network device, the second network device needs to advertise the SID of the second network device to the first network device. In addition, the type of the SID of the second network device may be further advertised. The type corresponding to the SID of the second network device may be defined as END.VN, indicating the second network device, after receiving the corresponding packet, obtains the VNI from the packet, decapsulates the packet, searches the forwarding table based on the VNI, and forwards the decapsulated packet based on the forwarding table. The SID of the second network device may be the address of the second network device, or a corresponding address obtained by compressing the address of the second network device.
[0119] When advertising the SID of the second network device to the first network device, the second network device may further establish a forwarding entry locally. The forwarding entry includes a match item and an action item. The match item includes the SID of the second network device. The action item indicates an action that needs to be performed if the match is successful. For example, the action item indicates to decapsulate the second packet and forward the decapsulated packet based on the VNI if the match is successful.
[0120] S206: The second network device decapsulates the second packet to obtain the first packet.
[0121] In this embodiment, after obtaining the VNI, if the second network device determines based on the information in the encapsulated IPv6 header that the second network device is an end node, the second network device decapsulates the second packet and removes the encapsulated IPv6 header to obtain a first packet. For example, if the second network device determines that the destination address field in the IPv6 header of the second packet includes the SID of the second network device, the second network device decapsulates the second packet based on the action item in the forwarding entry to obtain the first packet. Decapsulating the packet includes removing the IPv6 base header encapsulated in the second packet to obtain the first packet, or removing the IPv6 base header and the IPv6 extension header encapsulated in the second packet to obtain the first packet.
[0122] The execution order of S205 and S206 is not limited in this embodiment. S206 may be executed before S205, S205 may be executed before S206, or S205 and S206 may be executed simultaneously.
[0123] S207: The second network device forwards the first packet based on the VNI.
[0124] After obtaining the first packet, the second network device determines a forwarding path based on the VNI, and forwards the first packet based on the forwarding path. Specifically, the second network device obtains a corresponding VXLAN instance forwarding table based on the VNI, searches the VXLAN instance forwarding table for a forwarding entry based on the destination address in the first packet, and forwards the first packet based on the forwarding entry. Note that when the first packet is a Layer 2 packet, the corresponding destination address is a MAC address, and the obtained forwarding table is a MAC table. When the first packet is a Layer 3 packet, the corresponding destination address is an IP address, and the obtained forwarding table is a routing table.
[0125] For ease of understanding, please refer to the schematic diagram of the application scenario shown in Figure 6f. In the application scenario, an example including a source server, a destination server, VTEP 1, VTEP 2, and a pass-through device RR is used for explanation. The IPv4 address of the source server is 10.1.1.1, and the MAC address is 1-1-1. The IPv4 address of the destination server is 10.1.1.2, and the MAC address is 2-2-2. The IPv6 address of VTEP 1 is 10::1, and the MAC address is AA-1-1. The IP address of VTEP 2 is 10::2, and the MAC address is CC-1-1. The MAC address of the pass-through device RR is BB-1-1. A VXLAN tunnel is established between VTEP 1 and VTEP 2. The VNI corresponding to VTEP 1 and VTEP 2 is 1001. In Figure 6f, the forwarding of Layer 2 service packets is used as an example for explanation. Specifically, after receiving packet 1 sent by the source server, VTEP 1 determines a tenant identifier VNI 1001 corresponding to the source server based on information about the port connected between VTEP 1 and the source server, and encapsulates the VNI in the destination address field of the IPv6 basic header. The destination address field further includes the address 10::2 of the tunnel endpoint VTEP 2. The source address field includes the address 10::1 of the tunnel endpoint VTEP 1. In addition, the outer MAC header is encapsulated. The MAC header includes the source MAC address AA-1-1 and the destination MAC address BB-1-1. VTEP 1 obtains the encapsulated packet 2 and sends the packet 2 to the transit device RR. After receiving Packet 2, the transit device RR determines the MAC address of the next hop network device based on the Layer 2 forwarding table, updates the source MAC and destination MAC in the outer MAC header, updates the source MAC to BB-1-1 and the destination MAC to CC-1-1 to obtain Packet 3, and forwards Packet 3 to VTEP 2. VTEP 2 discovers that VTEP 2 is a tunnel endpoint node based on the destination address 10::2.In this case, VTEP 2 obtains the VNI:1001 from the destination address field in the IPv6 base header of packet 3, searches the corresponding forwarding table based on the VNI, decapsulates the IPv6 base header in packet 3 to obtain packet 4, and forwards packet 4 to the destination server based on the forwarding table.
[0126] Based on the above method embodiment, an embodiment of the present application further provides a network device for VXLAN packet transmission, which is described below with reference to the accompanying drawings.
[0127] FIG. 7 is a schematic diagram of a possible structure of a network device in the aforementioned method embodiment. The network device 700 may implement the function of the first network device in the embodiment shown in FIG. 2. Alternatively, the network device 700 may implement the function of the switch 1 in the embodiment shown in FIG. 1a and the VTEP 1 in the embodiment shown in FIG. 6. Please refer to FIG. 7. The network device 700 includes an obtaining unit 701, a processing unit 702, and a sending unit 703. These units may perform corresponding functions of the first network device in the aforementioned method example. The obtaining unit 701 is configured to support the network device 700 in performing S201 in FIG. 2. The processing unit 702 is configured to support the network device 700 in performing S202 and S203 in FIG. 2. The sending unit 703 is configured to support the network device 700 in performing S204 in FIG. 2 and / or another process performed by the first network device in the technology described herein. For example, the obtaining unit 701 is configured to perform an operation of obtaining a first packet by a first network device in the aforementioned method embodiment. The processing unit 702 is configured to perform various processing operations performed by a first network device in the aforementioned method embodiment. The sending unit 703 is configured to perform an operation of sending a packet by a first network device in the aforementioned method embodiment. For example, the processing unit 702 is configured to obtain a VNI based on the first packet, and encapsulate an IPv6 header in the first packet to obtain a second packet. The sending unit 703 is configured to send the second packet to the second network device. For a specific execution process, please refer to the detailed description of the corresponding steps in the embodiment shown in FIG. 2 or FIG. 6. Details will not be repeated here.
[0128] Optionally, the processing unit 702 is specifically configured to obtain a VNI based on an interface for receiving the first packet. The VNI corresponds to the interface for receiving the first packet.
[0129] It should be noted that in this embodiment of the present application, the unit division is an example, and is merely a logical functional division. In actual implementation, other division methods may be used. The functional units in this embodiment of the present application may be integrated into one processing unit, or each of the units may exist physically alone, or two or more units may be integrated into one unit. For example, in the above embodiment, the processing unit and the transmission unit may be the same unit or may be different units. The integrated unit may be implemented in the form of hardware or in the form of a software functional unit.
[0130] FIG. 8 is a schematic diagram of a possible structure of a network device in the aforementioned method embodiment. The network device 800 may implement the function of the second network device in the embodiment shown in FIG. 2. Alternatively, the network device 800 may implement the function of the switch 2 in the embodiment shown in FIG. 1a and the VTEP 2 in the embodiment shown in FIG. 6. Please refer to FIG. 8. The network device 800 includes a receiving unit 801, a processing unit 802, and a sending unit 803. These units may perform corresponding functions of the second network device in the aforementioned method example. The receiving unit 801 is configured to support the network device 800 in performing S205 of FIG. 2. The processing unit 802 is configured to support the network device 800 in performing S205 and S206 of FIG. 2. The sending unit 803 is configured to support the network device 800 in performing S207 of FIG. 2 and / or another process performed by the second network device in the technology described herein. For example, the receiving unit 801 is configured to perform an operation of receiving a second packet by a second network device in the aforementioned method embodiment. The processing unit 802 is configured to perform various processing operations performed by a second network device in the aforementioned method embodiment. The sending unit 803 is configured to perform an operation of forwarding a first packet by a second network device in the aforementioned method embodiment. For example, the processing unit 802 is configured to obtain a VNI from an IPv6 header of the second packet, and decapsulate the second packet to obtain a first packet. The sending unit 803 is configured to forward the first packet. For a specific execution process, please refer to the detailed description of the corresponding steps in the embodiment shown in FIG. 2 or FIG. 6. Details will not be repeated here.
[0131] Optionally, the processing unit 802 is specifically configured to determine that the destination address field includes an address of the second network device, and in response to determining that the destination address field includes the address of the second network device, obtain the VNI from the destination address field.
[0132] Optionally, the processing unit 802 is specifically configured to determine that a destination address field of the second packet includes a SID of the second network device, and in response to determining that the destination address field of the second packet includes the SID of the second network device, obtain a VNI from the SID of the second network device.
[0133] Optionally, the sending unit 803 is further configured to advertise an SID of the second network device to the first network device before the receiving unit 801 receives the second packet from the first network device.
[0134] Optionally, the processing unit 802 is further configured to establish a forwarding entry, where the forwarding entry includes a match item and an action item, where the match item includes a SID of the second network device, and is configured to decapsulate the second packet based on the action item, and is configured to forward the first packet based on the VNI.
[0135] It should be noted that in this embodiment of the present application, the unit division is an example, and is merely a logical functional division. In actual implementation, other division methods may be used. The functional units in this embodiment of the present application may be integrated into one processing unit, or each of the units may exist physically alone, or two or more units may be integrated into one unit. For example, in the above embodiment, the processing unit and the transmission unit may be the same unit or may be different units. The integrated unit may be implemented in the form of hardware or in the form of a software functional unit.
[0136] Please refer to FIG. 9. An embodiment of the present application provides a network system 900 for VXLAN packet transmission. The system 900 is configured to implement a VXLAN packet transmission method in the embodiment of the above-mentioned method. The system 900 includes a network device 901 and a network device 902. The network device 901 may implement the function of the first network device in the embodiment shown in FIG. 2 or the function of the network device 700 in FIG. 7. The network device 902 may implement the function of the second network device in the embodiment shown in FIG. 2 or the function of the network device 800 in FIG. 8. The network device 901 may further implement the function of the switch 1 in the embodiment shown in FIG. 1a or the function of the VTEP 1 in the embodiment shown in FIG. 6. The network device 902 may further implement the function of the switch 2 in the embodiment shown in FIG. 1a or the function of the VTEP 2 in the embodiment shown in FIG. 6. For a specific execution process, please refer to the detailed description of the corresponding steps in the embodiment shown in FIG. 2 or FIG. 6. Details will not be repeated here.
[0137] Figure 10 is a schematic diagram of the structure of a network device according to an embodiment of the present application. The network device may be, for example, the first network device or the second network device in the embodiment of the above-mentioned method. Alternatively, the network device 700 in Figure 7 and the network device 800 in Figure 8 may be implemented using the device shown in Figure 10.
[0138] Please refer to Figure 10. The network device 1000 includes a processor 1010, a communication interface 1020, and a memory 1030. There may be one or more processors 1010 in the network device 1000. In Figure 10, one processor is used as an example. In this embodiment of the present application, the processor 1010, the communication interface 1020, and the memory 1030 may be connected by using a bus system or in other ways. In Figure 10, for example, a bus system 1040 is used for connection.
[0139] The processor 1010 may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and a NP. The processor 1010 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
[0140] If the network device is a first network device, the processor 1010 may perform relevant functions in the above-described method embodiments, such as receiving a first packet, obtaining a VNI corresponding to the first packet, and encapsulating an IPv6 header in the first packet to obtain a second packet.
[0141] The communication interface 1020 is configured to receive and transmit packets. Specifically, the communication interface 1020 may include a receiving interface and a transmitting interface. The receiving interface may be configured to receive packets, and the transmitting interface may be configured to transmit packets. There may be one or more communication interfaces 1020.
[0142] The memory 1030 may include volatile memory, such as random access memory (RAM). The memory 1030 may further include non-volatile memory, such as flash memory, a hard disk drive (HDD), or a solid-state drive (SSD). The memory 1030 may further include a combination of the aforementioned types of memory. The memory 1030 may store, for example, user-related information as described above.
[0143] Optionally, the memory 1030 stores an operating system, a program, an executable module, or a data structure, a subset thereof, or an extended set thereof. The program may include various operating instructions for implementing various operations. The operating system may include various system programs and is configured to implement various basic services and handle hardware-based tasks. The processor 1010 may read the programs in the memory 1030 to implement the methods provided in the embodiments of the present application.
[0144] The memory 1030 may be a storage device within the network device 1000 or may be a storage device separate from the network device 1000 .
[0145] The bus system 1040 may be a peripheral component interconnect (PCI) bus, an extended industry standard architecture (EISA) bus, etc. The bus system 1040 may be categorized into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used to represent a bus in Fig. 10, but this does not imply that there is only one bus or only one type of bus.
[0146] 11 is a schematic diagram of the structure of another network device 1100 according to an embodiment of the present application. The network device 1100 may be configured as the first network device or the second network device in the embodiment of the above-mentioned method. Alternatively, the network device 700 in FIG. 7 and the network device 800 in FIG. 8 may be implemented using the device shown in FIG. 11.
[0147] The network device 1100 includes a main control board 1110 and an interface board 1130 .
[0148] The main control board 1110 is also called a main processing unit (MPU) or a route processor card. The main control board 1110 controls and manages the components in the network device 1100, including the functions of routing calculation, device management, device maintenance, and protocol processing. The main control board 1110 includes a central processing unit 1111 and a memory 1112.
[0149] The interface board 1130 is also called a line processing unit (LPU), a line card, or a service board. The interface board 1130 is configured to provide various service interfaces and forward data packets. The service interfaces include, but are not limited to, an Ethernet interface, a Packet over SONET / SDH (POS) interface, and the like. The Ethernet interface is, for example, a flexible Ethernet client interface (FlexE clients). The interface board 1130 includes a central processing unit 1131, a network processor 1132, a forwarding entry memory 1134, and a physical interface card (PIC) 1133.
[0150] The central processing unit 1131 on the interface board 1130 is configured to control and manage the interface board 1130 and to communicate with the central processing unit 1111 on the main control board 1110.
[0151] The network processor 1132 is configured to perform packet forwarding processing. The form of the network processor 1132 may be a forwarding chip. Specifically, the processing of an uplink packet includes processing an inbound interface of the packet and searching a forwarding table. The processing of a downlink packet includes searching a forwarding table, etc.
[0152] The physical interface card 1133 is configured to implement a physical layer interconnect function. Original traffic enters the interface board 1130 through the physical interface card 1133, and processed packets are sent out through the physical interface card 1133. The physical interface card 1133 includes at least one physical interface, which is also called a physical port. The physical interface card 1133, which is also called a subcard, may be attached to the interface board 1130 and is responsible for converting optical / electrical signals into packets, performing validity checks on the packets, and forwarding the packets to the network processor 1132 for processing. In some embodiments, the central processing unit 1131 of the interface board 1103 may also perform the functions of the network processor 1132, for example, implementing software forwarding based on a general-purpose CPU. Therefore, the network processor 1132 is not required in the physical interface card 1133.
[0153] Optionally, the network device 1100 includes multiple interface boards. For example, the network device 1100 further includes an interface board 1140. The interface board 1140 includes a central processing unit 1141, a network processor 1142, a forwarding entry memory 1144, and a physical interface card 1143.
[0154] Optionally, the network device 1100 further includes a switching board 1120. The switching board 1120 may also be referred to as a switch fabric unit (SFU). When the network device has multiple interface boards 1130, the switching board 1120 is configured to complete data exchange between the interface boards. For example, the interface board 1130 may communicate with the interface board 1140 through the switching board 1120.
[0155] The main control board 1110 is coupled to the interface board 1130. For example, the main control board 1110, the interface board 1130, the interface board 1140, and the switching board 1120 are connected to a system backplane via a system bus to achieve communication. In a possible embodiment, an inter-process communication (IPC) channel is established between the main control board 1110 and the interface board 1130, and the main control board 1110 communicates with the interface board 1130 via the IPC channel.
[0156] Logically, the network device 1100 includes a control plane and a forwarding plane. The control plane includes a main control board 1110 and a central processing unit 1131. The forwarding plane includes components that perform forwarding, such as a forwarding entry memory 1134, a physical interface card 1133, and a network processor 1132. The control plane performs functions such as that of a router to generate forwarding tables, process signaling and protocol packets, and configure and maintain the status of the device. The control plane distributes the generated forwarding tables to the forwarding plane. In the forwarding plane, the network processor 1132 looks up the forwarding table distributed by the control plane to forward packets received by the physical interface card 1133. The forwarding table distributed by the control plane may be stored in the forwarding entry memory 1134. In some embodiments, the control plane and the forwarding plane may be completely separate and are not on the same device.
[0157] It should be understood that the processing unit 702 in the network device 700 may be equivalent to the central processing unit 1111 or the central processing unit 1131 in the network device 1100.
[0158] It should be understood that the operations performed on the interface board 1140 correspond to the operations performed on the interface board 1130 in this embodiment of the present application. For the sake of brevity, details will not be described. It should be understood that the network device 1100 in this embodiment may correspond to the first network device or the second network device in the above-mentioned method embodiment. The main control board 1110, the interface board 1130, and / or the interface board 1140 in the network device 1100 may perform the functions and / or various steps performed by the first network device or the second network device in the above-mentioned method embodiment. For the sake of brevity, details will not be described again here.
[0159] It should be understood that there may be one or more main control boards. When there are multiple main control boards, the main control board may include an active main control board and a standby main control board. There may be one or more interface boards, and a network device with stronger data processing capabilities provides more interface boards. There may be one or more physical interface cards on the interface board. There may be no switching board, or there may be one or more switching boards. When there are multiple switching boards, load balancing and redundant backup may be implemented together. In a centralized forwarding architecture, a network device may not require a switching board, and the interface board provides the function of processing service data for the entire system. In a distributed forwarding architecture, a network device may have at least one switching board, and data exchange between multiple interface boards is implemented using the switching board to provide large-capacity data exchange and processing capabilities. Thus, the data access and processing capabilities of a network device in a distributed architecture are superior to those of a device in a centralized architecture. Optionally, a network device may alternatively include only one card. That is, there is no switching board. The functions of the interface board and the main control board are integrated on the card. In this case, the central processing unit on the interface board and the central processing unit on the main control board may be combined into one central processing unit on the card to perform the combined functions of the two central processing units. Devices of this form (e.g., network devices such as low-end switches or routers) have weak data exchange and processing capabilities. The specific architecture used depends on the specific networking deployment scenario.
[0160] In some possible embodiments, the first network device or the second network device may be implemented as a virtualization device. For example, the virtualization device may be a virtual machine (VM) on which a program having a packet transmission function is executed, and the virtual machine is deployed on a hardware device (e.g., a physical server). The virtual machine is a complete computer system simulated by software, which has a complete hardware system function and operates in a completely isolated environment. The virtual machine may be configured as the first network device or the second network device. For example, the first network device or the second network device may be implemented based on a general-purpose physical server combined with network functions virtualization (NFV) technology. The first network device or the second network device is a virtual host, a virtual router, or a virtual switch. By reading this application, a person skilled in the art can virtualize the first network device or the second network device having the aforementioned functions on a general-purpose physical server combined with NFV technology. Details will not be repeated here.
[0161] It should be understood that the network device in the above product form may separately have any function implemented by the first network device or the second network device in the above method embodiment, which will not be described in detail here.
[0162] An embodiment of the present application further provides a chip, including a processor and an interface circuit. The interface circuit is configured to receive an instruction and transmit the instruction to the processor. The processor may be configured to execute the aforementioned VXLAN packet transmission method. The processor is coupled to a memory. The memory is configured to store a program or instruction. When the program or instruction is executed by the processor, the chip system is enabled to implement the method in any one of the aforementioned method embodiments.
[0163] Optionally, there may be one or more processors in the chip system. The processor may be implemented using hardware or software. When implemented using hardware, the processor may be a logic circuit, an integrated circuit, etc. When implemented using software, the processor may be a general-purpose processor and is implemented by reading software code stored in a memory.
[0164] Optionally, there may be one or more memories in the chip system. The memory may be integrated with the processor or may be located separately from the processor. This is not limited in this application. For example, the memory may be a non-transitory processor, such as a read-only memory ROM. The memory and the processor may be integrated on the same chip or may be located separately on separate chips. The type of memory and the arrangement manner of the memory and the processor are not limited in this embodiment of the application.
[0165] For example, the chip system may be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on chip (SoC), a central processor unit (CPU), a network processor (NP), a digital signal processor (DSP), a micro controller unit (MCU), a programmable logic device (PLD), or another integrated chip.
[0166] An embodiment of the present application further provides a computer-readable storage medium including instructions and a computer program, which, when executed on a computer, enables the computer to perform the VXLAN packet transmission method in the above-mentioned embodiment.
[0167] An embodiment of the present application further provides a computer program product including instructions or a computer program, which, when executed on a computer, enables the computer to perform the VXLAN packet transmission method in the aforementioned embodiment.
[0168] In the specification, claims, and accompanying drawings of this application, the terms "first," "second," "third," "fourth," etc. (when present) are intended to distinguish between similar objects and do not necessarily indicate a particular order or sequence. It is to be understood that the data used in such methods may be interchanged where appropriate, such that the embodiments described herein may be performed in orders other than those illustrated or described herein. Furthermore, the terms "include," "have," and any other variations are meant to cover non-exclusive inclusions, e.g., a process, method, system, product, or device that includes a list of steps or units is not necessarily limited to those steps or units, but may include other steps or units not expressly listed or inherent in such process, method, product, or device.
[0169] For the purpose of convenient description, for the detailed operating processes of the above-mentioned systems, devices and units, reference is made to the corresponding processes in the above-mentioned method embodiments, which can be clearly understood by those skilled in the art, and the details will not be described again in this specification.
[0170] In some embodiments provided in the present application, it should be understood that the disclosed system, device, and method can be implemented in other ways. For example, the above-mentioned device embodiments are merely examples. For example, the unit division is merely a logical service division, and may be other divisions during actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not implemented. In addition, the illustrated or described mutual couplings, direct couplings, or communication connections may be realized through some interfaces. Indirect couplings or communication connections between devices or units may be implemented in electronic, mechanical, or other forms.
[0171] The units described as separate parts may or may not be physically separate, and the parts shown as units may or may not be physical units, and may be located in one location or distributed over multiple network units. Some or all of the units may be selected based on the actual requirements to achieve the objectives of the solutions in the embodiments.
[0172] In addition, the service units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The integrated unit may be implemented in the form of hardware or in the form of a software service unit.
[0173] When the integrated unit is implemented in the form of a software service unit and sold or used as an independent product, the integrated unit may be stored in a computer-readable storage medium. Based on such understanding, the technical solution of the present application may be essentially implemented in the form of a software product, or the part that contributes to the existing technology, or all or part of the technical solution may be implemented in the form of a software product. The computer software product is stored in a storage medium and includes some instructions for instructing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method described in the embodiments of the present application. The storage medium includes any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0174] Those skilled in the art should recognize that in one or more of the foregoing examples, the services described in this application may be implemented by using hardware, software, firmware, or any combination thereof. If implemented using software, the services may be stored in or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media. Communication media include any medium that allows a computer program to be transmitted from one place to another. Storage media may be any available medium accessible to a general-purpose or special-purpose computer.
[0175] In the above specific embodiments, the objectives, technical solutions and beneficial effects of the present application are further described in detail. It should be understood that the above description is only a specific embodiment of the present application.
[0176] In conclusion, the above embodiments are only intended to illustrate the technical solutions of the present application, and are not intended to limit the present application. Although the present application has been described in detail with reference to the above embodiments, it should be understood that those skilled in the art can make modifications to the technical solutions described in the above embodiments, or make equivalent substitutions to some technical features thereof, without departing from the scope of the technical solutions of the embodiments of the present application. [Explanation of symbols]
[0177] 700 Network Devices 701 Acquired Units 702 Processing Unit 703 Transmitter Unit 800 Network Devices 801 Receiver Unit 802 Processing Unit 803 Transmitter Unit 900 Network System 901 Network Devices 902 Network Devices 1000 Network Devices 1010 Processor 1020 Communication Interface 1030 Memory 1040 Bus System 1100 Network Devices 1103 Interface Board 1110 Main control board 1111 Central Processing Unit 1112 Memory 1120 Switching Board 1130 Interface Board 1131 Central Processing Unit 1132 Network Processor 1133 Physical Interface Card 1134 Forwarding Entry Memory 1140 Interface Board 1141 Central Processing Unit 1142 Network Processor 1143 Physical Interface Card 1144 Forwarding Entry Memory
Claims
1. acquiring, by a first network device, a first packet; obtaining, by the first network device, a virtual extensible local area network identifier VNI based on the first packet; encapsulating, by the first network device, an Internet Protocol version 6 (IPv6) header into the first packet to obtain a second packet, the IPv6 header carrying the VNI; transmitting, by the first network device, the second packet to a second network device; A virtual extensible local area network (VXLAN) packet transmission method comprising:
2. The method of claim 1 , wherein the IPv6 header is an IPv6 base header.
3. 3. The method of claim 2, wherein the VNI is carried in a destination address field of the IPv6 base header.
4. 4. The method of claim 3, wherein bits 65 through 128 in the destination address field carry the VNI.
5. 4. The method of claim 3, wherein the destination address field comprises a VXLAN header, the VXLAN header carrying the VNI.
6. 6. The method of claim 5, wherein bits 65 through 128 in the destination address field carry the VXLAN header.
7. 7. The method of claim 2, wherein a destination address in the destination address field indicates the second network device to forward the packet based on the VNI carried in the destination address field.
8. 2. The method of claim 1, wherein the IPv6 header is an IPv6 extension header, the IPv6 extension header comprising a Destination Options Header DOH or a Segment Routing Header SRH.
9. The method of claim 8 , wherein an Option portion of the DOH carries the VNI.
10. 10. The method of claim 8, wherein the DOH comprises a VXLAN header, the VXLAN header carrying the VNI.
11. The method of claim 8, wherein the VNI is carried in a segment identifier SID corresponding to the second network device in a SID list of the SRH.
12. 12. The method of claim 11, wherein the SID of the second network device comprises a VXLAN header, the VXLAN header carrying the VNI.
13. 13. The method of claim 11 or 12, wherein the SID of the second network device indicates the second network device to forward the packet based on the VNI carried in the SID.
14. 14. The method according to claim 1, wherein a flow label field in the IPv6 header carries a port number corresponding to a VXLAN packet.
15. The method of claim 14 , wherein the port number is used to perform load balancing in a forwarding process of the second packet.
16. 16. The method of claim 1, wherein the IPv6 header further comprises a VXLAN flag, the VXLAN flag comprising a flag indicating that the second packet carries a valid VNI.
17. obtaining, by the first network device, a VNI based on the first packet; obtaining, by the first network device, the VNI based on an interface for receiving the first packet, the VNI corresponding to the interface for receiving the first packet; 17. The method of any one of claims 1 to 16, comprising:
18. receiving, by a second network device, a second packet from the first network device, the second packet being encapsulated with an Internet Protocol version 6 IPv6 header, the IPv6 header carrying a Virtual Extensible Local Area Network Identifier VNI; obtaining, by the second network device, the VNI from the IPv6 header; decapsulating, by the second network device, the second packet to obtain a first packet, the first packet not including the IPv6 header; forwarding, by the second network device, the first packet based on the VNI; A virtual extensible local area network (VXLAN) packet transmission method comprising:
19. 20. The method of claim 18, wherein the IPv6 header is an IPv6 base header.
20. 20. The method of claim 19, wherein the VNI is carried in a destination address field of the IPv6 base header.
21. 21. The method of claim 20, wherein the destination address field comprises a Virtual Extensible Local Area Network (VXLAN) header, the VXLAN header carrying the VNI.
22. obtaining, by the second network device, the VNI from the IPv6 header; determining, by the second network device, that the destination address field comprises an address of the second network device; obtaining, by the second network device, the VNI from the destination address field in response to determining that the destination address field comprises the address of the second network device; 22. The method of claim 20 or 21, comprising:
23. 20. The method of claim 18, wherein the IPv6 header is an IPv6 extension header, the IPv6 extension header comprising a Destination Options Header DOH or a Segment Routing Header SRH.
24. 24. The method of claim 23, wherein the DOH comprises a Type-Length-Value TLV, a type field of the TLV indicating that the DOH carries the VNI.
25. 24. The method of claim 23, wherein the DOH comprises a VXLAN header, the VXLAN header carrying the VNI.
26. The method of claim 23, wherein the VNI is carried in a segment identifier list (SID list) of the SRH.
27. 27. The method of claim 26, wherein the SID of the second network device comprises a VXLAN header, the VXLAN header carrying the VNI.
28. obtaining, by the second network device, the VNI from the IPv6 header; determining, by the second network device, that the destination address field of the second packet comprises the SID of the second network device; deriving the VNI from the SID of the second network device in response to determining, by the second network device, that the destination address field of the second packet comprises the SID of the second network device; 28. The method of claim 27, comprising:
29. 29. The method of claim 27 or 28, wherein the type of the SID of the second network device is a virtual network endpoint END.VN type.
30. Prior to the step of receiving, by the second network device, a second packet from the first network device, the method further comprises: advertising, by the second network device, the SID of the second network device to the first network device.
30. The method of claim 29, further comprising:
31. The method further comprising: establishing, by the second network device, a forwarding entry, the forwarding entry comprising the SID of the second network device; decapsulating, by the second network device, the second packet based on the forwarding entry to obtain the first packet, and forwarding the first packet based on the VNI; 31. The method of any one of claims 27 to 30, further comprising:
32. A network device for virtual extensible local area network (VXLAN) packet transmission, applied to a network comprising a plurality of network devices, the plurality of network devices comprising a first network device and a second network device, the first network device being a second network device, the network device comprising: an acquisition unit configured to acquire a first packet; A processing unit configured to obtain a virtual extensible local area network identifier (VNI) based on the first packet, and encapsulate an Internet Protocol version 6 (IPv6) header in the first packet to obtain a second packet, the IPv6 header carrying the VNI; a transmitting unit configured to transmit the second packet to the second network device; and A network device for virtual extensible local area network (VXLAN) packet transmission comprising:
33. 33. The network device of claim 32, wherein the IPv6 header is an IPv6 base header, and the VNI is carried in a destination address field of the IPv6 base header.
34. 34. The network device of claim 33, wherein the destination address field comprises a Virtual Extensible Local Area Network (VXLAN) header, the VXLAN header carrying the VNI.
35. 33. The network device of claim 32, wherein the IPv6 header is an IPv6 extension header, the IPv6 extension header comprising a Destination Options Header DOH or a Segment Routing Header SRH.
36. 36. The network device of claim 35, wherein the DOH comprises a VXLAN header, the VXLAN header carrying the VNI.
37. The network device of claim 35, wherein the VNI is carried in a segment identifier SID corresponding to the second network device in a SID list of the SRH.
38. A network device for virtual extensible local area network (VXLAN) packet transmission, applied to a network comprising a plurality of network devices, the plurality of network devices comprising a first network device and a second network device, the network device being the second network device, the network device comprising: a receiving unit configured to receive a second packet from the first network device, the second packet being encapsulated with an Internet Protocol version 6 (IPv6) header, the IPv6 header carrying a virtual extensible local area network identifier (VNI); a processing unit configured to obtain the VNI from the IPv6 header and decapsulate the second packet to obtain a first packet, the first packet not comprising the IPv6 header; and a transmitting unit configured to forward the first packet based on the VNI; A network device for virtual extensible local area network (VXLAN) packet transmission comprising:
39. 40. The network device of claim 38, wherein the IPv6 header is an IPv6 base header, and the VNI is carried in a destination address field of the IPv6 base header.
40. 40. The network device of claim 39, wherein the destination address field comprises a VXLAN header, the VXLAN header carrying the VNI.
41. the processing unit is configured to determine that the destination address field comprises an address of the second network device, and in response to determining that the destination address field comprises the address of the second network device, obtain the VNI from the destination address field. A network device according to claim 39 or 40.
42. 40. The network device of claim 38, wherein the IPv6 header is an IPv6 extension header, the IPv6 extension header comprising a Destination Options Header DOH or a Segment Routing Header SRH.
43. A network system for virtual extensible local area network (VXLAN) packet transmission, the network system comprising: a first network device and a second network device; The first network device is configured to perform the method according to any one of claims 1 to 17, The second network device is configured to perform the method according to any one of claims 18 to 31. A network system for Virtual Extensible Local Area Network (VXLAN) packet transmission.
44. A network device comprising a processor and a memory, the memory is configured to store instructions or program code; The processor is configured to execute the instructions or the program code in the memory to enable the network device to perform the method according to any one of claims 1 to 17 or to perform the method according to any one of claims 18 to 31. Network devices.
45. 32. A computer-readable storage medium having instructions stored therein that, when executed on a processor, enable a computer or network device to perform the method of any one of claims 1 to 17 or to perform the method of any one of claims 18 to 31.
46. A computer program product comprising a program which, when executed on a processor, enables a computer or network device to perform the method of any one of claims 1 to 17 or to perform the method of any one of claims 18 to 31.
47. A chip including an interface circuit and a processor, the interface circuit being connected to the processor, the processor being configured to enable the chip to perform a method according to any one of claims 1 to 17 or to perform a method according to any one of claims 18 to 31.
Citation Information
Patent Citations
A data transmission method and apparatus
CN105591874B
Interoperability between data plane learning endpoints and control plane learning endpoints in overlay networks
US20170317919A1
In-data-plane network policy enforcement using IP addresses
US20200389426A1
Communication device and traffic control method
WO2015136875A1
Mapping GTP-u extension headers
WO2020225092A1
