Communication device and communication system
The communication device optimizes packet processing by prioritizing hardware processing during system failures, reducing software load and ensuring efficient communication by using both software and hardware processing units.
Patent Information
- Application Number
- PCT/JP2024/006655
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-22
- Publication Date
- 2025-08-28
AI Technical Summary
Conventional communication systems with hardware accelerators like FPGAs experience increased software load during system failures due to waiting for hardware entries, affecting packet communication efficiency.
A communication device employing both software and hardware processing units, where packet processing with higher loads is prioritized by the hardware circuit during system failures, reducing software processing load and optimizing entry submission.
The solution effectively suppresses software processing load increases during system failures, prioritizing high-load packet processing in hardware, thereby maintaining efficient packet communication.
Smart Images

Figure JP2024006655_28082025_PF_FP_ABST
Abstract
Description
Communication device and communication system
[0001] The present invention relates to a communication device and a communication system.
[0002] In networks, some communication devices are equipped with hardware accelerators such as FPGAs (Field Programmable Gate Arrays) to speed up packet processing. For example, a technology has been proposed in which a packet is judged by a hardware circuit and, based on the judgment result, the packet is processed by hardware or software (see, for example, Non-Patent Document 1).
[0003] Hiroki Kano et al., "Highly Efficient VPN Gateway Implementation Using FPGA," Institute of Electronics, Information and Communication Engineers General Conference, B-6-16, March 2022. <https: / / www.ieice.org / publications / conferences / summary.php?id=CONF0000132002&ConfCd=2022G&session_num=B-6&year=2022&ConfType=> .
[0004] In the conventional technology described in Non-Patent Document 1, for example, if a system failure occurs and node migration is performed all at once, the software load increases due to waiting for hardware entries, which may have an adverse effect on packet communication.
[0005] An embodiment of the present invention has been made in consideration of the above-mentioned problems, and in a communication device that performs packet processing using software processing and hardware processing, it suppresses an increase in the load of software processing when packet processing is transitioned.
[0006] In order to solve the above problems, a communication device according to an embodiment of the present invention has one or more packet processing units that perform packet processing using software, and a packet processing circuit that performs the packet processing using hardware, and when a system failure occurs and a simultaneous transition occurs, the packet processing that has a greater processing load is preferentially performed by the packet processing circuit.
[0007] According to an embodiment of the present invention, in a communication device that performs packet processing using both software processing and hardware processing, an increase in the load of software processing can be suppressed when packet processing is shifted.
[0008] 1 is a diagram illustrating an example of the configuration of a communication system according to Example 1. FIG. 2 is a diagram illustrating an example of a specific configuration of a communication system according to Example 1. FIG. 3 is a flowchart illustrating an example of processing by a communication device according to Example 1. FIG. 4 is a sequence diagram illustrating an example of processing by a communication system according to Example 1. FIG. 5 is a diagram illustrating an example of the configuration of a communication system according to Example 2. FIG. 6 is a diagram illustrating an example of a specific configuration of a communication system according to Example 2. FIG. 7 is a sequence diagram illustrating an example of processing by a communication system according to Example 2. FIG. 8 is a diagram illustrating an example of the configuration of a communication system according to Example 3. FIG. 9 is a diagram illustrating an example of the configuration of a communication system according to Example 4. FIG. 10 is a sequence diagram illustrating an example of processing by a communication system according to Example 4. FIG. 11 is a diagram illustrating an example of the hardware configuration of a communication device according to the present embodiment. FIG. 12 is a diagram for explaining a problem.
[0009] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The embodiment described below is merely an example, and the embodiment to which the present invention is applied is not limited to the following embodiment.
[0010] <Summary> In networks, there are communication devices that speed up packet processing by incorporating hardware accelerators such as FPGAs (Field Programmable Gate Arrays). For example, Non-Patent Document 1 discloses a technology that judges packets using a hardware circuit and, based on the judgment result, allocates the packet processing by hardware or by software.
[0011] However, with this technology, if a system failure occurs and users are migrated all at once, the software load increases due to waiting for hardware entries, which may have a negative impact on packet communications.
[0012] Fig. 14 is a diagram for explaining the problem of this embodiment. In the example of Fig. 14, a communication system 1 includes communication devices 2a and 2b, a control device 3, and nodes 3a, 3b, 3c, 3d, etc. In the following description, "communication device 2" will be used to refer to any of the communication devices 2a and 2b. Furthermore, "node 3" will be used to refer to any of the nodes 3a, 3b, 3c, and 3d.
[0013] The communication device 2 is an example of a communication device having one or more packet processing units 11-1, 11-2, ... that perform packet processing using software, and a packet processing circuit 21 that performs packet processing using hardware. In the following description, when referring to any of the packet processing units 11-1, 11-2, ..., the term "packet processing unit 11" is used.
[0014] 14, the communication device 2b includes a server 10, and executes a predetermined program (software) on the server 10 to implement one or more packet processing units 11-1, 11-2, .... The communication device 2b also includes an FPGA 20, which implements a packet processing circuit 21.
[0015] In the conventional technology disclosed in Non-Patent Document 1, packets are judged by a circuit on the FPGA 20 and then the packet processing is assigned between software (packet processing unit 11) and hardware (packet processing circuit 21).
[0016] However, with this method, if a failure (an example of a system failure) occurs in the communication device 2a, all users will be transferred from the communication device 2a to the communication device 1b at once. In such a case, entries in the FPGA 20 are processed randomly and sequentially, so that waiting for entries occurs in the FPGA 20, and the packet processing of the users waiting for entries is performed by software in the packet processing unit 11.
[0017] At this time, if an entry for a user performing high-volume communication is waiting to be submitted, the communication of that user will be processed by software in the packet processing unit 11, which will increase the processing load on the communication device 20, affecting the entry submission process or C-plane communication, etc.
[0018] Therefore, the communication device according to this embodiment has a configuration as shown in FIG. 1 as an example, in order to suppress an increase in the load of software processing during simultaneous migration when a system failure occurs.
[0019] 1 illustrates an example of the configuration of a communication system according to Example 1. In the example of Fig. 1, a communication system 1 includes a communication device 110, a control device 120, and nodes 130a, 130b, and so on.
[0020] The communication device 110 is an example of a communication device having one or more packet processing units 111-1, 111-2, ... that perform packet processing using software, and a packet processing circuit 112 that performs packet processing using hardware. In the following description, when referring to any of the packet processing units 111-1, 111-2, ..., the term "packet processing unit 111" is used. Furthermore, when referring to any of the nodes 130a, 130b, ..., the term "node 130" is used.
[0021] In the example of Fig. 14, the communication device 2 includes a server 101 and an FPGA 102. The server 101 is, for example, an information processing device having a computer configuration, or a system configured with multiple computers. The server 101 realizes packet processing units 111-1, 111-2, ... by executing a predetermined program (software) on the computer included in the server 101. In the following description, when referring to any packet processing unit 111 among the packet processing units 111-1, 111-2, ..., the term "packet processing unit 111" is used.
[0022] The FPGA 20 implements a packet processing circuit 112 that executes high-speed packet processing using hardware. Fig. 1 shows a state in which the packet processing circuit 112 executes packet processing for user 1 communication between nodes 130a and 130b, and the packet processing unit 111-2 executes packet processing for user 1 communication between nodes 130a and 130b.
[0023] The control device 120 is, for example, an information processing device having a computer configuration, or a system consisting of multiple computers. The control device 120 implements a control unit 121 that controls the communication device 110 by executing a predetermined program on the computer included in the control device 120.
[0024] In the above configuration, when a system failure occurs and users are all transferred to the communication device 110 at once (hereinafter referred to as a simultaneous transfer), the packet processing circuit 112 prioritizes packet processing that has a large processing load.
[0025] For example, the control device 120 submits packet processing orders for users who are migrating all at once to only the server 101. As a result, when a system failure occurs, the communication device 110 executes packet processing in one or more packet processing units 111-1, 11-2, .... Furthermore, when the communication volume of packet processing exceeds a predetermined value (a preset communication volume), the packet processing unit 111 causes the packet processing circuit 112 to execute the packet processing.
[0026] 1, when the traffic volume of the communication of user 2 for which packet processing unit 111-2 is performing packet processing exceeds a predetermined value, packet processing unit 111-2 inputs an entry for user 2 into FPGA 102 (or packet processing circuit 112). Packet processing circuit 112 starts packet processing for user 2's communication in accordance with the input entry.
[0027] By the above process, when a system failure occurs and simultaneous migration occurs, the communication system 100 does not immediately enter users with low communication volume into the FPGA 102 after recovery. Therefore, the communication system 100 can prioritize packet processing for users with high communication volume (high processing load) in the packet processing circuit 112.
[0028] 2 is a diagram illustrating a specific example of a communication system according to Example 1. This diagram illustrates an example of the configuration of a communication system 100 when Kubernetes (registered trademark) is used. Kubernetes is open source software for managing and automating container virtualization software.
[0029] 2, the control device 120 in FIG. 1 is realized by a master node 210, and the server 101 is realized by a worker node 220. The worker node 220 also has packet processing Pods 221-1, 221-2, ... that realize the packet processing units 111-1, 111-2, ... as Kubernetes Pods. In the following description, when referring to any packet processing Pod among the packet processing Pods 221-1, 221-2, ..., the term "packet processing Pod 221" is used.
[0030] A Pod is a collection of containers and is the smallest computing unit that can be deployed in Kubernetes. By operating the packet processing unit 111 as a Pod, recovery in the event of a system failure can be accelerated.
[0031] <Processing Flow> Next, the processing flow of the communication method according to the first embodiment will be described.
[0032] (Processing of Communication Device) Fig. 3 is a flowchart illustrating an example of processing of the communication device according to embodiment 1. This processing represents an example of communication processing executed by the communication device 110 illustrated in Fig. 2, for example.
[0033] In step S301, when the control unit 121 constructs the packet processing Pod 221, the communication device 110 executes the process proceeding to step S302.
[0034] In step S302, the constructed packet processing Pod 221 inputs various settings for the packet processing Pod 221.
[0035] In step S303, the packet processing Pod 221 transmits an Address Resolution Protocol (ARP) or a Gratuitous ARP (GARP) to the opposing node (node 130). The ARP is transmitted, for example, to check the Media Access Control (MAC) address of the communication destination. The GARP is transmitted, for example, by transmitting its own IP address as a request to check whether the IP address is duplicated. The GARP is also transmitted to update the ARP cache on network devices in the same segment. This process allows the packet processing Pod 221 to notify the node 130 of the MAC address of the packet processing Pod 221 at the migration destination.
[0036] In step S304, the packet processing Pod 221 starts measuring the communication volume of the interface, and in step S305, the packet processing Pod 221 starts packet transfer (packet processing) between the nodes 130.
[0037] In step S306, the packet processing Pod 221 determines whether the communication volume of packet processing has exceeded a threshold value. Here, the threshold value is a preset value for determining whether or not to transfer packet processing to the packet processing circuit 112. If the communication volume of packet processing has exceeded the threshold value, the packet processing Pod 221 transfers the process to step S307. On the other hand, if the communication volume of packet processing has not exceeded the threshold value, the packet processing Pod 221 executes the process of step S30 again.
[0038] In step S307, the packet processing Pod 221 adds an entry for packet processing to the FPGA 102. In step S308, the packet processing Pod 221 stops measuring the communication traffic of the interface.
[0039] By the process of FIG. 3, when the communication volume of the packet processing exceeds a predetermined value, the packet processing unit (packet processing Pod 221) can cause the packet processing circuit 112 to execute the packet processing.
[0040] (Processing of Communication System) Fig. 4 is a sequence diagram illustrating an example of processing of the communication system according to Example 1. This processing illustrates an example of processing of the communication system 100 corresponding to the processing of the communication device 110 described with reference to Fig. 3 .
[0041] In steps S401 and S402, the control unit 121 of the master node 210 starts the packet processing Pod 221 via the worker node 220. In step S403, the started packet processing Pod 221 inputs various settings within the Pod.
[0042] In step S404, the packet processing Pod 221 transmits an ARP or GARP to the node 130. In step S405, the packet processing Pod 221 starts measuring the communication volume of the interface.
[0043] In step S406, the communication system 100 starts communication between the packet processing Pod 221 and the node 130. Furthermore, for example, if the packet processing Pod 221 detects in step S407 that the communication volume of packet processing has exceeded a threshold, the packet processing Pod 221 enters a packet processing entry in the packet processing circuit 112 in step S408.
[0044] As a result, in step S409, communication is started between the packet processing circuit 112 and the node 130. In step S410, the packet processing Pod 221 ends the measurement of the communication volume of the interface.
[0045] By the process of FIG. 4, the communication system 100 according to the first embodiment can perform the packet processing with a larger processing load preferentially in the packet processing circuit at the time of simultaneous migration when a system failure occurs.
[0046] [Embodiment 2] <Configuration of communication system> Fig. 5 shows an example of the configuration of a communication system according to embodiment 2. The communication system 100 according to embodiment 2 includes a communication monitoring unit 501 in addition to the configuration of the communication system 100 according to embodiment 1 described with reference to Fig. 1. Note that the communication monitoring unit 501 may be provided inside the communication device 110 or outside the communication device 110.
[0047] The communication monitoring unit 501 executes a communication monitoring process for monitoring the communication volume of each user of the packet processing unit 111. Furthermore, the control unit 121 according to the second embodiment determines the priority of each user based on the monitoring result by the communication monitoring unit 501, and inputs entries into the FPGA 102 in descending order of priority. This increases the number of components such as the communication monitoring unit 501, but makes it possible to input entries into the FPGA 102 in an optimal order that takes into account the relative merits of each user compared to other users.
[0048] Fig. 6 is a diagram illustrating a specific example of a communication system according to Example 2. This diagram illustrates an example of the configuration of a communication system 100 when Kubernetes is used.
[0049] 6, similarly to the first embodiment, the control device 120 is realized by the master node 210, and the server 101 is realized by the worker node 220. Furthermore, the worker node 220 has packet processing Pods 221-1, 221-2, . . .
[0050] 6, the packet processing Pod 221 has a notification function that notifies the communication monitoring unit 501 of the communication volume of each user. Note that the notification function that notifies the communication monitoring unit 501 of the communication volume of each user can also operate as a sidecar container. In addition, the notification method of each user's communication volume can be, for example, Simple Network Management Protocol (SNMP), Hypertext Transfer Protocol (HTTP), Representational State Transfer (REST), or Remote Procedure Call (gRPC).
[0051] <Processing Flow> Next, the processing flow of the communication method according to the second embodiment will be described.
[0052] (Processing of Communication System) Fig. 7 is a sequence diagram illustrating an example of processing of the communication system according to Example 2. This processing illustrates an example of communication processing executed by the communication system 100 described with reference to Fig. 6 .
[0053] In steps S701 and S702, the control unit 121 of the master node 210 starts the packet processing Pod 221 via the worker node 220. In step S703, the started packet processing Pod 221 inputs various settings within the Pod.
[0054] In step S704, the packet processing Pod 221 transmits an ARP or GARP to the node 130. In step S705, the packet processing Pod 221 starts measuring the communication volume of the interface.
[0055] In step S706, the communication system 100 starts communication between the packet processing Pod 221 and the node 130.
[0056] In step S221, the packet processing Pod 221 notifies the communication monitoring unit 501 of the user's communication volume. Note that other packet processing Pods 221 in the worker node 220 also similarly notify the communication monitoring unit 501 of the user's communication volume. In step S708, the communication monitoring unit 501 notifies the control unit 121 of each user's communication volume acquired from one or more packet processing Pods 221.
[0057] In step S709, the control unit 121 determines the priority of each user based on the communication volume of each user acquired from the communication monitoring unit 501. For example, the control unit 121 determines the priority of each user so that the higher the communication volume, the higher the priority, as shown in table 500 in FIG.
[0058] Furthermore, the control unit 121 repeatedly executes the processes of steps S710 and S711 in descending order of the determined priority. For example, in step S710, the control unit 121 inserts into the packet processing circuit 112 (or FPGA 102) the entry of the user with the highest priority among the users who have not yet been inserted into the packet processing circuit 112. In step S711, the packet processing circuit 112 returns the result of inserting the entry to the control unit 121.
[0059] In step S711, the communication system 100 starts communication between the packet processing circuit 112 and the node 130 in accordance with the entered entry.
[0060] In this way, according to the communication system 100 according to the second embodiment, when a system failure occurs and a simultaneous migration occurs, the packet processing with a larger processing load can be executed preferentially in the packet processing circuit. Furthermore, the communication system 100 can input the entries of each user into the FPGA 102 in a more appropriate order based on the communication volume of each user.
[0061] [Example 3] <Configuration of communication system> Fig. 8 shows an example configuration of a communication system according to Example 3. In the example of Fig. 8, the communication system 100 includes communication devices 110a and 110b, a control device 120, nodes 130a, 130b, 130c, and 130d, a communication monitoring unit 801, and the like. In the following description, when referring to any of the communication devices 110a and 110b, the term "communication device 110" is used. Furthermore, when referring to any of the nodes 130a, 130b, 130c, and 130d, the term "node 130" is used.
[0062] The communication device 110a has one or more packet processing units 111a-1, 111a-2, ... that perform packet processing using software, and a packet processing circuit 112a that performs packet processing using hardware. The communication device 110a is equipped with a server 101a, and by executing a predetermined program on the server 101a, the one or more packet processing units 111a-1, 111a-2, ... are realized. The communication device 110a also has an FPGA 102a, and the FPGA 102a realizes the packet processing circuit 112a.
[0063] Similarly, the communication device 110b has one or more packet processing units 111b-1, 111b-2, ... that perform packet processing using software, and a packet processing circuit 112b that performs packet processing using hardware. The communication device 110b is equipped with a server 101b, and by executing a predetermined program on the server 101b, the one or more packet processing units 111b-1, 111b-2, ... are realized. The communication device 110b also has an FPGA 102b, and the FPGA 102b realizes the packet processing circuit 112b.
[0064] In the following description, the term "packet processing unit 111" will be used to refer to any of the packet processing units 111a-1, 111a-2, 111b-1, and 111b-2. The term "packet processing circuit 112" will be used to refer to any of the packet processing circuits 112a and 112b. The following description will be given assuming that a network failure, such as a breakdown, occurs in the communication device 110a, causing all users to be transferred to the communication device 110b.
[0065] The communication monitoring unit 801 executes a communication monitoring process for monitoring the communication volume of each user of the packet processing units 111a-1, 111a-2, .... Furthermore, the control unit 121 according to the third embodiment determines the priority of each user based on the monitoring result by the communication monitoring unit 801, and inputs entries into the FPGA 102b of the communication device 110b in descending order of priority.
[0066] For example, the control unit 121 inputs entries into the FPGA 102b of the communication device 110b in descending order of the users who had the largest amount of communication traffic before the failure, based on the monitoring results of the communication monitoring unit 801. Users who had the largest amount of communication traffic before the failure are likely to resume many communications immediately after recovery, so the communication system 100 according to the third embodiment enables communication to be resumed more reliably and quickly.
[0067] Fig. 9 is a diagram illustrating a specific example of a communication system according to Example 3. This diagram illustrates an example of the configuration of a communication system 100 when Kubernetes is used.
[0068] 9, the control device 120 is implemented by the master node 210, and the servers 101a and 101b are implemented by the worker nodes 220a and 220b. The worker node 220a has packet processing Pods 221a-1, 221a-2, and so on, and the worker node 220b has packet processing Pods 221b-1, 221b-2, and so on.
[0069] Furthermore, the packet processing Pods 221a-1, 221a-2, and so on have a notification function for notifying the communication volume of each user to the communication monitoring unit 801. Note that the notification function for notifying the communication volume of each user to the communication monitoring unit 801 can also operate as a sidecar container.
[0070] <Processing Flow> Next, the processing flow of the communication method according to the third embodiment will be described.
[0071] (Processing of Communication System) Fig. 10 is a sequence diagram illustrating an example of processing of the communication system according to Example 2. This processing illustrates an example of communication processing executed by the communication system 100 described with reference to Fig. 9 .
[0072] In step S1001, the packet processing Pod 221a of the communication device 110a notifies the communication volume of the user to the communication monitoring unit 801. This process is repeatedly executed by each packet processing Pod 221a included in the communication device 110a for all users at predetermined time intervals, for example.
[0073] In step S1002, when the control unit 121 detects a failure (a malfunction of the communication device 110a), the communication system 100 executes the process proceeding to step S1003.
[0074] In steps S1003 and S1004, the control unit 121 acquires from the communication monitoring unit 801 the traffic volume of each user of the communication device 110a in which the failure has occurred.
[0075] In step S1005, the control unit 121 determines the priority of each user to be transferred to the communication device 110b based on the communication volume of each user acquired from the communication monitoring unit 801. For example, similar to the second embodiment, the control unit 121 determines the priority of each user such that the higher the communication volume, the higher the priority.
[0076] Next, the communication system 100 repeatedly executes the processes of steps S1006 to S1011 for all users, starting with the user with the highest determined priority.
[0077] In steps S1006 and S1007, the control unit 121 starts up the packet processing Pod 221b via the worker node 220b of the communication device 110b.
[0078] In step S1008, the started packet processing Pod 221b inputs various settings within the Pod.
[0079] In step S1009, the packet processing Pod 221b transmits an ARP or GARP to the node 130.
[0080] In step S1010, the control unit 121 inputs an entry to the packet processing circuit 112b (or FPGA 102b). In step S1011, the packet processing circuit 112b (or FPGA 102b) returns the result of inputting the entry to the control unit 121.
[0081] Through the above process, in step S1012, the communication device 110b starts communication between the packet processing circuit 112b and the node 130.
[0082] In this way, according to the communication system 100 of the third embodiment, when a system failure occurs and a simultaneous transition is performed, the packet processing circuit can give priority to the packet processing that has a larger processing load.
[0083] Fourth Embodiment In the first to third embodiments, the process at the time of simultaneous migration when a system failure occurs has been described, but this embodiment can also be applied to normal migration other than simultaneous migration.
[0084] <Configuration of communication system> Fig. 11 shows an example of the configuration of a communication system according to the fourth embodiment. In the example of Fig. 11, the communication system 100 includes communication devices 110a and 110b, a control device 120, and opposite devices 1102-1 and 1102-2. In the following description, when referring to any of the communication devices 110a and 110b, the term "communication device 110" is used. Furthermore, when referring to any of the opposite devices 1102-1 and 1102-2, the term "opposite device 1102" is used.
[0085] The communication device 110a has a control signal processing unit 1101a that processes control signals from the control unit 121, one or more packet processing units 111a-1, 111a-2, ... that perform packet processing using software, and a packet processing circuit 112a that performs packet processing using hardware. The communication device 110a is equipped with a server 101a, and by executing a predetermined program on the server 101a, the control signal processing unit 1101a and one or more packet processing units 111a-1, 111a-2, ... are realized. The communication device 110a also has an FPGA 102a, and the FPGA 102a realizes the packet processing circuit 112a.
[0086] Similarly, the communication device 110b has a control signal processing unit 1101b that processes control signals from the control unit 121, one or more packet processing units 111b-1, 111b-2, ... that perform packet processing using software, and a packet processing circuit 112b that performs packet processing using hardware. The communication device 110b is equipped with a server 101b, and by executing a predetermined program on the server 101b, the control signal processing unit 1101b and one or more packet processing units 111b-1, 111b-2, ... are realized. The communication device 110b also has an FPGA 102b, and the FPGA 102b realizes the packet processing circuit 112b.
[0087] In the following description, when referring to any one of the control signal processing units 1101a and 1101b, the term "control signal processing unit 1101" is used. When referring to any one of the packet processing units 111a-1, 111a-2, 111b-1, and 111b-2, the term "packet processing unit 111" is used. Similarly, when referring to any one of the packet processing circuits 112a and 112b, the term "packet processing circuit 112" is used.
[0088] 11, it is assumed that user 1 communication and user 2 communication are being carried out between opposite device 1102-1 and opposite device 1102-2 via communication device 110a. It is also assumed that of the user 1 communication and user 2 communication, the user 1 communication is to be transferred to communication device 110b.
[0089] In this case, the control unit 121 instructs the control signal processing unit 1101b of the communication device 110b to start the packet processing unit 111, and the control signal processing unit 1101b starts the new packet processing unit 111. The started packet processing unit 111 performs various settings within the packet processing unit 111 and enters a packet processing entry in the packet processing circuit 112b. Furthermore, the packet processing unit 111 notifies the opposite devices 1101-1 and 1101-2 of the destination of the user 1 communication by sending, for example, an ARP or GARP. This allows the opposite devices 1101-1 and 1101-2 to start the user 1 communication via the packet processing circuit 112b of the communication device 110b.
[0090] <Processing Flow> Fig. 12 is a sequence diagram illustrating an example of processing in the communication system according to Example 4. This processing illustrates an example of processing executed by the communication system 100 when transferring packet processing to an arbitrary communication device 110 having the configuration described in Fig. 11 .
[0091] In step S1201, the control unit 121 of the control device 120 instructs the control signal processing unit 1101 of the destination communication device 110 to start up a new packet processing unit 111. In response to this, in step S1202, the control signal processing unit 1101 starts up the new packet processing unit 111.
[0092] In step S1203, the started packet processing unit 111 performs various settings within the packet processing unit 111. In step S1204, the packet processing unit 111 inputs an entry for packet processing into the packet processing circuit 112.
[0093] In step S1205, the packet processing unit 111 transmits an ARP or GARP to the opposite device 1102-1, thereby enabling the packet processing unit 111 to notify the opposite device 1102-1 of the MAC address of the packet processing unit 111 of the migration destination.
[0094] In step S1206, the packet processing unit 111 transmits an ARP or GARP to the opposite device 1102-2, thereby enabling the packet processing unit 111 to notify the opposite device 1102-2 of the MAC address of the packet processing unit 111 of the migration destination.
[0095] In step S1207, the opposite devices 1102-1 and 1102-2 start communication (for example, user 1 communication) via the packet processing circuit 112 of the destination communication device 110.
[0096] In this way, the packet processing unit 111 of the communication device 110 performs traffic control by notifying the opposite device 1102 when transferring packet processing to the packet processing unit 111 or the packet processing circuit 112. As a result, according to the fourth embodiment, it becomes possible to easily transfer packet processing even in the communication device 110 that performs packet processing by hardware processing.
[0097] 13 is a diagram showing an example of the hardware configuration of a communication device according to this embodiment. The communication device 1300 includes, for example, a processor 1301, a memory 1302, a storage device 1303, a communication device 1304, an input device 1305, an output device 1306, an FPGA 102, and a bus B.
[0098] The processor 1301 is, for example, an arithmetic unit such as a CPU (Central Processing Unit) that executes predetermined programs to realize various functions. The memory 1302 is a computer-readable storage medium and may include, for example, a RAM (Random Access Memory) or a ROM (Read Only Memory). The storage device 1303 is a computer-readable storage medium and may include, for example, a HDD (Hard Disk Drive), an SSD (Solid State Drive), various optical disks, and magneto-optical disks.
[0099] The communication device 1304 includes one or more pieces of hardware (communication devices) for communicating with other devices via a wireless or wired network. The input device 1305 is an input device (e.g., a keyboard, a mouse, a microphone, a switch, a button, a sensor, etc.) that accepts input from the outside. The output device 1306 is an output device (e.g., a display, a speaker, an LED lamp, etc.) that outputs to the outside.
[0100] The FPGA 102 is hardware that realizes the packet processing circuit 112 of Examples 1 to 3. The FPGA 102 may be another device, such as an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), or a DSP (Digital Signal Processor). The bus B is commonly connected to the above components and transmits, for example, address signals, data signals, and various control signals.
[0101] (Supplementary Note) The communication device 110 in this embodiment is not limited to being realized by a dedicated device, but may also be realized by a general-purpose computer. In this case, a program for realizing this function may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be read into a computer system and executed to realize the function. Note that the term "computer system" here includes hardware such as an OS and peripheral devices.
[0102] Furthermore, the term "computer-readable recording medium" includes various storage devices such as portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, as well as storage devices 1103 built into computer systems. Furthermore, the term "computer-readable recording medium" may also include devices that dynamically store a program for a short period of time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line, and devices that store a program for a certain period of time, such as volatile memory within a computer system that serves as a server or client in such cases.
[0103] Furthermore, the above program may be one that realizes part of the above-mentioned functions, or may be one that can realize the above-mentioned functions in combination with a program already recorded in a computer system, or may be one that is realized using hardware such as a PLD or FPGA.
[0104] <Effects of the embodiment> According to the present embodiment, in the communication device 110 that processes packets using software processing and hardware processing, it is possible to suppress an increase in the load of software processing when a simultaneous transition occurs due to a system failure.
[0105] In addition, since it is possible to give priority to hardware entry for users with high priority (high communication volume), it is possible to reduce the software processing load and reduce the adverse effects on C-plane communication, FPGA entry processing, etc.
[0106] Summary of Embodiments This specification discloses at least the following communication devices, communication systems, and communication methods. (Item 1) A communication device having one or more packet processing units that execute packet processing using software, and a packet processing circuit that executes the packet processing using hardware, wherein the packet processing units notify an opposing device and control traffic when transferring the packet processing to the packet processing units or the packet processing circuit. (Item 2) The communication device described in Item 1, wherein the packet processing units execute the packet processing using the one or more packet processing units when transferring the packet processing to the communication device, and the packet processing units cause the packet processing circuit to execute the packet processing when the communication volume of the packet processing exceeds a predetermined value. (Item 3) A communication system including the communication device described in Item 1 and a control unit, wherein the control unit, when transferring the packet processing to the communication device, causes the packet processing circuit to preferentially execute the packet processing of a user with a larger communication volume based on the communication volume of the one or more packet processing units. (Clause 4) A communications system including the communications device according to paragraph 1 and a control unit, wherein when a system failure occurs and the packet processing is transferred to the communications device, the control unit causes the packet processing circuit to preferentially execute the packet processing of a user with a larger communication volume based on the communication volume of the one or more packet processing units of the other communications device where the system failure occurred. (Clause 5) A communications system having one or more packet processing units that execute packet processing using software, and a packet processing circuit that executes the packet processing using hardware, wherein the packet processing unit notifies an opposing device and controls traffic when transferring the packet processing to the packet processing unit or the packet processing circuit.(Clause 6) A communication method in a communication device having one or more packet processing units that execute packet processing using software, and a packet processing circuit that executes the packet processing using hardware, wherein when the packet processing unit transfers the packet processing to the packet processing unit or the packet processing circuit, the packet processing unit notifies the opposing device and controls traffic.
[0107] Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and changes are possible within the scope of the gist of the present invention described in the claims.
[0108] 100 Communication system 110 Communication device 111, 111-1, 111-2 Packet processing unit 112 Packet processing circuit 121 Control unit 501 Communication monitoring unit 801 Communication monitoring unit 1100 Computer
Claims
1. A communications device having one or more packet processing units that execute packet processing using software, and a packet processing circuit that executes the packet processing using hardware, wherein the packet processing units notify an opposing device and control traffic when transferring the packet processing to the packet processing units or the packet processing circuit.
2. The communication device according to claim 1, wherein when the packet processing is transferred to the communication device, the packet processing is performed by the one or more packet processing units, and when the communication volume of the packet processing exceeds a predetermined value, the packet processing unit causes the packet processing circuit to perform the packet processing.
3. A communication system comprising the communication device of claim 1 and a control unit, wherein when the control unit transfers the packet processing to the communication device, the control unit causes the packet processing circuit to preferentially execute the packet processing of a user with a larger communication volume based on the communication volume of the one or more packet processing units.
4. A communication system comprising the communication device of claim 1 and a control unit, wherein when a system failure occurs and the packet processing is transferred to the communication device, the control unit causes the packet processing circuit to perform the packet processing of a user with a larger communication volume on a priority basis based on the communication volume of the one or more packet processing units of the other communication device in which the system failure occurred.
Citation Information
Patent Citations
Virtual machine arrangement device, virtual machine arrangement method and virtual machine arrangement program
JP2017174301A
Controller, information process system, control method, and information processing program
JP2018005664A
Information processing device, cluster node, cluster system, information processing method, and program
JP2022026580A
Network switch, control program, and control method
JP2022029306A