Packet processing device and packet transfer method

The packet processing device efficiently transfers payloads within the device by decomposing and analyzing outer headers, addressing the inefficiencies in conventional SFC systems by reducing the transfer of unnecessary headers and enhancing processing speed.

WO2026033629A1PCT designated stage Publication Date: 2026-02-12NT T INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/028083
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-06
Publication Date
2026-02-12

AI Technical Summary

Technical Problem

Conventional packet processing devices in Service Function Chaining (SFC) suffer from low packet transfer efficiency due to the increased proportion of outer headers in packets and resource consumption in transferring these headers, leading to bottlenecks in processing large-scale service function chains.

Method used

A packet processing device that decomposes packets into outer headers and payloads, analyzes the outer headers to determine the next destination, and efficiently transfers only the necessary payloads to processing units, recombining them with outer headers for transmission, utilizing hardware components like FPGA or ASIC for high-speed processing.

Benefits of technology

This approach enhances packet transfer efficiency by minimizing the transfer of unnecessary headers, improving processing speed and resource utilization within the device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024028083_12022026_PF_FP_ABST
    Figure JP2024028083_12022026_PF_FP_ABST
Patent Text Reader

Abstract

This packet processing device comprises: an identification number assignment unit that assigns an identification number to a received packet; a decapsulation unit (24) that breaks down a packet into an outer header and a payload; a forwarding management unit (26) that analyzes the outer header to acquire destination information for the payload; computation functional units (212a, 212b); an encapsulation unit (29) that creates a packet by combining the payload having been processed by the computation functional units (212a, 212b) with the outer header; and a forwarding control unit (27) that forwards the payload to the computation functional units (212a, 212b) or to the encapsulation unit (29), according to the destination information.
Need to check novelty before this filing date? Find Prior Art

Description

Packet processing device and packet forwarding method

[0001] The present invention relates to a packet processing device and a packet forwarding method for providing a service to a user by using a service function chaining technique.

[0002] Service Function Chaining (SFC) is being studied to flexibly provide end-to-end network services (see Non-Patent Document 1). SFC is a technology that combines service functions scattered across a network, and by using SFC, it is possible to provide services that meet the user's objectives.

[0003] Packet processing devices used in SFC are often configured as general-purpose servers. Functions are implemented by software. With the improvement of processing performance and the adoption of multi-core CPUs (Central Processing Units), multiple functions may be implemented on a single general-purpose server.

[0004] SFC utilizes encapsulation technology and employs outer headers such as SRH (Segment Routing Header) and MPLS (Multi-Protocol Label Switching) (see Non-Patent Document 2). These outer headers contain lists of function types and processing orders. Therefore, in large-scale service function chains, the proportion of outer headers in packets increases. Conventional packet processing devices have the problem of low packet transfer efficiency within the device because they move packets containing outer headers between functions. Furthermore, packet processing devices have the problem of consuming extra resources to transfer outer headers.

[0005] RFC 7665 - Service Function Chaining (SFC) Architecture, Internet Engineering Task Force (IETF), October 2015, <https: / / datatracker.ietf.org / doc / html / rfc7665>RFC9491 - Integration of the Network Service Header (NSH) and Segment Routing for Service Function Chaining (SFC), Internet Engineering Task Force (IETF), November 2023, <https: / / datatracker.ietf.org / doc / html / rfc9491>

[0006] The present invention has been made to solve the above-mentioned problems, and has as its object to provide a packet processing device and a packet forwarding method that can efficiently forward packets within the device.

[0007] The packet processing device of the present invention is characterized by comprising a packet receiving unit configured to receive packets from a network, an identification number assigning unit configured to assign an identification number to the packet, a decapsulating unit configured to decompose the packet into an outer header and a payload, a transfer management unit configured to analyze the outer header and obtain the next destination information of the payload, one or more calculation function units that perform processing on the payload with individual functions that constitute a service function chain, an encapsulating unit configured to create a packet by combining the payload processed by the calculation function unit with the outer header, a packet sending unit configured to send the packet created by the encapsulating unit to the network, and a transfer control unit configured to transfer the payload to one of the one or more calculation function units or the encapsulating unit in accordance with the destination information.

[0008] a fifth step of transferring the payload to one of one or more arithmetic function units that perform processing of individual functions constituting a service function chain in accordance with the destination information acquired in the fourth step; a sixth step of the arithmetic function unit that receives the payload performing predetermined processing; a seventh step of combining the payload processed by the arithmetic function unit with the outer header corresponding to this payload to create a packet if the next destination information acquired in the fourth step indicates outside the device after the fourth, fifth, and sixth steps have been performed at least once; and an eighth step of sending the packet created in the seventh step to the network.

[0009] According to the present invention, a packet received from a network is decomposed into an outer header and a payload (original packet), the outer header is analyzed, and the transfer destination of the payload is controlled according to the acquired destination information. This enables efficient packet transfer that moves only the payload necessary for processing, thereby improving the packet transfer efficiency within the packet processing device.

[0010] FIG. 1 is a block diagram showing the configuration of an SFC system according to a first embodiment of the present invention. FIG. 2 is a block diagram showing the configuration of a packet processing device according to the first embodiment of the present invention. FIG. 3 is a block diagram showing the configuration of a forwarding management unit according to the first embodiment of the present invention. FIG. 4 is a block diagram showing the configuration of a forwarding control unit according to the first embodiment of the present invention. FIG. 5 is a diagram showing an example of a destination table held by a destination storage unit according to the first embodiment of the present invention. FIG. 6 is a flowchart explaining the flow of packet processing in a packet processing device according to the first embodiment of the present invention. FIG. 7 is a sequence diagram explaining packet forwarding within the packet processing device according to the first embodiment of the present invention. FIG. 8 is a flowchart explaining the operation of the forwarding management unit when registering destination information of an original packet in the first embodiment of the present invention. FIG. 9 is a flowchart explaining the operation of the forwarding management unit when updating destination information of an original packet in the first embodiment of the present invention. FIG. 10 is a flowchart explaining the operation of the forwarding control unit according to the first embodiment of the present invention. FIG. 11 is a block diagram showing the configuration of a packet processing device 13a according to a second embodiment of the present invention. FIG. 12 is a block diagram showing an example configuration of a computer that realizes the SFC systems according to the first and second embodiments of the present invention.

[0011] [First Embodiment] An embodiment of the present invention will now be described with reference to the drawings. Fig. 1 is a block diagram showing the configuration of an SFC system 10 according to a first embodiment of the present invention. The SFC system 10 comprises an encapsulating device 11 that adds an outer header to packets received from outside (hereinafter referred to as original packets) and encapsulates them; packet forwarding devices 12a-12c that refer to service function chain information included in the outer header and forward the encapsulated packets to functions (packet processing devices); packet processing devices 13a-13d that perform packet processing according to the function; a decapsulating device 14 that removes the outer header from the encapsulated packets and outputs them outside the system; and a control device 15 that manages the routing tables of the packet forwarding devices 12a-12c and the functions of the packet processing devices 13a-13d.

[0012] When the SFC system 10 receives an original packet from outside, the encapsulating device 11 adds an outer header such as SRH or MPLS to the original packet. The packet forwarding devices 12a to 12c forward the encapsulated packet to one or more packet processing devices 13a to 13d in accordance with the service function chain information included in the outer header of the encapsulated packet generated by the encapsulating device 11.

[0013] The packet processing devices 13a to 13d process the received encapsulated packets according to the implemented functions and return the processed encapsulated packets to the packet forwarding devices 12a to 12c. After all packet processing is completed, the decapsulating device 14 decapsulates the processed encapsulated packets and outputs the processed original packets to a network outside the system.

[0014] The control device 15 calculates the route of the service function chain based on the user's service usage request and registers the information required for the SFC in the encapsulating device 11 and packet forwarding devices 12a to 12c. The control device 15 also updates the functions to be implemented in the arithmetic function units of the packet processing devices 13a to 13d as necessary.

[0015] 2 is a block diagram showing the configuration of a packet processing device 13a according to this embodiment. The packet processing device 13a comprises a packet forwarding unit 20 and a packet processing unit 21. The packet forwarding unit 20 comprises a packet receiving unit 22 that receives encapsulated packets, an identification number assigning unit 23 that assigns numbers to the encapsulated packets to identify the original packets within the packet processing device 13a, a decapsulating unit 24 that decomposes the encapsulated packets into outer headers and payloads (original packets), an input buffer 25 that holds the decomposed original packets, a forwarding management unit 26 that analyzes the outer headers to obtain destination information for the original packets, a forwarding control unit 27 that controls packet forwarding between functions, an output buffer 28 that holds the processed original packets, an encapsulating unit 29 that combines the processed original packets with the outer header to create encapsulated packets, and a packet transmitting unit 210 that transmits the encapsulated packets to the outside of the device.

[0016] The packet processing unit 21 is composed of receive buffers 211a and 211b that hold original packets sent from the transfer control unit 27, arithmetic function units 212a and 212b that perform function processing on the original packets, and transmit buffers 213a and 213b that hold the processed original packets. The combination of a receive buffer, an arithmetic function unit, and a transmit buffer is the basic configuration of the packet processing unit 21. The packet processing unit 21 may have one combination of a receive buffer, an arithmetic function unit, and a transmit buffer, or may have three or more combinations.

[0017] The packet forwarding unit 20 and the packet processing unit 21 can each be configured using hardware or software. However, high-speed processing can be expected by implementing the packet forwarding unit 20, which controls packet forwarding, using hardware such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). While the packet processing device 13a has been described above, the packet processing devices 13b, 13c, and 13d have the same configuration as the packet processing device 13a.

[0018] The operation of the packet processing devices 13a to 13d will now be described. The packet receiving units 22 of the packet processing devices 13a to 13d receive the encapsulated packets transferred from the packet transfer devices 12a to 12c.

[0019] The identification number assigning unit 23 assigns an identification number to the encapsulated packet. The identification number may be a value that is unique for a certain period of time within packet processing. The same identification number may be used for encapsulated packets that are received at sufficiently different times. The identification number assigning unit 23 may add the identification number to the encapsulated packet, or may embed the identification number in a field that does not affect communication, such as the Media Access Control (MAC) address in the Ethernet (registered trademark) header.

[0020] The decapsulating unit 24 decomposes the encapsulated packet into an outer header and a payload (original packet), transmits the outer header to the forwarding management unit 26, and transmits the original packet to the input buffer 25. At this time, the decapsulating unit 24 also transmits the identification number assigned to the encapsulated packet to the forwarding management unit 26 and the input buffer 25.

[0021] The transfer management unit 26 analyzes the outer header received from the decapsulating unit 24 and registers the next destination information of the original packet together with the identification number in the transfer control unit 27. The transfer management unit 26 transmits the outer header after analysis together with the identification number to the encapsulating unit 29. The detailed configuration and operation of the transfer management unit 26 will be described later.

[0022] The transfer control unit 27 transfers the original packet stored in the input buffer 25 to the arithmetic function unit 212a or 212b in accordance with the destination information registered by the transfer management unit 26.

[0023] The receive buffer 211a transmits the original packet received from the transfer control unit 27 to the arithmetic function unit 212a. The arithmetic function unit 212a performs predetermined processing on the original packet. The arithmetic function unit 212a transmits the processed original packet to the transmit buffer 213a. The transmit buffer 213a holds the processed original packet. The operations of the receive buffer 211b, arithmetic function unit 212b, and transmit buffer 213b when the original packet and identification number are transferred to the arithmetic function unit 212b are the same as those of the receive buffer 211a, arithmetic function unit 212a, and transmit buffer 213a. The transfer control unit 27 acquires the processed original packet stored in the transmit buffer 213a or 213b and transmits it to the output buffer 28.

[0024] The encapsulating unit 29 creates an encapsulated packet by combining the processed original packet output from the output buffer 28 with an outer header that has been sent from the transfer management unit 26 and that has the same identification number as the processed original packet. The packet sending unit 210 sends the processed encapsulated packet created by the encapsulating unit 29 to the network.

[0025] 3 is a block diagram showing the configuration of the forwarding management unit 26. The forwarding management unit 26 is made up of a header analysis unit 30 that analyzes the outer header, a header storage unit 31 that stores the outer header, a header forwarding unit 32 that controls the forwarding of the outer header, and a destination registration unit 33 that controls the registration of destination information.

[0026] The header analysis unit 30 checks the service function chain information in the outer header received from the decapsulating unit 24 to obtain the next destination information of the original packet. The destination registration unit 33 registers the destination information obtained by the header analysis unit 30 in the transfer control unit 27.

[0027] For example, if the outer header is an SRH, the header analysis unit 30 obtains a Segment ID (SID) from the Segment List field based on the value of the Segment Left field. The SID is an IPv6 address consisting of three values: a locator value for identifying the node, a function value for making processing at the node unique, and an argument value for storing arguments to the function. Packet forwarding within the packet processing device can be performed using only the function value. For this reason, the destination registration unit 33 registers the function value as destination information in the transfer control unit 27. Furthermore, if the destination registration unit 33 wants to provide an argument to the function, it also registers the argument value along with the destination information in the transfer control unit 27.

[0028] After obtaining the destination information, the header analysis unit 30 decrements the value of the segment left field of the outer header. This updates the SID indicated by the segment left field to the next SID. The header analysis unit 30 then stores the updated outer header in the header storage unit 31.

[0029] The header transfer unit 32 receives the identification number of the transferred original packet from the transfer control unit 27. The header transfer unit 32 acquires from the header holding unit 31, among the outer headers held in the header holding unit 31, an outer header to which the same identification number as the number notified by the transfer control unit 27 has been assigned. The header transfer unit 32 acquires the SID from the segment list field based on the value of the segment left field of the acquired outer header, and checks the destination IPv6 address (locator value). If the destination IPv6 address indicates a location outside the packet processing device, the header transfer unit 32 transfers the outer header to the encapsulating unit 29. If the destination IPv6 address indicates a location inside the packet processing device, the header transfer unit 32 transfers the outer header to the header analysis unit 30.

[0030] 4 is a block diagram showing the configuration of the transfer control unit 27. The transfer control unit 27 is made up of a buffer selection unit 40 that selects a source buffer, a destination identification unit 41 that controls the destination of the original packet, a destination storage unit 42 that stores destination information of the original packet, and a DMA (Direct Memory Access) controller 43 that controls packet transfer.

[0031] The buffer selection unit 40 monitors the number of original packets held in each of the input buffer 25 and the transmission buffers 213a and 213b, selects the buffer with the largest number of packets, and notifies the destination identification unit 41. Alternatively, the buffer selection unit 40 may select a buffer with a high priority and notify the destination identification unit 41.

[0032] The destination identification unit 41 acquires the original packet from the buffer selected by the buffer selection unit 40 out of the input buffer 25 and the transmission buffers 213a, 213b. When the buffer selection unit 40 selects the transmission buffer 213a or 213b, the destination identification unit 41 acquires the processed original packet via the DMA controller 43. The destination identification unit 41 acquires, from the destination storage unit 42, destination information assigned with the same identification number as the identification number assigned to the acquired original packet.

[0033] The destination identification unit 41 transfers the original packet to either the output buffer 28 or the receiving buffer 211 a, 211 b in accordance with the acquired destination information. When transferring the original packet to the receiving buffer 211 a or 211 b, the destination identification unit 41 transfers the original packet via the DMA controller 43.

[0034] 5 shows a destination table 50 held by the destination storage unit 42. The destination table 50 is a memory that uses identification numbers as addresses. In the destination table 50, destination information (function values) sent from the transfer management unit 26 is registered in the area of ​​the corresponding address (identification number). The example in FIG. 5 shows that the destination of original packets with identification numbers 0 and 1 is function A, and the destination of an original packet with identification number 2 is function B. As will be described later, the destination information is updated every time an original packet is sent to the arithmetic function unit 212a or 212b.

[0035] 6 is a flowchart illustrating the flow of packet processing in the packet processing devices 13a to 13d. When the packet receiving unit 22 of each of the packet processing devices 13a to 13d receives an encapsulated packet transferred from one of the packet transfer devices 12a to 12c, the identification number assigning unit 23 assigns an identification number to the encapsulated packet (step 60).

[0036] The decapsulating unit 24 decomposes the encapsulated packet into an outer header and an original packet (step 61). The header analyzing unit 30 of the forwarding management unit 26 analyzes the outer header received from the decapsulating unit 24 and acquires destination information of the original packet. The destination registering unit 33 of the forwarding management unit 26 registers the destination information acquired by the header analyzing unit 30 in an area of ​​the corresponding address (the identification number assigned to the destination information) in the destination table 50 in the forwarding control unit 27 (step 62).

[0037] The destination identification unit 41 and DMA controller 43 of the transfer control unit 27 transfer the original packet stored in the input buffer 25 to the receiving buffer 211a or 211b corresponding to the destination information (function value) in accordance with the destination information registered in the destination table 50 (step 63). The arithmetic function unit 212a or 212b performs a predetermined process on the original packet received by the receiving buffer 211a or 211b (step 64).

[0038] The header analysis unit 30 of the transfer management unit 26 obtains the next destination information based on the outer header for the original packet whose destination information has already been registered in the destination table 50 in the transfer control unit 27. The destination registration unit 33 of the transfer management unit 26 updates the destination information already registered in the destination table 50 to the next destination information obtained by the header analysis unit 30 (step 65).

[0039] When the destination identification unit 41 of the transfer control unit 27 obtains the processed original packet from the transmission buffer 213a or 213b, it checks the next destination information registered in the destination table 50 (step 66). If the next destination information indicates the inside of the packet processing device (No in step 66), the destination identification unit 41 and the DMA controller 43 transfer the processed original packet to the receive buffer 211a or 211b corresponding to the next destination information (function value) in accordance with the next destination information (step 63). In this way, if the next destination information indicates the inside of the packet processing device, the transfer and processing of the original packet are repeated within the device.

[0040] If the next destination information indicates a destination outside the packet processing device (Yes in step 66), destination identification unit 41 transmits the processed original packet to output buffer 28. Encapsulating unit 29 creates an encapsulated packet by combining the processed original packet output from output buffer 28 with an outer header sent from forwarding management unit 26 that has the same identification number as the processed original packet. Packet transmitting unit 210 sends the processed encapsulated packet created by encapsulating unit 29 to the network (step 68).

[0041] 7 is a sequence diagram illustrating packet transfer within the packet processing devices 13a to 13d. When the destination identification unit 41 of the transfer control unit 27 acquires an original packet from either the input buffer 25 or the arithmetic function units 212a and 212b (transmission buffers 213a and 213b), it transfers the original packet to either the output buffer 28 or the arithmetic function units 212a and 212b (reception buffers 211a and 211b) according to the following destination information. At this time, the destination identification unit 41 notifies the transfer management unit 26 of the identification number of the transferred original packet.

[0042] The header analysis unit 30 of the transfer management unit 26 obtains the next destination information of the original packet based on the outer header sent from the decapsulating unit 24 that has the same identification number as the number notified by the destination identification unit 41. The destination registration unit 33 of the transfer management unit 26 updates the destination information already registered in the destination table 50 in the transfer control unit 27 to the next destination information obtained by the header analysis unit 30. This processing by the transfer management unit 26 is performed simultaneously and in parallel with the packet processing in the calculation function units 212a and 212b. Therefore, the processed original packet can be immediately sent to the next destination.

[0043] 8 is a flowchart illustrating the operation of the forwarding management unit 26 when registering destination information of an original packet. The header analysis unit 30 of the forwarding management unit 26 analyzes the outer header received from the decapsulating unit 24 and obtains the initial destination information of the original packet. The destination registration unit 33 of the forwarding management unit 26 registers the destination information obtained by the header analysis unit 30 in an area of ​​the corresponding address (the identification number assigned to the destination information) in the destination table 50 in the forwarding control unit 27 (step 80).

[0044] After obtaining the destination information, the header analysis unit 30 decrements the value of the segment left field of the outer header (step 81), and stores the updated outer header in the header storage unit 31 (step 82).

[0045] 9 is a flowchart illustrating the operation of the forwarding management unit 26 when updating the destination information of an original packet. The header forwarding unit 32 of the forwarding management unit 26 receives the identification number of the forwarded original packet from the forwarding control unit 27. The header forwarding unit 32 obtains from the header holding unit 31, among the outer headers held in the header holding unit 31, the outer header to which the same identification number as the number notified by the forwarding control unit 27 has been assigned (step 90).

[0046] The header transfer unit 32 obtains the SID from the segment list field based on the value of the segment left field of the obtained outer header, and checks the destination IPv6 address (locator value). If the destination IPv6 address indicates a location within the packet processing device (No in step 91), the header transfer unit 32 transfers the outer header to the header analysis unit 30. The header analysis unit 30 of the transfer management unit 26 analyzes the outer header received from the header transfer unit 32 and obtains the next destination information of the original packet. The destination registration unit 33 of the transfer management unit 26 updates the destination information already registered in the destination table 50 in the transfer control unit 27 to the next destination information obtained by the header analysis unit 30 (step 92).

[0047] After obtaining the next destination information, the header analysis unit 30 decrements the value of the segment left field of the outer header (step 93).The header analysis unit 30 stores the updated outer header in the header storage unit 31, thereby updating the stored outer header (step 94).

[0048] If the destination IPv6 address indicates a location outside the packet processing device (Yes in step 91), the header transfer unit 32 transfers the outer header to the encapsulating unit 29 (step 95).

[0049] 10 is a flowchart illustrating the operation of the transfer control unit 27. The buffer selection unit 40 of the transfer control unit 27 monitors the number of packets held in each of the input buffer 25 and the transmission buffers 213a and 213b, selects the buffer with the largest number of packets, and notifies the destination identification unit 41. Alternatively, the buffer selection unit 40 may select a buffer with a high priority and notify the destination identification unit 41 (step 100). If there are no packets in either the input buffer 25 or the transmission buffers 213a and 213b (No in step 101), the buffer selection unit 40 waits.

[0050] When the buffer selection unit 40 selects a target buffer from the input buffer 25 and the transmission buffers 213a, 213b (Yes in step 101), the destination identification unit 41 acquires the original packet from the selected buffer (step 102). When the buffer selection unit 40 selects the transmission buffer 213a or 213b, the destination identification unit 41 acquires the processed original packet via the DMA controller 43.

[0051] When the destination identification unit 41 acquires the original packet, it refers to the destination table 50 in the destination storage unit 42 and acquires the next destination information corresponding to the identification number assigned to the original packet from the destination table 50 (step 103). The destination identification unit 41 transfers the original packet to either the output buffer 28 or the receive buffers 211a and 211b in accordance with the acquired destination information (step 104). If the transfer destination is the receive buffer 211a or 211b, the destination identification unit 41 transfers the original packet via the DMA controller 43. The transfer control unit 27 repeats the processes of steps S100 to S104 until the operation of the packet processing device is completed (Yes in step 105).

[0052] As described above, in this embodiment, the packet processing device decomposes a received packet into an outer header and an original packet, and controls the forwarding destination of the original packet in accordance with the destination information obtained by analyzing the outer header, thereby realizing efficient packet forwarding in which only the original packet required for processing is moved within the packet processing device.

[0053] 11 is a block diagram showing the configuration of a packet processing device 13a according to a second embodiment of the present invention. The packet forwarding unit 20 of the first embodiment has an upper limit to its processing performance. Therefore, packet forwarding may become a bottleneck, which may limit the number of functions that can be implemented.

[0054] Therefore, in this embodiment, the bottleneck of packet transfer is alleviated by controlling packet transfer using a plurality of packet transfer units 20a and 20b. The packet transfer units 20a and 20b have the same configuration as the packet transfer unit 20.

[0055] It should be noted that if the communication path between the packet transfer units 20a, 20b and the packet processing unit 21 is a bus, simultaneous communication is not possible. For this reason, the selection unit 110 of the packet processing unit 21 must select the packet transfer units 20a, 20b that are permitted to communicate. Furthermore, since the outer headers managed by each packet transfer unit 20a, 20b are different, when the packet transfer unit 20a, 20b that controls packet transfer changes, the outer header must be moved between the packet transfer units 20a, 20b.

[0056] Each of the capsulating device 11, packet forwarding devices 12a to 12c, packet processing devices 13a to 13d, decapsulating device 14, and control device 15 described in the first and second embodiments can be realized by a computer equipped with a CPU (or GPU (Graphic Processing Unit)), a storage device, and an interface, and a program that controls these hardware resources. An example configuration of this computer is shown in FIG. 12. The computer includes a CPU 200 (or GPU), a storage device 201, and an interface device (I / F) 202. In such a computer, a program for implementing the packet forwarding method of the present invention is stored in the storage device 201. The CPU 200 (or GPU) of each device executes the processing described in the first and second embodiments in accordance with the program stored in the storage device 201.

[0057] At least a part of the capsulating device 11, the packet forwarding devices 12a to 12c, the packet processing devices 13a to 13d, the decapsulating device 14, and the control device 15 may be configured using FPGA or ASIC. As described above, high-speed processing can be expected by realizing the packet forwarding units 20, 20a, and 20b of the packet processing devices 13a to 13d using hardware such as FPGA or ASIC.

[0058] Some or all of the above embodiments can be described as, but are not limited to, the following supplementary notes.

[0059] (Supplementary Note 1) The packet processing device of the present invention comprises a packet receiving unit configured to receive packets from a network, an identification number assigning unit configured to assign an identification number to the packet, a decapsulating unit configured to decompose the packet into an outer header and a payload, a transfer management unit configured to analyze the outer header and obtain next destination information for the payload, one or more arithmetic function units that process individual functions that constitute a service function chain on the payload, an encapsulating unit configured to create a packet by combining the payload processed by the arithmetic function units with the outer header, a packet sending unit configured to send the packet created by the encapsulating unit to the network, and a transfer control unit configured to transfer the payload to one of the one or more arithmetic function units or the encapsulating unit in accordance with the destination information.

[0060] (Supplementary Note 2) In the packet processing device described in Supplementary Note 1, the forwarding management unit includes a header analysis unit configured to analyze the outer header to obtain next destination information for the payload, a header holding unit configured to hold the outer header, and a header forwarding unit configured to obtain from the header holding unit an outer header corresponding to the payload forwarded by the forwarding control unit, and forward the obtained outer header to the header analysis unit or the encapsulating unit.

[0061] (Supplementary Note 3) The packet processing device described in Supplementary Note 1 further includes an input buffer provided between the decapsulating unit and the transfer control unit, and one or more transmit buffers provided between the transfer control unit and the one or more arithmetic function units, and the transfer control unit includes a buffer selection unit configured to select a target buffer based on the number of payloads held in each of the input buffer and the transmit buffer, a destination memory unit configured to store next destination information for the payload, and a destination identification unit configured to acquire the payload from the buffer selected by the buffer selection unit, acquire the next destination information from the destination memory unit based on the identification number assigned to the payload, and transfer the payload acquired from the buffer to any of the one or more arithmetic function units or the encapsulating unit.

[0062] (Supplementary Note 4) The packet transfer method of the present invention includes a first step of receiving a packet from a network, a second step of assigning an identification number to the packet, a third step of decomposing the packet into an outer header and a payload, a fourth step of analyzing the outer header corresponding to the payload and obtaining destination information for the payload, a fifth step of transferring the payload to one or more arithmetic function units that process individual functions constituting a service function chain in accordance with the destination information obtained in the fourth step, a sixth step in which the arithmetic function unit that received the payload performs predetermined processing, a seventh step of combining the payload processed by the arithmetic function unit with the outer header corresponding to this payload to create a packet if the next destination information obtained in the fourth step indicates outside the device after the fourth, fifth, and sixth steps have been performed at least once, and

[0063] (Supplementary Note 5) In the packet forwarding method described in Supplementary Note 4, the fourth step includes a ninth step of analyzing the outer header obtained in the third step and obtaining initial destination information of the payload, a tenth step of registering the obtained destination information in a destination table, and an eleventh step of updating the fields of the outer header obtained in the third step and retaining the updated outer header.

[0064] (Supplementary Note 6) In the packet forwarding method described in Supplementary Note 5, the fourth step includes a twelfth step of obtaining, from the retained outer header, an outer header corresponding to the identification number of the transferred payload after the fourth, fifth, and sixth steps have been performed at least once; a thirteenth step of analyzing the outer header and obtaining next destination information of the payload if the destination address described in the outer header obtained in the twelfth step indicates inside the device; a fourteenth step of updating the destination information registered in the destination table to the next destination information obtained in the thirteenth step; a fifteenth step of updating a field of the outer header obtained in the twelfth step and retaining the updated outer header; and a sixteenth step of forwarding the outer header within the device for use in the seventh step if the destination address described in the outer header obtained in the twelfth step indicates outside the device.

[0065] (Supplementary Note 7) In the packet forwarding method described in Supplementary Note 4, the fourth step includes a step of registering the acquired destination information in a destination table, and the fifth step includes a seventeenth step of selecting a target buffer based on the number of payloads held in an input buffer that temporarily holds the payload between the third step and the fifth step and a transmit buffer that holds the payload between the sixth step and the seventh step, an eighteenth step of acquiring the payload from the buffer selected in the seventeenth step, a nineteenth step of acquiring next destination information from the destination table based on the identification number assigned to the payload acquired in the eighteenth step, and a twentieth step of controlling a transfer destination of the payload acquired in the eighteenth step in accordance with the destination information acquired in the nineteenth step.

[0066] 10...service function chaining system, 11...encapsulating device, 12a to 12c...packet forwarding device, 13a to 13d...packet processing device, 14...decapsulating device, 15...control device, 20, 20a, 20b...packet forwarding unit, 21...packet processing unit, 22...packet receiving unit, 23...identification number assigning unit, 24...decapsulating unit, 25...input buffer, 26...transfer management unit, 27... Transfer control unit, 28...output buffer, 29...encapsulating unit, 30...header analysis unit, 31...header holding unit, 32...header transfer unit, 33...destination registration unit, 40...buffer selection unit, 41...destination identification unit, 42...destination memory unit, 43...DMA controller, 110...selection unit, 210...packet transmission unit, 211a, 211b...receiving buffers, 212a, 212b...arithmetic function unit, 213a, 213b...transmitting buffers.

Claims

1. A packet processing device comprising: a packet receiving unit configured to receive packets from a network; an identification number assigning unit configured to assign an identification number to the packet; a decapsulating unit configured to decompose the packet into an outer header and a payload; a forwarding management unit configured to analyze the outer header and obtain next destination information for the payload; one or more calculation function units that process individual functions that make up a service function chain on the payload; an encapsulating unit configured to combine the payload processed by the calculation function units with the outer header to create a packet; a packet sending unit configured to send the packet created by the encapsulating unit to the network; and a forwarding control unit configured to transfer the payload to one of the one or more calculation function units or the encapsulating unit in accordance with the destination information.

2. A packet processing device according to claim 1, wherein the forwarding management unit comprises: a header analysis unit configured to analyze the outer header and obtain the next destination information of the payload; a header holding unit configured to hold the outer header; and a header forwarding unit configured to obtain from the header holding unit the outer header corresponding to the payload forwarded by the forwarding control unit, and forward the obtained outer header to the header analysis unit or the encapsulating unit.

3. A packet processing device according to claim 1, further comprising an input buffer provided between the decapsulating unit and the transfer control unit, and one or more transmit buffers provided between the transfer control unit and the one or more arithmetic function units, wherein the transfer control unit comprises: a buffer selection unit configured to select a target buffer based on the number of payloads held in each of the input buffer and the transmit buffer; a destination storage unit configured to store next destination information for the payload; and a destination identification unit configured to acquire the payload from the buffer selected by the buffer selection unit, acquire the next destination information from the destination storage unit based on the identification number assigned to the payload, and transfer the payload acquired from the buffer to any one of the one or more arithmetic function units or the encapsulating unit.

4. A packet transfer method comprising: a first step of receiving a packet from a network; a second step of assigning an identification number to the packet; a third step of decomposing the packet into an outer header and a payload; a fourth step of analyzing the outer header corresponding to the payload to obtain destination information for the payload; a fifth step of transferring the payload to one or more processing function units that process individual functions constituting a service function chain in accordance with the destination information obtained in the fourth step; a sixth step in which the processing function unit that received the payload performs predetermined processing; a seventh step of combining the payload processed by the processing function unit with the outer header corresponding to this payload to create a packet if the next destination information obtained in the fourth step indicates outside the device after the fourth, fifth, and sixth steps have been performed at least once; and an eighth step of sending the packet created in the seventh step to the network.

5. A packet forwarding method according to claim 4, wherein the fourth step comprises: a ninth step of analyzing the outer header obtained in the third step and obtaining initial destination information for the payload; a tenth step of registering the obtained destination information in a destination table; and an eleventh step of updating the fields of the outer header obtained in the third step and retaining the updated outer header.

6. A packet forwarding method according to claim 5, wherein the fourth step comprises: a twelfth step of obtaining an outer header corresponding to the identification number of the transferred payload from the retained outer header after the fourth, fifth, and sixth steps have been performed at least once; a thirteenth step of analyzing the outer header and obtaining the next destination information of the payload if the destination address written in the outer header obtained in the twelfth step indicates an internal location of the device; a fourteenth step of updating the destination information registered in the destination table to the next destination information obtained in the thirteenth step; a fifteenth step of updating the fields of the outer header obtained in the twelfth step and retaining the updated outer header; and a sixteenth step of forwarding the outer header within the device for use in the seventh step if the destination address written in the outer header obtained in the twelfth step indicates an external location of the device.

7. A packet forwarding method according to claim 4, wherein the fourth step includes a step of registering the acquired destination information in a destination table, and the fifth step includes a seventeenth step of selecting a target buffer based on the number of payloads held in an input buffer that temporarily holds the payload between the third step and the fifth step, and in a transmit buffer that holds the payload between the sixth step and the seventh step, respectively; an eighteenth step of acquiring the payload from the buffer selected in the seventeenth step; a nineteenth step of acquiring the next destination information from the destination table based on the identification number assigned to the payload acquired in the eighteenth step; and a twentieth step of controlling the transfer destination of the payload acquired in the eighteenth step in accordance with the destination information acquired in the nineteenth step.

Citation Information

Patent Citations

  • Message transmission method and device, SFF equipment and storage medium

    CN116760781A

  • Packet relay program and packet relay method

    JP2017147519A

  • Data transfer device, data processing device, and data processing method

    WO2023085270A1