Communication control device, communication control method, and communication control program
The communication control device enhances QoS management by identifying network slices and prioritizing packet transmission based on slice priority, addressing inconsistencies in existing devices and reducing operational costs.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- NEC CORP
- Filing Date
- 2022-07-01
- Publication Date
- 2026-05-19
AI Technical Summary
Existing communication control devices, such as smart NICs, face challenges in identifying the network slice to which a packet belongs, leading to inconsistent priority settings for packets from different network slices, which can result in suboptimal QoS management.
A communication control device that includes a receiving unit to identify the network slice and QoS class of incoming packets, a distribution unit to route packets to appropriate queues, and data transfer units to perform packet transfer processing according to QoS, with a transmission unit prioritizing packets based on network slice priority.
Enables prioritized packet transmission according to the network slice to which the packet belongs, improving QoS management and reducing resource wastage and operational costs in multi-slice networks.
Smart Images

Figure 0007861542000001 
Figure 0007861542000002 
Figure 0007861542000003
Abstract
Description
Technical Field
[0001] The present invention relates to a communication control device and the like.
Background Art
[0002] 3GPP (3rd Generation Partnership Project) (registered trademark) is standardizing 5G (5th generation). As described in Non-Patent Document 1, the 5G system includes a 5G access network (AN: Access Network), a 5G core network (CN: Core Network), and a user terminal (UE: User Equipment).
[0003] In 5G, as typical usage scenarios, communications such as mIOT (massive Internet of things), eMBB (enhanced Mobile Broadband), and URLLC (Ultra Reliable Low Latency Communications) are being discussed. These communications have mutually different traffic characteristics, and it is difficult to simultaneously satisfy traffic requirements in all communications. For example, in eMBB where a large capacity is required, packet transfer by bulk processing is optimal. However, bulk processing is likely to generate jitter. Therefore, packet transfer by bulk processing is difficult to satisfy the low latency and high quality required by URLLC. For such different traffic requirements, in 5G, it is being discussed to conduct communications separately in the form of network slices.
[0004] In 5G systems, network slices with different traffic requirements are divided into multiple Network Slice Instances (NSIs). Furthermore, specific parts of an NSI (such as the access network or core network) are defined as Network Slice Subnet Instances (NSSIs). In particular, the NSSI of the core network is not shared with other NSIs and is deployed individually.
[0005] The network slices of the core network are configured based on S-NSSAI (Single-Network Slice Selection Assistance Information) exchanged between the UE, AN, and CN, forming the Network Functions (NF) of the core network. The configuration of the NFs depends on the operator and vendor. However, in any configuration, the Session Management Function (SMF) and User Plane Function (UPF) are considered NFs deployed for each network slice.
[0006] The UPF is responsible for U-Plane (User-Plane) control (user packet control) and accommodates U-Plane communication. The UPF is individually deployed by C-Planes (Control-Planes) such as AMF (Access and Mobility Management Function) and NSSF (Network Slice Selection Function) that receive S-NSSAI, and connects to the access network. The individual deployment of UPFs enables QoS (Quality of Service) for user packets in each network slice.
[0007] As mentioned above, UPFs are deployed for each network slice. In this case, hardware / software resources such as CPUs (Central Processing Units), power capacity, and physical space are divided and lost, increasing management and operational costs. To mitigate such costs, it is conceivable to accommodate U-Plane communications from multiple network slices in a single UPF.
[0008] One technique for accommodating U-Plane communication from multiple network slices in a single UPF is described in Patent Document 1. In this method, the UPF identifies the network slice to which the received packet belongs and its class in QoS. The UPF then distributes the received packet to a queue group. This queue group has multiple queue groups corresponding to multiple network slices. Each queue group also corresponds to multiple classes in QoS. Each of the multiple data transfer means then retrieves the received packet from the queue corresponding to each class in its corresponding queue group and performs packet transfer processing on the received packet according to the QoS. Patent Document 1 also describes that the UPF is implemented using a smart NIC (Network Interface Card) and a CPU, and that the aforementioned data transfer means are implemented by the CPU and the queue group by the smart NIC. [Prior art documents] [Patent Documents]
[0009] [Patent Document 1] Japanese Patent Publication No. 2021-170729 [Non-patent literature]
[0010] [Non-Patent Document 1] 3GPP TS 23.501 V16.3.0, “System architecture for the 5G System(5GS)”, 2019 / 12 [Overview of the project] [Problems that the invention aims to solve]
[0011] Patent Document 1 describes a smart NIC receiving packets and a CPU forwarding the received packets, but it does not describe a smart NIC receiving packets from the CPU and transmitting them outside the UPF.
[0012] When a smart NIC sends a packet outside the UPF, it receives the packet from the CPU. However, the smart NIC cannot obtain information about the network slice to which the packet belongs.
[0013] The network slice information to which a packet belongs is identified by the smart NIC when the packet is received from outside the UPF and is used for queuing. However, the packet is forwarded by the CPU. Also, since the network slice information is not attached to the packet, the smart NIC cannot know the network slice information to which the packet belongs when it receives the packet from the CPU.
[0014] Therefore, smart NICs face the challenge of sending packets with the same priority setting to the UPF (Ultraviolet Protection Frame) even if they belong to different network slices.
[0015] Network slice use cases include 5QI (5G QoS Identifier) (see Non-Patent Document 1). The IETF (Internet Engineering Task Force) is discussing the mapping of 5QI to DSCP (Differentiated Services Code Point) in the IP (Internet Protocol) header. For example, the DSCP included in the L3 (Layer 3) IP header of a user packet is used as one of the values representing QoS. For example, suppose the DSCP of a packet in network slice A is "EF," indicating an emergency, highest-priority processing packet, and the DSCP of a packet in another network slice B is also "EF." In this case, since the priority of the two packets is the same, there is no guarantee that the smart NIC will send one out of the UPF first.
[0016] Thus, even if the priorities of network slice A and network slice B are different, the smart NIC will send packets with the same DSCP (packets with the same priority) outside the UPF with the same priority.
[0017] In view of the above-mentioned problems, the object of the present invention is to provide a communication control device, etc., that enables the transmission of packets according to the priority of the network slice to which the packet belongs when accommodating communications from multiple network slices. [Means for solving the problem]
[0018] In one aspect of the present invention, the communication control device includes: a receiving unit that receives packets via a physical port; an identification unit that identifies the network slice to which the received packet belongs and the class in QoS; a distribution unit that distributes the packet to a queue in any of the queue groups of the queue group, each of which is associated with a plurality of network slices, and each of the plurality of queue groups contains a plurality of queues corresponding to each of the plurality of classes in QoS, according to the identification result of the packet; a plurality of data transfer units provided for each of the plurality of network slices, which perform packet transfer processing according to the QoS in the corresponding network slice; and a transmission unit that transmits the packets received from the data transfer units via a physical port. Each of the plurality of data transfer units acquires the packet from the queue in the queue group associated with the corresponding network slice, performs the packet transfer processing according to the QoS on the acquired packet, and the transmission unit prioritizes transmitting the packet received from the data transfer unit corresponding to the network slice with a higher slice priority among the plurality of data transfer units.
[0019] In another aspect of the present invention, the communication control method receives a packet via a physical port, identifies the network slice to which the received packet belongs and its class in QoS, and distributes the packet to one of the queues in the queue group, which has a plurality of queue groups associated with each of the plurality of network slices, and in each of the plurality of queue groups, a plurality of queues corresponding to each of the plurality of classes in QoS are included in each of the plurality of queue groups, according to the identification result of the packet, and in a data transfer unit provided for each of the plurality of network slices, the packet is obtained from the queue in the queue group associated with the corresponding network slice, packet transfer processing according to the QoS is performed on the obtained packet, and the packet received from the data transfer unit corresponding to the network slice with a higher slice priority among the plurality of data transfer units is given priority, and the packet received from the data transfer unit is transmitted via the physical port.
[0020] In another aspect of the present invention, the communication control program causes a computer to implement a receiving function for receiving packets via a physical port, an identifying function for identifying the network slice to which the received packet belongs and the class in QoS, a queue group having a plurality of queue groups associated with each of the plurality of network slices, wherein a plurality of queues corresponding to each of the plurality of classes in QoS are included in each of the plurality of queue groups, a distributing function for distributing the packet according to the identification result of the packet to any one of the queues in the queue group, a plurality of data transfer functions provided corresponding to each of the plurality of network slices for performing packet transfer processing according to the QoS in the corresponding network slice, and a transmitting function for transmitting the packet received from the data transfer function via a physical port. Each of the plurality of data transfer functions acquires the packet from the queue in the queue group associated with the corresponding network slice, performs the packet transfer processing according to the QoS on the acquired packet, and the transmitting function preferentially transmits the packet received from the data transfer function corresponding to the network slice with a higher slice priority, which is the priority of the network slice, among the plurality of data transfer functions.
Advantages of the Invention
[0021] According to the present invention, when accommodating communications of a plurality of network slices, it becomes possible to transmit packets according to the priority of the network slice to which the packet belongs.
Brief Description of the Drawings
Embodiments for Carrying Out the Invention
[0023] [First Embodiment] The first embodiment of the present invention will be described. A specific example of the communication control device 10 in the first embodiment is the communication control device 20 in the second embodiment and the communication control device 30 in the third embodiment described later.
[0024] Figure 1 shows an example of the configuration of the communication control device 10 of this embodiment. The communication control device 10 includes a receiving unit 11, an identification unit 12, a distribution unit 13, a queue group 14-i (where i is an integer between 1 and N), a data transfer unit 15-i (where i is an integer between 1 and N), and a transmission unit 16.
[0025] The receiving unit 11 receives packets via a physical port.
[0026] The identification unit 12 identifies the network slice to which the received packet belongs and its QoS class.
[0027] The distribution unit 13 distributes packets to one of the queues in the queue group according to the packet identification result. The queue group has multiple queue groups (14-1 to 14-N) associated with each of the multiple network slices. Each queue group also contains multiple queues corresponding to each of the multiple classes in QoS.
[0028] Multiple data transfer units (15-1 to 15-N) are provided, each corresponding to a network slice.
[0029] The data transfer unit 15-i retrieves packets from the queues of queue group 14-i associated with the corresponding network slice and performs packet transfer processing on the retrieved packets according to QoS.
[0030] The transmitting unit 16 transmits packets received from the data transfer units (15-1 to 15-N) via the physical port.
[0031] The transmitting unit 16 prioritizes the transmission of packets received from data transfer units (15-1 to 15-N) that correspond to network slices with higher slice priority, among the multiple data transfer units (15-1 to 15-N). The slice priority is the priority of the network slice.
[0032] Next, Figure 2 shows an example of the operation flow of the communication control device 10 of this embodiment.
[0033] The receiving unit 11 receives packets via a physical port. The identification unit 12 identifies the network slice to which the received packet belongs and its class in QoS (step S101).
[0034] The distribution unit 13 distributes the packets to one of the queues in the queue group according to the packet identification result (step S102).
[0035] The data transfer unit 15-i acquires packets from the queue of queue group 14-i associated with the corresponding network slice (step S103), and performs packet transfer processing on the acquired packets according to QoS (step S104).
[0036] The transmitting unit 16 transmits packets received from the data transfer units (15-1 to 15-N) (step S105). The transmitting unit 16 prioritizes transmitting packets received from data transfer units corresponding to network slices with higher slice priority. Slice priority is the priority of the network slice.
[0037] As described above, in the first embodiment of the present invention, the communication control device 10 includes a receiving unit 11, an identification unit 12, a distribution unit 13, a queue group 14-i, a data transfer unit 15-i, and a transmission unit 16. The receiving unit 11 receives packets via a physical port. The identification unit 12 identifies the network slice to which the received packet belongs and its class in QoS. The distribution unit 13 distributes the packet to one of the queues in the queue group according to the packet identification result. The queue group has a plurality of queue groups (14-1 to 14-N) associated with each of the plurality of network slices. Each queue group includes a plurality of queues corresponding to each of the plurality of classes in QoS. The plurality of data transfer units (15-1 to 15-N) correspond to each of the network slices. The data transfer unit 15-i acquires packets from the queues of the queue group 14-i associated with the corresponding network slice and performs packet transfer processing according to QoS on the acquired packets. The transmitting unit 16 transmits packets received from the data transfer units (15-1 to 15-N) via the physical port. The transmitting unit 16 prioritizes transmitting packets received from data transfer units corresponding to network slices with higher slice priority. Slice priority is the priority of the network slice.
[0038] In this way, the communication control device 10 prioritizes the transmission of packets received from the data transfer unit corresponding to the network slice with a higher slice priority. Therefore, when accommodating communications from multiple network slices, it becomes possible to transmit packets according to the priority of the network slice to which the packet belongs.
[0039] [Second Embodiment] Next, a communication control device 20 in a second embodiment of the present invention will be described.
[0040] Figure 3 shows an example of a system configuration including a communication control device 20. This system includes the communication control device 20, UE41, AN42, AMF43, SMF44, and DN (Data Network)45. In this embodiment, the communication control device 20 corresponds to the UPF.
[0041] UE41 includes user devices such as mobile phones, smartphones, tablets, PCs (Personal Computers), and IoT (Internet of Things) devices. Multiple applications that communicate with DN45 can run on UE41. AN42 includes base stations and connects UE41 to the 5G core network. AMF43 performs mobility management. AMF43 handles terminal-level processing, such as subscriber authentication and terminal location management.
[0042] The communication control unit 20 (UPF) constitutes part of the 5G core network. The communication control unit 20 handles user data communication between the DN45, which is an external network such as the internet, and the UE41. The SMF44 handles session management. The SMF44 and the communication control unit 20 establish a session for DN45 for each network slice. Multiple applications running on the UE41 connect to the network slice that suits their respective traffic requirements.
[0043] Next, Figure 4 shows an example of the configuration of the communication control device 20 of this embodiment. The communication control device 20 includes a smart NIC 28 and a CPU 29.
[0044] The CPU 29 includes a data transfer unit 25-i (where i is an integer from 1 to N). The communication control device 20 is configured, for example, as a physical server equipped with a smart NIC 28. In the communication control device 20, the functions of the data transfer unit 25-i are implemented, for example, using server virtualization technology.
[0045] The data transfer unit 25-i is provided corresponding to the i-th network slice. In this embodiment, the number of network slices is N.
[0046] The data transfer unit 25-i performs packet forwarding processing based on signals transmitted from the SMF44. The data transfer unit 25-i performs packet forwarding processing according to QoS in the corresponding network slice. The data transfer unit 25-i acquires packets from the smart NIC 28 and determines the packet forwarding destination, etc. The data transfer unit 25-i also transmits packets to AN42 or DN45 via the smart NIC 28. The data transfer unit 25-i performs packet forwarding processing according to QoS in the corresponding network slice. Packet forwarding processing includes, for example, priority control and bandwidth control.
[0047] The smart NIC 28 includes a receiving unit 21, an identification unit 22, a distribution unit 23, a queue group 24-i (where i is an integer from 1 to N), a transmitting unit 26, and a physical port 27. The smart NIC 28 is configured, for example, using an FPGA (Field Programmable Gate Array). The smart NIC 28 may also be configured using other devices, such as semiconductor devices including a processor and memory. In that case, the identification unit 22 and the distribution unit 23 can be implemented by operating according to a program read from memory by the processor.
[0048] Physical port 27 receives packets from AN42 and DN45. Physical port 27 also transmits packets to AN42 and DN45. Physical port 27 outputs received packets to the receiving unit 21. Physical port 27 also transmits packets received from the transmitting unit 26 to AN42 or DN45. Physical port 27 may be divided into an input port and an output port.
[0049] The receiving unit 21 receives packets via the physical port 27.
[0050] The identification unit 22 analyzes the packet received by the receiving unit 21 to identify the network slice to which the packet belongs and its class in QoS. For example, the identification unit 22 identifies the network slice by referring to a specific range within the packet. The identification unit 22 identifies the class in QoS based on the CoS (Class of Service) value contained in the packet's L2 (Layer 2) Ethernet® frame.
[0051] For example, the identification unit 22 determines if the packet is GTP-U (GPRS (General Packet)). In the case of (Tunneling Protocol for User Plane) packets (e.g., Radio Service), the range from the L2 Ethernet frame to the GTP-U Extension can be referred to as a specific range to identify the network slice.
[0052] Furthermore, if the packet is an IP packet, the identification unit 22 can identify the network slice by referring to the range from the L2 Ethernet frame to the L3 IP header as a specific range.
[0053] Figure 5 shows an example of a table used to identify network slices. The table is stored in a storage unit (not shown) beforehand. This table shows the correspondence between network slice numbers and distribution keys. In this embodiment, the network slice number and the queue group number are the same. The identification unit 22 refers to the table and, if the packet contains a value or type information specified as the distribution key, identifies the network slice corresponding to that distribution key as the network slice to which the packet belongs. For example, if the DSCP included in the L3 IP header of the packet is "EF", the identification unit 22 identifies the packet as belonging to the first network slice.
[0054] Figure 6 shows another example of a table used to identify network slices. In this example, the VLAN value (VLAN ID (Identifier)) included in the L2 Ethernet frame and the DSCP included in the L3 IP header are specified as the distribution key. In this case, the identification unit 22 identifies the network slice based on the combination of the VLAN value and the DSCP. For example, if the packet has VLAN ID=5 and DSCP=CS6, the identification unit 22 identifies the packet as belonging to the first network slice. As in this example, the distribution key may include values or type information of multiple fields in the packet.
[0055] In Smart NIC28, queue group 24-i corresponds to the i-th network slice. Figure 7 shows an example configuration of queue group 24-i.
[0056] Queue group 24-i includes queue 241-ij (where j is an integer from 1 to M). For example, queues 241-i1 to 241-i8 may correspond to classes 0 to 7 in the QoS control of the i-th network slice. Furthermore, the group of queue groups 24-1 to 24-N combined is called queue group 242.
[0057] The distribution unit 23 distributes the packet to one of the queues in the queue group 242 according to the packet identification result in the identification unit 22. For example, the distribution unit 23 stores the packet in queue 241-ij, which is included in queue group 24-i, which is included in the queue group 24-i, which is included in the queue group 24-i, and corresponds to the identified class. For example, suppose the network slice to which the packet belongs is identified as the first network slice, and the CoS value included in the L2 Ethernet frame is "1". In that case, the distribution unit 23 stores the received packet in the queue corresponding to class 1 in queue group 24-1.
[0058] The data transfer unit 25-i retrieves received packets from the queue of the corresponding queue group 24-i. For example, the data transfer unit 25-1 corresponding to the first network slice retrieves received packets from queue 241-1j included in queue group 24-1 according to predetermined rules. The data transfer unit 25-i performs packet transfer processing according to QoS on the retrieved packets. The data transfer unit 25-i then transmits the packets to the transmission unit 26.
[0059] The correspondence between the data transfer unit and the queue group is stored in advance in the storage unit (not shown).
[0060] The transmitting unit 26 transmits packets received from the data transfer unit 25-i via the physical port 27. When packets have the same packet priority, the transmitting unit 26 prioritizes transmitting packets received from the data transfer unit corresponding to the network slice with the higher slice priority. Slice priority is the priority of the network slice. Packet priority is the priority assigned to the packet.
[0061] The transmitting unit 26 can determine the slice priority based on the identification rules used to identify the network slice to which the packet belongs, and the correspondence between the network slice and the data transfer unit.
[0062] In this embodiment, the i-th network slice is associated with the data transfer unit 25-i. The correspondence between the network slice and the data transfer unit 25-i is stored in the memory unit in advance.
[0063] Furthermore, the transmitting unit 26 can determine the identification rules for identifying the network slice to which a packet belongs by, for example, referring to the table used for identifying network slices, as shown in Figure 5.
[0064] In the table in Figure 5, the network slice number corresponding to "EF," which indicates the highest priority processing packet for emergencies, is "1." The transmitting unit 26 can determine that the network slice priority decreases in the order of "1" to "4" by checking the key in the table. The correspondence between the key and the slice priority is stored in the memory unit in advance.
[0065] Figure 8 shows an example of the correspondence between a data transfer unit and a network slice. In this example, data transfer unit 25-1, whose identification information is "A", is associated with the first network slice.
[0066] Figure 9 shows an example of slice priority for the data transfer unit. The transmitting unit 26 can determine the slice priority for the data transfer unit by referring to the table in Figure 5 and the correspondence in Figure 8. That is, the transmitting unit 26 understands that the data transfer unit 25-1 (identification information "A") corresponding to the first network slice has the highest priority. The transmitting unit 26 also understands that the data transfer unit 25-4 (identification information "D") corresponding to the fourth network slice has the lowest priority. Then, as shown in Figure 9, the transmitting unit 26 determines the slice priority for each data transfer unit and stores it in the storage unit. In the example in Figure 9, a smaller slice priority value indicates a higher slice priority.
[0067] Thus, if the key included in the table used to identify the network slice contains information that allows for determining the slice priority, the transmission unit 26 can determine the slice priority based on the key.
[0068] The transmitting unit 26 can determine which data transfer unit 25-i it received a packet from by determining which port between the smart NIC 28 and the CPU 29 the packet was input to. Therefore, the identification information of the data transfer unit 25-i may be the identification information of the port between the smart NIC 28 and the CPU 29. If packets have the same packet priority set, the transmitting unit 26 will prioritize transmitting the packet received from the data transfer unit 25-i with the higher slice priority.
[0069] If the table used to identify network slices is the table shown in Figure 6, it is difficult to determine the slice priority of each network slice from the key. In such cases, it is assumed that the slice priority of each network slice is stored in the memory unit beforehand. The transmission unit 26 can determine the slice priority of the data transfer unit 25-i based on the slice priority of the network slice and the correspondence between the network slice and the data transfer unit.
[0070] Next, Figures 10 to 12 show examples of the operation flow of the communication control device 20 of this embodiment. Figure 10 shows an example of the operation flow of the communication control device 20 relating to the receiving unit 21, the identification unit 22, and the distribution unit 23. Figure 11 shows an example of the operation flow of the communication control device 20 relating to the data transfer unit 25-i. Figure 12 shows an example of the operation flow of the communication control device 20 relating to the transmitting unit 26.
[0071] First, the transmitting unit 26 determines the slice priority of each data transfer unit 25-i at predetermined timings, such as when the communication control device 20 is initially set up or when operation begins (step S201 in Figure 12). The transmitting unit 26 can determine the slice priority of the data transfer unit based on the identification rules used by the identification unit 22 when identifying the network slice to which the packet belongs, and the correspondence between the network slice and the data transfer unit.
[0072] The receiving unit 21 receives packets via the physical port 27. The identification unit 22 identifies the network slice to which the received packet belongs and its QoS class (step S202 in Figure 10). The distribution unit 23 distributes the received packets to one of the queues in the queue group 242 according to the identification result by the identification unit 22 (step S203).
[0073] The data transfer unit 25-i acquires packets from the queue of queue group 24-i corresponding to the data transfer unit 25-i (step S204 in Figure 11). The data transfer unit 25-i performs packet transfer processing according to QoS on the acquired packets and transmits them to the transmission unit 26 (step S205).
[0074] The transmitting unit 26 transmits packets received from the data transfer unit 25-i via the physical port 27 (step S206 in Figure 12). The transmitting unit 26 prioritizes transmitting packets received from data transfer units corresponding to network slices with higher slice priority.
[0075] As described above, in the second embodiment of the present invention, the communication control device 20 includes a receiving unit 21, an identification unit 22, a distribution unit 23, a queue group 24-i, a data transfer unit 25-i, and a transmission unit 26. The receiving unit 21 receives packets via a physical port. The identification unit 22 identifies the network slice to which the received packet belongs and its class in QoS. The distribution unit 23 distributes the packet to one of the queues in the queue group according to the packet identification result. The queue group has a plurality of queue groups (24-1 to 24-N) associated with each of the plurality of network slices. Each queue group contains a plurality of queues corresponding to each of the plurality of classes in QoS. The plurality of data transfer units (25-1 to 25-N) correspond to each of the network slices. The data transfer unit 25-i acquires packets from the queues of the queue group 24-i associated with the corresponding network slice and performs packet transfer processing according to QoS on the acquired packets. The transmitting unit 26 transmits packets received from the data transfer units (25-1 to 25-N) via the physical port. The transmitting unit 26 prioritizes transmitting packets received from data transfer units corresponding to network slices with higher slice priority. Slice priority is the priority of the network slice.
[0076] In this way, the communication control device 20 prioritizes the transmission of packets received from the data transfer unit corresponding to the network slice with a higher slice priority. Therefore, when accommodating communications from multiple network slices, it becomes possible to transmit packets according to the priority of the network slice to which the packet belongs.
[0077] Furthermore, the transmitting unit 26 may determine the slice priority of the data transfer unit based on the identification rules for identifying the network slice to which the packet belongs, and the correspondence between the network slice and the data transfer unit. This allows the transmitting unit 26 to implement priority control without having to re-identify the network slice to which the packet belongs.
[0078] Furthermore, the receiving unit 21, identification unit 22, distribution unit 23, and transmitting unit 26 are included in the smart NIC 28, and the data transfer unit 25-i is included in the CPU 29. Each of the multiple data transfer units 25-i transmits packets to a port between the smart NIC 28 and the data transfer unit 25-i. Note that packets are transmitted to a different port for each data transfer unit. The transmitting unit 26 identifies the data transfer unit that sent the packet based on the port to which the packet was input. This allows the transmitting unit 26 to easily identify the data transfer unit that sent the packet and easily determine the packet slice priority.
[0079] Furthermore, the communication control device 20 is a UPF (Ultraviolet Processing Unit). This allows the communication control device 20 to be applied to, for example, a 5G UPF.
[0080] [Third Embodiment] Next, a communication control device 30 in a third embodiment of the present invention will be described.
[0081] First, Figure 13 shows an example of the configuration of the communication control device 30 of this embodiment. The communication control device 30 includes a smart NIC 38 and a CPU 39.
[0082] The CPU 39 includes data transfer units 35-1 to 35-(N-1). Data transfer unit 35-i corresponds to the i-th network slice. In this embodiment, the number of network slices is N. The N-th network slice is the network slice for the highest priority processing packet. Data transfer units 35-1 to 35-(N-1) correspond to network slices excluding the network slice for the highest priority processing packet.
[0083] The data transfer unit 35-i performs packet forwarding based on signals transmitted from the SMF44. The data transfer unit 35-i performs packet forwarding according to QoS in the corresponding network slice. The data transfer unit 35-i acquires packets from the smart NIC 38 and determines the packet forwarding destination, etc. The data transfer unit 35-i also transmits packets to AN42 or DN45 via the smart NIC 38 (transmitting unit 36). The data transfer unit 35-i performs packet forwarding according to QoS in the corresponding network slice.
[0084] The smart NIC 38 includes a receiving unit 31, an identification unit 32, a distribution unit 33, a queue group 34-i (where i is an integer from 1 to N), a transmitting unit 36, and a physical port 27.
[0085] The receiving unit 31 receives packets via the physical port 27.
[0086] The identification unit 32 identifies the network slice to which the packet belongs and its QoS class for each packet received by the receiving unit 31.
[0087] In Smart NIC38, queue group 34-i corresponds to the i-th network slice. Queue group 34-N is the queue group for highest priority packets.
[0088] The distribution unit 33 distributes the packet to one of the queues in queue group 34-1 to queue group 34-N according to the packet identification result in the identification unit 32.
[0089] The data transfer unit 35-i acquires received packets from the queue of the corresponding queue group 34-i. The data transfer unit 35-i performs packet transfer processing on the acquired packets according to QoS. The data transfer unit 35-i then transmits the packets to the transmission unit 36.
[0090] The correspondence between the data transfer unit and the queue groups is stored in the memory unit beforehand. However, queue group 34-N is directly connected to the transmission unit 36 and is therefore not associated with the data transfer unit.
[0091] The transmitting unit 36 transmits packets received from the data transfer unit 35-i via the physical port 27. The transmitting unit 36 prioritizes transmitting packets received from data transfer units corresponding to network slices with higher slice priority. The transmitting unit 36 also retrieves packets from queue group 34-N and transmits the retrieved packets via the physical port 27. In this case, the transmitting unit 36 prioritizes retrieving packets from queue group 34-N over packets received from the data transfer unit 35-i and transmits the retrieved packets. The slice priority of the data transfer unit 35-i is the same as in the second embodiment, so its explanation is omitted.
[0092] In this way, by providing a queue group 34-N for the highest priority processing packets, and by having the transmission unit 36 transmit the highest priority processing packets without passing them through the CPU 39, it becomes possible to transmit the highest priority processing packets with lower latency.
[0093] However, when packets arriving at the transmission unit 36 from the data transfer unit 35-i and packets arriving at the transmission unit 36 from queue group 34-N are mixed, the path of packets that do not pass through the CPU 39 is shorter than the path of packets that pass through the CPU 39. Therefore, the arrival order of packets at the transmission unit 36 may be reversed. This reversal of the arrival order of packets at the transmission unit 36 may result in insufficient bandwidth. When bandwidth is insufficient, it is usually impossible to predict which packets will be dropped or delayed. Therefore, the highest priority processing packets may be dropped or delayed.
[0094] In this embodiment, the transmission unit 36 transmits packets received from queue group 34-N with priority over packets received from data transfer unit 25-i. Therefore, even when packets arriving at the transmission unit 36 from data transfer unit 35-i and packets arriving at the transmission unit 36 from queue group 34-N are mixed, the possibility of discarding or delaying the highest priority processing packets can be reduced.
[0095] Next, the operation flow of the communication control device 30 in this embodiment will be described. The operation flow of the communication control device 30 in this embodiment is the same as in the second embodiment (Figures 10 to 12). However, in step S206 in Figure 12, the transmission unit 36 takes priority over packets received from the data transfer unit 35-i to acquire packets from queue group 34-N and transmits the acquired packets.
[0096] As described above, in the third embodiment of the present invention, the communication control device 30 includes a receiving unit 31, an identification unit 32, a distribution unit 33, a queue group 34-i, a data transfer unit 35-i, and a transmission unit 36. The receiving unit 31 receives packets via a physical port. The identification unit 32 identifies the network slice to which the received packet belongs and its class in QoS. The distribution unit 33 distributes the packet to one of the queues in the queue group according to the packet identification result. The queue group has a plurality of queue groups (34-1 to 34-N) associated with each of the plurality of network slices. Each queue group includes a plurality of queues corresponding to each of the plurality of classes in QoS. The plurality of data transfer units (35-1 to 35-N) correspond to each of the network slices. The data transfer unit 35-i acquires packets from the queues of the queue group 34-i associated with the corresponding network slice and performs packet transfer processing according to QoS on the acquired packets. The transmitting unit 36 transmits packets received from the data transfer units (35-1 to 35-N) via the physical port. The transmitting unit 36 prioritizes transmitting packets received from data transfer units corresponding to network slices with higher slice priority. Slice priority is the priority of the network slice.
[0097] In this way, the communication control device 30 prioritizes the transmission of packets received from the data transfer unit corresponding to the network slice with a higher slice priority. Therefore, when accommodating communications from multiple network slices, it becomes possible to transmit packets according to the priority of the network slice to which the packet belongs.
[0098] Furthermore, the distribution unit 33 distributes packets belonging to the network slice for highest priority processing packets to the queue of the queue group for highest priority processing packets. The transmission unit 36 also retrieves packets from the queue group 34-N for highest priority processing packets and transmits the retrieved packets with priority over packets received from the data transfer unit. This makes it possible to transmit highest priority processing packets with lower latency. It also reduces the possibility of discarding or delaying highest priority processing packets.
[0099] [Example Hardware Configuration] The following describes an example of hardware resource configurations for realizing the communication control devices (10, 20, 30) in each embodiment of the present invention described above using a single information processing device (computer). Note that the communication control device may be realized using at least two information processing devices, either physically or functionally. Furthermore, the communication control device may be realized as a dedicated device. Also, only some of the functions of the communication control device may be realized using an information processing device.
[0100] Figure 14 is a schematic diagram showing an example of the hardware configuration of an information processing device capable of realizing each embodiment of the present invention. The information processing device 90 includes a communication interface 91, an input / output interface 92, an arithmetic unit 93, a storage device 94, a non-volatile storage device 95, and a drive device 96.
[0101] For example, the receiving unit 11 in Figure 1 can be implemented using the communication interface 91. The identification unit 12, distribution unit 13, and data transfer unit 15-i can be implemented using the arithmetic unit 93. The queue group 14-i can be implemented using the storage device 94. The transmitting unit 16 can be implemented using the communication interface 91 and the arithmetic unit 93.
[0102] The communication interface 91 is a communication means for the communication control device of each embodiment to communicate with an external device by wire and / or wireless means. If the communication control device is implemented using at least two information processing devices, these devices may be connected via the communication interface 91 to enable communication between them.
[0103] The input / output interface 92 is a human-machine interface, such as a keyboard as an example of an input device, or a display as an output device.
[0104] The arithmetic unit 93 is implemented by a general-purpose CPU (Central Processing Unit) or microprocessor, as well as multiple electrical circuits. The arithmetic unit 93 can, for example, read various programs stored in the non-volatile memory device 95 into the memory device 94 and execute processing according to the read programs.
[0105] The storage device 94 is a memory device such as RAM (Random Access Memory) that can be accessed by the arithmetic unit 93, and stores programs and various data. The storage device 94 may also be a volatile memory device.
[0106] The non-volatile storage device 95 is a non-volatile storage device such as ROM (Read Only Memory) or flash memory, and is capable of storing various programs and data.
[0107] The drive device 96 is, for example, a device that processes data reading and writing to the recording medium 97, which will be described later.
[0108] The recording medium 97 is any recording medium capable of recording data, such as an optical disc, magneto-optical disc, or semiconductor flash memory.
[0109] Each embodiment of the present invention may be implemented, for example, by configuring a communication control device with an information processing device 90 illustrated in Figure 14, and supplying this communication control device with a program capable of realizing the functions described in each embodiment above.
[0110] In this case, the embodiment can be realized by having the arithmetic unit 93 execute the program supplied to the communication control device. Furthermore, it is also possible to configure only some, rather than all, of the functions of the communication control device in the information processing device 90.
[0111] Furthermore, the above program may be recorded on the recording medium 97, and the communication control device may be configured such that the program is stored in the non-volatile storage device 95 as appropriate during the shipping stage or operation stage of the communication control device. In this case, the method of supplying the above program may be to install it into the communication control device using an appropriate jig during the manufacturing stage before shipping or during the operation stage. Alternatively, the method of supplying the above program may be to use a general procedure such as downloading it from an external source via a communication line such as the Internet.
[0112] Some or all of the above embodiments may also be described as follows, but are not limited to the following:
[0113] (Note 1) A receiving unit that receives packets via a physical port, An identification unit identifies the network slice to which the received packet belongs and its QoS (Quality of Service) class, A queue group having a plurality of queue groups associated with each of the plurality of network slices, wherein each of the plurality of queue groups contains a plurality of queues corresponding to each of the plurality of classes in the QoS, and a distribution unit distributes the packets to any of the queues in the queue group according to the packet identification result, Multiple data transfer units are provided corresponding to each of the multiple network slices and perform packet transfer processing according to the QoS in the corresponding network slice, A transmitting unit that transmits the packets received from the data transfer unit via a physical port, Equipped with, Each of the multiple data transfer units retrieves the packet from the queue of the queue group associated with the corresponding network slice, and performs the packet transfer processing according to the QoS on the retrieved packet. The transmitting unit prioritizes transmitting packets received from the data transfer unit corresponding to the network slice with a higher slice priority among the plurality of data transfer units, where slice priority is the priority of the network slice. Communication control device.
[0114] (Note 2) The transmitting unit determines the slice priority of the data transfer unit based on the identification rule for identifying the network slice to which the packet belongs, and the correspondence between the network slice and the data transfer unit. The communication control device described in Appendix 1.
[0115] (Note 3) The distribution unit distributes the packets belonging to the network slice for highest priority processing packets to the queue of the queue group for highest priority processing packets. The transmitting unit retrieves packets from the queue group for the highest priority processing packets and transmits the retrieved packets with priority over the packets received from the data transfer unit. The communication control device described in Appendix 1.
[0116] (Note 4) The receiving unit, the identification unit, the distribution unit, and the transmission unit are included in a smart NIC (Network Interface Card), and the data transfer unit is included in a CPU (Central Processing Unit). A communication control device as described in any of the appendices 1 to 3.
[0117] (Note 5) Each of the multiple data transfer units transmits the packets to a different port between the smart NIC and the data transfer unit, The transmitting unit identifies the data transfer unit that sent the packet by the data transfer unit based on the port from which the packet was transmitted. The communication control device described in Appendix 4.
[0118] (Note 6) UPF (User Plane Function) A communication control device as described in any of the appendices 1 to 3.
[0119] (Note 7) Receive packets via a physical port, For the received packet, the network slice to which the packet belongs and its class in QoS are identified. A queue group having a plurality of queue groups associated with each of the plurality of network slices, wherein the queue group includes a plurality of queues corresponding to each of the plurality of classes in the QoS, and the packet is distributed to any of the queues in the queue group according to the packet identification result. In a data transfer unit provided for each of the multiple network slices, the system retrieves the packet from the queue of the queue group associated with the corresponding network slice, and performs packet transfer processing on the retrieved packet according to the QoS. Among the multiple data transfer units, the data transfer unit corresponding to the network slice with a higher slice priority (which is the priority of the network slice) is given priority, and the packets received from the data transfer unit are transmitted via the physical port. Communication control method.
[0120] (Note 8) Based on the identification rules for identifying the network slice to which the packet belongs, and the correspondence between the network slice and the data transfer unit, the data transfer unit determines the slice priority. The communication control method described in Appendix 7.
[0121] (Note 9) The packets belonging to the network slice for highest priority processing packets are distributed to the queue of the queue group for highest priority processing packets. The system retrieves packets from the queue group for the highest priority processing packets, and transmits the retrieved packets via the physical port, prioritizing them over packets received from the data transfer unit. The communication control method described in Appendix 7.
[0122] (Note 10) This is a communication control method for a communication control device. The aforementioned communication control device comprises a smart NIC and a CPU, The data transfer unit is included in the CPU, A communication control method described in any of the appendices 7 to 9.
[0123] (Note 11) Each of the multiple data transfer units transmits the packets to a different port between the smart NIC and the data transfer unit, The data transfer unit identifies the source of the packet by the port from which the packet was transmitted. The communication control method described in Appendix 10.
[0124] (Note 12) This is a communication control method for UPF. A communication control method described in any of the appendices 7 to 9.
[0125] (Note 13) On the computer, A receiving function that receives packets via a physical port, An identification function for the received packet, which identifies the network slice to which the packet belongs and its class in QoS, A queue group having a plurality of queue groups associated with each of the plurality of network slices, wherein each of the plurality of queue groups contains a plurality of queues corresponding to each of the plurality of classes in the QoS, and the distribution function distributes the packets to any of the queues in the queue group according to the packet identification result, Multiple data transfer functions are provided corresponding to each of the multiple network slices and perform packet transfer processing according to the QoS in the corresponding network slice, A transmission function that transmits the packets received from the data transfer function via a physical port, To make it happen, Each of the multiple data transfer functions retrieves the packet from the queue of the queue group associated with the corresponding network slice, and performs the packet transfer processing on the retrieved packet according to the QoS. The transmission function prioritizes transmitting packets received from the data transfer function corresponding to the network slice with a higher slice priority among the multiple data transfer functions. Communication control program.
[0126] (Note 14) The transmission function determines the slice priority of the data transfer function based on the identification rule for identifying the network slice to which the packet belongs, and the correspondence between the network slice and the data transfer function. The communication control program described in Appendix 13.
[0127] (Note 15) The aforementioned distribution function distributes the packets belonging to the network slice for highest priority processing packets to the queue of the queue group for highest priority processing packets. The transmission function retrieves packets from the queue group for the highest priority processing packets and transmits the retrieved packets with priority over packets received from the data transfer function. The communication control program described in Appendix 13.
[0128] (Note 16) This is a communication control program for a communication control device. The aforementioned communication control device includes a smart NIC and a CPU, The data transfer function is included in the CPU, A communication control program as described in any of the appendices 13 to 15.
[0129] (Note 17) Each of the multiple data transfer functions sends the packet to a different port between the smart NIC and the CPU, depending on the data transfer function. The transmission function identifies the data transfer function that originated the packet based on the port from which the packet was transmitted by the data transfer function. The communication control program described in Appendix 16.
[0130] (Note 18) This is the UPF communication control program. A communication control program as described in any of the appendices 13 to 15.
[0131] Although the present invention has been described above with reference to embodiments, the present invention is not limited to the above embodiments. Various modifications to the structure and details of the present invention can be made, as can be understood by those skilled in the art within the scope of the present invention. [Explanation of symbols]
[0132] 10, 20, 30 Communication control device 11, 21, 31 Receiving section 12, 22, 32 Identification section 13, 23, 33 distribution section 14-i, 24-i, 34-i queue groups 15-i, 25-i, 35-i Data Transfer Section 16, 26, 36 Transmitter 241-ij Queue 242 queue groups 90 Information Processing Equipment 91 Communication Interface 92 Input / Output Interfaces 93 Arithmetic unit 94 Storage device 95 Non-volatile memory devices 96 Drive unit 97 Recording media
Claims
1. A receiving unit that receives packets, With respect to the aforementioned packet, an identification unit identifies the network slice to which the packet corresponds and the Quality of Service (QoS) class to which the packet corresponds, A distribution unit that distributes the packet to a queue corresponding to each network slice based on the class of the corresponding QoS of the packet, Each of the aforementioned network slices is provided with a plurality of data transfer units that perform packet forwarding processing according to the class of the QoS by retrieving the corresponding packet from the corresponding queue, A transmission unit that transmits the packet that has undergone the packet forwarding process, Equipped with, The transmitting unit prioritizes transmitting the packets received by the packet forwarding process corresponding to the network slice with a higher priority among the packet forwarding processes, The transmitting unit receives priority packets corresponding to a predetermined priority network slice from the corresponding queue without going through the packet forwarding process. The transmitting unit transmits the priority packet with priority over the packet received via the packet forwarding process. Communication control device.
2. Each of the plurality of data transfer units transmits the packet to a different port for each data transfer unit between itself and the transmission unit, The transmitting unit determines the priority of the network slice based on the data transfer unit corresponding to the port from which the packet was transmitted. The communication control device according to claim 1.
3. The transmitting unit determines the priority of the network slice corresponding to each data transfer unit based on the correspondence between the plurality of data transfer units and the corresponding network slices. The communication control device according to claim 1.
4. The receiving unit, the identification unit, the distribution unit, and the transmission unit are included in a Smart Network Interface Card (NIC), and the plurality of data transfer units are included in a Central Processing Unit (CPU). A communication control device according to any one of claims 1 to 3.
5. Receiving a packet, With respect to the aforementioned packet, the network slice to which the packet corresponds and the class in the QoS corresponding to the packet are identified. Based on the class of the corresponding QoS of the packet, the packet is distributed to the queue corresponding to each network slice. For each of the network slices, the packet forwarding process corresponding to the class of the QoS is performed by taking the packet from the corresponding queue. The packet that has undergone the packet forwarding process is transmitted, Transmitting the aforementioned packet includes, among the packet forwarding processes, prioritizing the transmission of the packet received by the packet forwarding process corresponding to the network slice with a higher priority than the corresponding network slice, Sending the aforementioned packet includes receiving a priority packet corresponding to a predetermined priority network slice from the corresponding queue without going through the packet forwarding process, Transmitting the packet includes transmitting the priority packet with priority over the packet received via the packet forwarding process. Communication control method.
6. On the computer, A receiving function that receives packets, With respect to the aforementioned packet, an identification function is provided to identify the network slice to which the packet corresponds and the class in the QoS to which the packet corresponds. A distribution function that distributes the packet to the queue corresponding to each network slice based on the class of the corresponding QoS of the packet, A data transfer function that, corresponding to each of the network slices, retrieves packets from the corresponding queue and performs packet forwarding processing according to the class of the QoS, A transmission function that transmits the packet that has undergone the packet forwarding process, To make it happen, The transmission function includes, among the packet forwarding processes, prioritizing the transmission of packets received by the packet forwarding process corresponding to the network slice with a higher priority than the corresponding network slice. The transmission function includes receiving priority packets corresponding to a predetermined priority network slice from the corresponding queue without going through the packet forwarding process, The transmission function includes transmitting the priority packet with priority over the packet received via the packet forwarding process. Communication control program.