Gateway device, control method, and program
The gateway device addresses the issue of packet dropping by using a fallback routing table to forward IP packets from mobile networks to SRv6 networks when no route is found in the payload forwarding routing table, ensuring reliable packet transmission and control over forwarding paths.
Patent Information
- Application Number
- JP2023145591
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-07
- Publication Date
- 2025-03-19
- Estimated Expiration
- 2043-09-07
AI Technical Summary
Existing gateway devices lack the functionality to forward IP packets from mobile networks to SRv6 networks when no route is found in the payload forwarding routing table, leading to packet dropping and loss of control over forwarding paths.
The gateway device employs a fallback routing table to forward received IP packets when no entry for the payload IP packet exists in the payload forwarding routing table, ensuring that packets are not dropped and can be forwarded to the original destination, such as a UPF.
This solution enables the gateway device to transmit IP packets to their original destinations even when no route is found in the payload forwarding routing table, preventing packet loss and maintaining control over forwarding paths.
Smart Images

Figure 2025038779000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a gateway device, a control method, and a program. [Background technology]
[0002] Patent Document 1 describes an ULCL UPF (Uplink Classifier User Plane Function). [Prior art document] [Patent documents] [Patent Document 1] JP 2021-175108 A Summary of the Invention [Means for solving the problem]
[0003] According to one embodiment of the present invention, there is provided a gateway device. The gateway device may have a reception routing table for forwarding a received IP packet in which a payload IP packet is encapsulated and received from an external source. The gateway device may have a payload forwarding routing table for forwarding the payload IP packet. The gateway device may have a fallback routing table for forwarding the received IP packet when an entry for forwarding the payload IP packet contained in the received IP packet is not included in the payload forwarding routing table.
[0004] The gateway device may include a packet receiving unit that receives an IP packet. The gateway device may include a route control unit that controls to perform a destination route search for the received IP packet received by the packet receiving unit using the reception routing table, and when a route for the received IP packet exists, to perform a destination route search for the payload IP packet using the payload transfer routing table, and when a route for the payload IP packet exists, to transmit the payload IP packet to a destination, and when a route for the payload IP packet does not exist, to perform a destination route search for the received IP packet using the fallback routing table. The received IP packet may include an IP header, a UDP header, a GTP-U header, and the payload IP packet, and when a route for the payload IP packet exists, the route control unit may transmit the received IP packet, in which the IP header, UDP header, and GTP-U header have been converted into other headers, to the destination. The route control unit may, when a route for the payload IP packet exists, transmit to the destination the received IP packet in which the IP header, the UDP header, and the GTP-U header have been converted into an IPv6 header, or into a header conforming to SRv6 including an IPv6 header and an SR header. When a route for the payload IP packet exists, the route control unit may transmit to the destination of the payload IP packet the payload IP packet encapsulated with an appropriate header according to a result of a destination route search for the payload IP packet.
[0005] In any of the gateway devices, the route control unit may be configured to determine memory location difference information indicating a difference between memory locations of the received IP packet and the payload IP packet, advance a pointer to the payload IP packet, and perform a destination route search for the payload IP packet using the payload forwarding routing table, when a route for the payload IP packet exists, and to restore the received IP packet using the memory location difference information, and perform a destination route search for the received IP packet using the fallback routing table, when a route for the payload IP packet does not exist.
[0006] In any of the gateway devices, the received IP packet may include an IP header, a UDP header, a GTP-U header, and the payload IP packet, and the route control unit may perform control so that, when a route for the received IP packet exists, the IP header, the UDP header, and the GTP-U header are removed from the received IP packet, and a destination route search for the payload IP packet is performed using the payload forwarding routing table, and, when a route for the payload IP packet does not exist, the received IP packet is restored using the IP header, the UDP header, and the GTP-U header, and a destination route search for the received IP packet is performed using the fallback routing table.
[0007] In any of the gateway devices, the route control unit may be configured to, when a route for the received IP packet exists, perform a destination route search for the payload IP packet using the payload forwarding routing table if the received IP packet is not a GTP-U message, and, when a route for the payload IP packet exists, transmit the payload IP packet encapsulated with an appropriate header according to the destination route search result for the payload IP packet to a destination, and, when a route for the payload IP packet does not exist, perform a destination route search for the received IP packet using the fallback routing table, and, when the received IP packet is a GTP-U message, perform a destination route search for the received IP packet using the fallback routing table without performing a destination route search using the payload forwarding routing table. The packet that is not a GTP-U message may be a packet with a GTP-U message type of 255. The packet that is a GTP-U message may be a packet with a GTP-U message type in the range of 0 to 254.
[0008] In any of the gateway devices, the reception routing table may have a routing entry that specifies the payload forwarding routing table and is capable of specifying the fallback routing table. The reception routing table may specify the payload forwarding routing table and the fallback routing table by a routing entry that indirectly refers to a routing entry that specifies the payload forwarding routing table and the fallback routing table, which is registered in another routing table. The other routing table may be, for example, a default routing table of the gateway device. The other routing table may be, for example, a global routing table of the gateway device. The reception routing table may have a routing entry that is capable of specifying the fallback routing table. The reception routing table may be capable of specifying the fallback routing table. The payload forwarding routing table may include a routing entry indicating a fallback. The route control unit may control a routing table set as a fallback routing table from another routing table so that the routing table does not have a setting or routing entry that specifies the other routing table as a fallback routing table.
[0009] According to one embodiment of the present invention, there is provided a control method executed by a computer. The control method may include a packet receiving step of receiving an IP packet in which a payload IP packet is encapsulated by an IP header or an IP header and a tunnel protocol header. The control method may include a route control step of performing a destination route search for the received IP packet received in the packet receiving step, using a reception routing table for transferring the received IP packet, and if a route for the received IP packet exists, performing a destination route search for the payload IP packet, using a payload forwarding routing table for transferring the payload IP packet, and if a route for the payload IP packet exists, transmitting the payload IP packet to the destination of the payload IP packet, or converting a header encapsulating the payload IP packet and transmitting it to the destination, and if a route for the payload IP packet does not exist, performing a destination route search for the received IP packet, using the fallback routing table for forwarding the received IP packet when an entry for forwarding the payload IP packet is not included in the payload forwarding routing table.
[0010] According to one embodiment of the present invention, there is provided a program for causing a computer to execute the control method.
[0011] The above summary of the invention does not list all of the necessary features of the present invention. Also, subcombinations of these features may also be inventions. [Brief description of the drawings]
[0012] [Figure 1] 1 illustrates an example of a gateway device 100. [Diagram 2] 2 illustrates an example of a functional configuration of the gateway device 100. [Diagram 3] 2 illustrates an example of a flow of software processing by the gateway device 100. [Figure 4] 2 illustrates an example of a flow of hardware processing by the gateway device 100. [Diagram 5] An example of a configuration 300 is shown diagrammatically. [Figure 6] 1 illustrates an example of the configuration of a packet switching programmable ASIC (Application Specific Integrated Circuit). [Figure 7] 1 illustrates an example of a hardware configuration of a computer 1200 that functions as the gateway device 100. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0014] There is known a gateway device having a function of converting a packet conforming to GTP-U used in a mobile network, which is a network that communicates by a communication method conforming to the 3rd Generation Partnership Project (3GPP (registered trademark)) standard, into a packet conforming to SRv6. For example, the gateway device searches for an entry that matches the destination address of a received IP packet including an IP header, a GTP-U header, and a payload IP packet, and if an entry exists, removes the GTP-U header, performs a route search using a payload forwarding routing table to search for a payload IP packet, and if an entry exists, adds an IPv6 header or an IPv6 header and an SRv6 header, and transfers the packet to the SRv6 network. This allows for appropriate conversion, but a problem occurs when a route search using the payload forwarding routing table is performed and no entry is matched, or only a default route is matched. In a normal IP network, if the destination cannot be found, the packet is dropped. However, a gateway device that relays between a mobile network and an SRv6 network cannot drop the packet just because the destination cannot be found. If the destination cannot be found, the GTP packet must be sent to the 5G node that should originally receive it. However, there was no gateway device with such a function. The gateway device 100 according to this embodiment has a function that contributes to solving the problem.
[0015] 1 is a schematic diagram of an example of a gateway device 100. The gateway device 100 has a function of converting a packet received from a mobile network and transmitting the converted packet to an IP network such as an SR (Segment Routing) network. The gateway device 100 transfers, for example, an IP packet received from a wireless base station that should be transferred to a node such as a UPF (User Plane Function) based on the GTP-U header, to a server such as an MEC (Multi-access Edge Computing) regardless of the GTP-U header.
[0016] The gateway device 100 encapsulates the payload IP packet with an appropriate header according to the result of the destination route search of the payload IP packet included in the GTP-U compliant packet received from the radio base station via the mobile network, and transmits the payload IP packet to a server such as MEC. For example, the gateway device 100 may convert the payload IP packet included in the GTP-U compliant packet received from the radio base station via the mobile network into a packet that complies with SRv6, and transmit the payload IP packet to a server such as MEC via the SR network. For example, the gateway device 100 may encapsulate the payload IP packet with an Ethernet header according to the result of the destination route search of the payload IP packet included in the GTP-U compliant packet received from the radio base station via the mobile network, and transmit the payload IP packet to a server such as MEC.
[0017] The gateway device 100 may determine an appropriate header to be used when encapsulating a payload IP packet based on the result of the route search. Specifically, for example, when the output interface for forwarding the packet is a VLAN interface, the gateway device 100 may use a VLAN header in addition to an Ethernet (registered trademark) header as an appropriate header. Also, when the VLAN interface is also an SRv6 backbone interface, the gateway device 100 may use an Ethernet header, a VLAN header, an IPv6 header, and an SR header as an appropriate header. Note that the gateway device may use various headers as an appropriate header based on the type of the output interface as a result of the route search. Hereinafter, when it is necessary to determine an appropriate header, it is assumed that a header determined by a similar method can be used.
[0018] 1 illustrates a case where the gateway device 100 receives a received IP packet 210 including an IP / UDP header 212, a GTP-U header 214, and a payload IP packet 216, converts the received IP packet 210 into a transmission IP packet 220 including an IPv6 header or an SRv6 header 222 including an IPv6 header and an SR header, and a payload IP packet 226, and transmits the packet to the SR network. The payload IP packet 226 may be the same as the payload IP packet 216.
[0019] The gateway device 100 has a reception routing table 102 for forwarding a reception IP packet 210 and a payload forwarding routing table 104 for forwarding a payload IP packet 216. When the gateway device 100 receives the reception IP packet 210, the gateway device 100 executes a destination route search for the reception IP packet 210 using the reception routing table 102. When a route for the reception IP packet 210 exists, the gateway device 100 executes a destination route search for the payload IP packet 216 using the payload forwarding routing table 104. Here, when a route for the payload IP packet 216 exists, the gateway device 100 generates a transmission IP packet 220 including an IPv6 header or an SRv6 header 222 including an IPv6 header and an SR header, and a payload IP packet 226 according to a result of the destination route search, and transmits the transmission IP packet 220 toward the destination.
[0020] On the other hand, if there is no route for the payload IP packet 216, the conventional network function will drop the received IP packet 210. However, dropping the received IP packet 210 that should be forwarded to a node such as a UPF is undesirable because it may result in dropping a packet that should be forwarded as a mobile network. Even if the payload IP packet 216 can be matched to a default route and forwarded to the destination that should be forwarded, the payload IP packet 216 will bypass the UPF, making it difficult to control the mobile network.
[0021] Therefore, the gateway device 100 according to the present embodiment further includes a fallback routing table 106 for forwarding the received IP packet 210 when the payload forwarding routing table 104 does not include an entry for forwarding the payload IP packet 216 included in the received IP packet 210. The reception routing table included in the gateway device 100 may include a routing entry that specifies the payload forwarding routing table and can specify the fallback routing table. Alternatively, the reception routing table may include a routing entry that specifies the fallback routing table and specifies the payload forwarding routing table. The payload forwarding routing table may include a routing entry that indicates a fallback. By including the fallback routing table 106, when the payload forwarding routing table 104 does not include an entry for forwarding the payload IP packet 216, the gateway device 100 can transmit the received IP packet 210 to the original destination node such as the UPF without dropping the received IP packet.
[0022] When no route for the payload IP packet 216 exists, the gateway device 100 executes a destination route search for the received IP packet 210 using the fallback routing table 106. The original destination of the received IP packet 210 may be registered in the fallback routing table 106. This makes it possible to transmit the received IP packet 210 to the original destination. If the received IP packet 210 can be transmitted to the original destination, a destination route with a shorter prefix length that includes the original destination may be registered in the fallback routing table 106.
[0023] The gateway device 100 may have a reception routing table 102, a payload forwarding routing table 104, and a fallback routing table 106, using a VRF (Virtual Routing and Forwarding) function. The gateway device 100 may have a reception routing table 102, a payload forwarding routing table 104, and a fallback routing table 106, using a fib (forwarding information base) table function.
[0024] In order to prevent a loop in which fallback is repeated forever, when a routing entry that specifies a fallback routing table is registered from another routing table to a routing table set as a fallback routing table, the gateway device 100 may perform control to automatically delete the routing entry or not to allow the registration. The gateway device 100 may perform control to prevent another routing table from being specified as a fallback routing table from another routing table to a routing table set as a fallback routing table.
[0025] The gateway device 100 processes the received IP packet 210, for example, in the following manner. The gateway device 100 executes a destination route search for the received IP packet 210 using the reception routing table 102, and when a route for the received IP packet 210 exists, determines memory location difference information indicating a difference between the memory locations of the received IP packet 210 and the payload IP packet 216. The gateway device 100 may determine memory location difference information indicating a difference between the memory location of the head of the received IP packet 210 and the memory location of the head of the payload IP packet 216 included in the received IP packet 210. The gateway device 100 advances a pointer to the head of the payload IP packet 216, and executes a destination route search for the payload IP packet 216 using the payload forwarding routing table 104. When a route for the payload IP packet 216 exists, the gateway device 100 transmits the transmission IP packet 220 including the IPv6 header, or the SRv6 header 222 including the IPv6 header and the SR header, and the payload IP packet 226 to the destination according to the result of the destination route search. If there is no route for the payload IP packet 216, the gateway device 100 restores the received IP packet 210 using the memory location difference information, and executes a destination route search for the received IP packet 210 using the fallback routing table 106. The gateway device 100 transmits the outgoing IP packet 230 including the IP / UDP header 232, the GTP-U header 234, and the payload IP packet 236 to the destination. The IP / UDP header 232, the GTP-U header 234, and the payload IP packet 236 may be the same as the IP / UDP header 212, the GTP-U header 214, and the payload IP packet 216. In this way, the gateway device 100 may realize the forwarding of the received IP packet 210 by software processing.
[0026] The gateway device 100 processes the received IP packet 210, for example, in the following manner. The gateway device 100 executes a destination route search for the received IP packet 210 using the reception routing table 102, and if a route for the received IP packet 210 exists, removes the IP / UDP header 212 and the GTP-U header 214 from the received IP packet 210 and stores them separately, and executes a destination route search for the payload IP packet 216 using the payload transfer routing table 104. If a route for the payload IP packet 216 exists, the gateway device 100 transmits the transmission IP packet 220, in which an IPv6 header or an SRv6 header 222 including an IPv6 header and an SR header is added to the payload IP packet 226 according to the result of the destination route search, to the destination. If no route for the payload IP packet 216 exists, the gateway device 100 restores the received IP packet 210 using the IP / UDP header 212 and the GTP-U header 214, and executes a destination route search for the received IP packet 210 using the fallback routing table 106. The gateway device 100 transmits the outgoing IP packet 230 including the IP / UDP header 232, the GTP-U header 234, and the payload IP packet 236 to the destination. This allows the gateway device 100 to realize the forwarding of the received IP packet 210 by hardware processing.
[0027] ULCL is known as a technology for extracting IP packets that meet a specific condition from IP packets transmitted by a radio base station and transmitting them to a different Data Network (DN). By using ULCL, it is possible to realize a case where some IP packets are forwarded to MEC and some IP packets are forwarded to UPF. However, in ULCL, it is necessary to form a session and a tunnel between each of the radio base station, UPF, and MEC and the ULCL UPF. In contrast, according to the gateway device 100 according to the present embodiment, if a session and a tunnel are formed between the radio base station and UPF and between the radio base station and MEC, for example, the gateway device 100 can control the forwarding of IP packets to MEC or UPF among them, and the total number of sessions and tunnels can be reduced. This can contribute to improving the flexibility of management and the efficiency of communication.
[0028] 2 illustrates an example of a functional configuration of the gateway device 100. The gateway device 100 includes a storage unit 112, a packet receiving unit 114, and a route control unit 120. The route control unit 120 includes a packet processing unit 122, a route search unit 124, a route search unit 126, and a fallback processing unit 128. It is not essential that the route control unit 120 includes all of these units.
[0029] The storage unit 112 stores various data. The storage unit 112 stores the reception routing table 102. The storage unit 112 stores the payload transfer routing table 104. The storage unit 112 stores the fallback routing table 106.
[0030] The packet receiving unit 114 receives an IP packet from an external source. The packet receiving unit 114 may receive an IP packet from a mobile network. The packet receiving unit 114 may receive an IP packet from a wireless base station. The packet receiving unit 114 may receive an IP packet in which a payload IP packet is encapsulated.
[0031] The route control unit 120 executes a destination route search for a received IP packet received by the packet receiving unit 114, using the receiving routing table 102, and if a route for the received IP packet exists, executes a destination route search for a payload IP packet included in the received IP packet, using the payload forwarding routing table 104. If a route for the payload IP packet exists, the route control unit 120 transmits the payload IP packet to a destination in accordance with the result of the destination route search. If a route for the payload IP packet does not exist, the route control unit 120 performs control so that a destination route search for the received IP packet is executed using the fallback routing table 106.
[0032] For example, when a received IP packet includes an IP header, a GTP-U header, and a payload IP packet, if a route for the payload IP packet exists as a result of performing a destination route search for the payload IP packet using the payload forwarding routing table 104, the route control unit 120 transmits the payload IP packet encapsulated with an appropriate header as a transmission IP packet to the destination according to the destination route search result. The route control unit 120 may, for example, encapsulate the payload IP packet with an SRv6 header.
[0033] The route control unit 120 may perform control so that, when a route for the received IP packet exists, the route control unit 120 determines memory position difference information indicating the difference between the memory positions of the received IP packet and the payload IP packet, advances a pointer to the beginning of the payload IP packet, and executes a destination route search for the payload IP packet using the payload forwarding routing table 104; when a route for the payload IP packet does not exist, the route control unit 120 restores the received IP packet using the memory position difference information, and executes a destination route search for the received IP packet using the fallback routing table 106.
[0034] The route control unit 120 may perform control so that, if a route for the received IP packet exists, the route control unit 120 removes the IP header, UDP header, and GTP-U header from the received IP packet and stores them separately, and performs a destination route search for the payload IP packet using the payload forwarding routing table 104, and, if a route for the payload IP packet does not exist, the route control unit 120 restores the received IP packet using the IP header, UDP header, and GTP-U header, and performs a destination route search for the received IP packet using the fallback routing table 106.
[0035] The route control unit 120 may control a routing table that has been set as a fallback routing table from another routing table so that the routing table does not have any setting or routing entry that specifies the other routing table as a fallback routing table.
[0036] The packet processing unit 122 may process the received IP packet using a route search unit 124, a route search unit 126, and a fallback processing unit 128. The route search unit 124 executes a destination route search for the received IP packet using the reception routing table 102. The route search unit 124 may be an example of a first route search unit.
[0037] As a result of the destination route search by the route search unit 124, the packet processing unit 122 may determine the payload forwarding routing table 104, the fallback routing table 106, and memory location difference information between the received IP packet and the payload IP packet, and may initiate a destination route search for the payload IP packet as the next process.
[0038] As described above, the payload forwarding routing table 104 may include a routing entry indicating fallback, and the packet processing unit 122 may pass the fallback routing table 106 and the memory location difference information to the route search unit 124 to start it. The route search unit 124 performs a destination route search for the payload IP packet, and when the route search result corresponds to a routing entry indicating fallback, may pass the fallback routing table 106 and the memory location difference information to the fallback processing unit 128 to start it. The fallback processing unit 128 may start a destination route search for the received IP packet by using the fallback routing table 106 and the received IP packet restored using the memory location difference information.
[0039] The route search unit 126 executes a destination route search for the payload IP packet by using the payload forwarding routing table 104. The route search unit 126 may be an example of a second route search unit.
[0040] The packet processing unit 122 may start up the route search unit 126 by passing the fallback routing table 106 and the memory location difference information to the route search unit 126. The route search unit 126 executes a destination route search for the payload IP packet using the payload transfer routing table 104, and if no corresponding route exists, may pass the fallback routing table 106 and the received IP packet restored using the memory location difference information to the route search unit 124 and start up a destination route search for the received IP packet using the fallback routing table 106.
[0041] The packet processing unit 122 may execute a destination route search for the payload IP packet using the payload forwarding routing table 104, and if a corresponding route does not exist, may pass the fallback routing table 106 and the received IP packet restored using the memory location difference information to the route search unit 124 and start a destination route search for the received IP packet using the fallback routing table 106.
[0042] The gateway device 100 may change the process depending on whether the received IP packet is a GTP-U message or not. For example, when the received IP packet is not a GTP-U message, the route control unit 120 performs a destination route search for the payload IP packet using the payload forwarding routing table 104, and when a route for the payload IP packet exists, the route control unit 120 transmits the payload IP packet encapsulated with an appropriate header to the destination, and when a route for the payload IP packet does not exist, the route control unit 120 performs a destination route search for the received IP packet using the fallback routing table 106. For example, when the received IP packet is a GTP-U message, the route control unit 120 performs a destination route search for the received IP packet using the fallback routing table 106 without performing a destination route search using the payload forwarding routing table.
[0043] The gateway device 100 identifies whether the received IP packet is a GTP-U message based on the GTP-U header of the received IP packet and performs processing. Specifically, for example, if the value of the GTP-U message type in the GTP-U header of the received IP packet is 255, the route control unit 120 of the gateway device 100 may process the received IP packet as not being a GTP-U message. Also, if the value of the GTP-U message type in the GTP-U header of the received IP packet is within the range of 0 to 254, the route control unit 120 of the gateway device 100 may process the received IP packet as being a GTP-U message. By changing the processing for the received IP packet depending on the GTP-U message type, the GTP-U message required for maintaining and managing a session such as a PDU session to which the GTP-U message belongs is transferred to the UPF because a route search is performed using the fallback routing table 106. This makes it possible to reliably perform a route search and fallback processing for the payload IP packet while maintaining a session such as an anchor PDU session.
[0044] The gateway device 100 may change the processing contents based on the GTP-U message type in the GTP-U header of the received IP packet. For example, when the GTP-U message type in the GTP-U header of the received IP packet satisfies a first condition, the route control unit 120 performs a destination route search of the payload IP packet using the payload forwarding routing table 104, and when a route for the payload IP packet exists, the route control unit 120 transmits the payload IP packet encapsulated with an appropriate header to the destination, and when a route for the payload IP packet does not exist, the route control unit 120 performs a destination route search of the received IP packet using the fallback routing table 106. For example, when the GTP-U message type in the GTP-U header of the received IP packet satisfies a second condition, the route control unit 120 performs a destination route search of the received IP packet using the fallback routing table 106 without performing a destination route search using the payload forwarding routing table. The first condition may be satisfied when the value of the GTP-U message type in the GTP-U header of the received IP packet is 255. The second condition may be met if the value of the GTP-U message type in the GTP-U header of the received IP packet is within the range of 0-254.
[0045] 3 shows an example of a flow of software processing by the gateway device 100. Here, a process flow from receiving an IP packet to forwarding the IP packet will be described.
[0046] In step (sometimes abbreviated to S) 102, packet receiver 114 receives an IP packet. In S104, route controller 120 executes a destination route search for the received IP packet received in S102, using reception routing table 102. If there is a match with an entry in reception routing table 102, the process proceeds to S106, and if there is no match, the process ends.
[0047] In S106, the route control unit 120 determines memory location difference information indicating the difference between the memory location of the received IP packet and the memory location of the payload IP packet included in the received IP packet. In S108, the route control unit 120 advances the pointer to the payload IP packet and starts a destination route search for the payload IP packet.
[0048] In S110, the route control unit 120 executes a destination route search for the payload IP packet using the payload forwarding routing table 104. If there is a match with an entry in the payload forwarding routing table 104, the process proceeds to S112, and if there is no match, the process proceeds to S114. In S112, the route control unit 120 forwards the payload IP packet encapsulated with an appropriate header to the destination as a transmission IP packet.
[0049] In S114, the route control unit 120 restores the received IP packet by using the memory location difference information determined in S106. The route control unit 120 may restore the received IP packet by moving the pointer according to the difference indicated by the memory location difference information.
[0050] In S116, the route control unit 120 starts a destination route search for the restored received IP packet using the fallback routing table 106. The route control unit 120 executes a destination route search for the restored received IP packet using the fallback routing table 106. In S118, the route control unit 120 transfers the restored received IP packet to the destination.
[0051] 4 is a schematic diagram showing an example of a flow of hardware processing by the gateway device 100. Here, a process flow from receiving an IP packet to forwarding the IP packet will be described.
[0052] In S202, the packet receiving unit 114 receives the IP packet. In S204, the route control unit 120 executes a destination route search for the received IP packet received in S102, using the reception routing table 102. If there is a match with an entry in the reception routing table 102, the process proceeds to S206, and if there is no match, the process ends.
[0053] In S206, the route control unit 120 removes the IP header, UDP header, and GTP-U header from the received IP packet and stores it separately. In S208, the route control unit 120 starts a destination route search for the payload IP packet.
[0054] In S210, the route control unit 120 executes a destination route search for the payload IP packet using the payload forwarding routing table 104. If there is a match with an entry in the payload forwarding routing table 104, the process proceeds to S212, and if there is no match, the process proceeds to S214. In S212, the route control unit 120 forwards the payload IP packet encapsulated with an appropriate header to the destination as a transmission IP packet.
[0055] In S214, the route control unit 120 restores the received IP packet by returning the IP header, UDP header, and GTP-U header that were separately stored in S206 to the payload IP packet. The route control unit 120 may restore the received IP packet by moving the pointer according to the difference indicated by the memory location difference information.
[0056] In S216, the route control unit 120 starts a destination route search for the restored received IP packet using the fallback routing table 106. The route control unit 120 executes a destination route search for the restored received IP packet using the fallback routing table 106. In S218, the route control unit 120 transfers the restored received IP packet to the destination.
[0057] As described above, the gateway device 100 may implement the packet forwarding process by software processing. Here, an implementation example using VPP (Vector Packet Processing) will be described as an implementation example by software processing.
[0058] FIG. 5 shows an example of a setting 300 in a VPP. The gateway device 100 may define various information using an SR policy, such as "sr policy add bsid b:: behavior tmgtp4.dt :: / 0 v6src_prefix d1:: / 48 fib-table XXX teid 1 / 32 fallback-fib-table YYY" shown in FIG. 5. The gateway device 100 may define gtp4.dt as a processing entity. gtp4.dt may be a packet processing unit. gtp6.dt may be a packet processing unit. The gateway device 100 may define gtp6.dt as a processing entity. The gateway device 100 may specify XXX as a fib table for payload IP packet forwarding. The gateway device 100 may specify YYY as a fallback-fib fib table.
[0059] The gateway device 100 may set the routing entry XXXX / 32 for forwarding the received IP packet by specifying Z as the fib table for forwarding the received IP packet, for example, as “sr steer l3 XXXX / 32 via bsid b:: fib-table Z” shown in FIG. 5.
[0060] For example, when a packet with fallback-fib setting is targeted in packet processing in a node of gtp4 / 6.dt (gtp4.dt or gtp6.dt), the gateway device 100 records the fallback destination fib table, the address family of the received packet, and the movement amount of the buffer position pointer in the metadata of the packet, and sets the next node to ip4 / 6 (ip4 or ip6)-lookup. ip4 / 6 (ip4 or ip6)-lookup may be a first route search unit. A route with fallback as the next hop is created in the fib of the payload IP packet. The route may be, for example, a default route. When processing is performed in ip4 / 6-lookup of the payload IP packet, if it matches a route with fallback as the next hop, the gateway device 100 sets the ip4 / 6-fallback node as the next node, and if it does not match, sets the next node according to the route. ip4 / 6-fallback may be a fallback processing unit. In the ip4 / 6-fallback node, the fib table is changed to a fallback fib table, the buffer position pointer is moved back by the amount of movement of the buffer position pointer recorded in the metadata, and the ip4 / 6-lookup node of the address family of the received packet recorded in the metadata is set as the next node.
[0061] The gateway device 100 does not need to use the portion of the setting 300 illustrated in FIG. 5 , “ip route add 0.0.0.0 / 0 table XXX via fallback.”
[0062] For example, when a packet with fallback-fib setting is targeted in the node processing of gtp4 / 6.dt, the gateway device 100 performs an on-the-spot destination route search for the payload IP packet to check the existence of a route in the fib table for payload IP packets, and if a route exists, it proceeds as is; if no route exists, it rewinds the buffer position pointer to restore the received packet, and then makes the appropriate ip4 / 6-lookup node according to the address family the next node.
[0063] As another method, when a packet with fallback-fib setting is targeted in the node processing of gtp4 / 6.dt, the gateway device 100 records the address family of the received packet in the metadata, checks the address family of the payload IP packet, and sets the gtp-fallback4 / 6 node as the next node according to the result. The gtp-fallback4 / 6 node may be a second route search unit. In the gtp-fallback4 / 6 node, the gateway device 100 advances the buffer position pointer to the payload IP packet, performs lookup in the set fib table, and if the route does not exist (=drop), changes the fib table to a fallback fib table, returns the buffer position pointer to the position of the received IP packet, restores the received packet, and sets the ip4 / 6-lookup node as the next node according to the recorded address family. If the route exists, the next node according to the lookup result is set as the next node.
[0064] As another method, when a packet with fallback-fib setting is targeted in node processing of gtp4 / 6.dt, the gateway device 100 records the fallback destination fib table, the address family of the received packet, and the movement amount of the buffer position pointer in the metadata of the packet, and sets the next node to ip4 / 6-fallback. In this case, ip4 / 6-fallback may be a second route search unit. In ip4 / 6-fallback, a lookup is performed in the set fib table, and if a route does not exist (=drop), the fib table is changed to a fallback fib table, the pointer is moved back by the recorded movement amount of the buffer position pointer, and the ip4 / 6-lookup node of the recorded address family is set as the next node. If a route exists, the next node according to the lookup result is set as the next node.
[0065] As described above, the gateway device 100 may implement the packet forwarding process by hardware processing. Here, an implementation example using a packet switching programmable ASIC will be described as an implementation example by hardware processing.
[0066] An example of the configuration of a packet switching programmable ASIC is shown in FIG 6. First, an implementation in which a lookup is performed only once for an inner packet will be described.
[0067] Using a language such as P4 (Programming Protocol-Independent Packet Processors), fields are generated in the PHV (Packet Header Vector) of the ASIC's packet processing pipeline to store the outer IPv4 / v6 header, UDP header, and GTP-U header, as well as a field that specifies the fib to look up when falling back.
[0068] Next, the ASIC inputs the received packet into the Pipeline.
[0069] Next, the Pipeline's Ingress Parser stores the header information of the received packet and the inner payload packet in the PHV. For received packet headers, the Outer IPv4 / v6 header, UDP header, and GTP-U header are stored in the PHV. If the UDP header can be considered a standard, the UDP header field may be omitted. The PHV fields that store the Outer IPv4 / v6 header, UDP header, and GTP-U header are stored until it is determined whether or not a matching table entry exists in the next or subsequent stages that the Pipeline passes through.
[0070] Next, in the pipeline, in the MAU (Match Action Unit) stage following the Ingress Parser, a lookup of the inner payload packet is performed. If a table entry matching the inner payload packet header is found in any MAU stage in the pipeline, the processing indicated by the matching entry is performed.
[0071] Next, if a matching table entry is not found at any MAU stage in the pipeline, or if a table entry indicating a fallback is hit, the original received IP packet is restored using the received IP packet header (outer IPv4 / IPv6 header, UDP header, GTP-U header) stored in the PHV at any MAU stage before the packet is output from the pipeline to the packet buffer, and then the received IP packet is output to the packet buffer and appropriate header information is added to the received IP packet, or header information is added and changed, via the Egress Pipeline, and the packet is sent to the appropriate output interface.
[0072] Next, an implementation in which a lookup is performed twice, in an Inner packet and an Outer packet, will be described.
[0073] Using a language such as P4, fields are generated in the PHV (Packet Header Vector) of the ASIC's packet processing pipeline to store the outer IPv4 / v6 header, UDP header, and GTP-U header, as well as a field that specifies the fib to look up when falling back.
[0074] Next, the ASIC inputs the received packet into the Pipeline.
[0075] Next, the Pipeline's Ingress Parser stores the header information of the received packet and the inner payload packet in the PHV. For received packet headers, the Outer IPv4 / v6 header, UDP header, and GTP-U header are stored in the PHV. If the UDP header can be considered a standard, the UDP header field may be omitted. The PHV fields that store the Outer IPv4 / v6 header, UDP header, and GTP-U header are stored until it is determined whether or not a matching table entry exists in the next or subsequent stages that the Pipeline passes through.
[0076] Next, in the pipeline, in the MAU (Match Action Unit) stage following the Ingress Parser, a lookup of the inner payload packet is performed. If a table entry matching the inner payload packet header is found in any MAU stage in the pipeline, the processing indicated by the matching entry is performed.
[0077] If no matching table entry is found at any MAU stage in the Pipeline, or if a table entry indicating fallback is hit, or if the Egress Pipeline does not have the ability to perform a fib lookup, the Outer IPv4 / v6 header, UDP header, and GTP-U header stored in the PHV are used to look up the fallback fib table at any MAU stage before the Pipeline outputs the packet to the packet buffer. If a table entry matching the received IP packet header is found, the original received IP packet is restored and output to the packet buffer as the processing indicated by the matching entry. If the Egress Pipeline has the ability to perform a fib lookup, the Ingress Pipeline restores the original received IP packet without looking up the fallback fib table, and then outputs to the packet buffer.
[0078] If the Egress Pipeline has the ability to perform fib lookup, the ASIC outputs the restored received packet to the packet buffer and then inputs it to the Egress Pipeline. At that time, in one of the MAU stages in the Egress Pipeline, the ASIC stores in the PHV a value that specifies the fib table to use to look up the restored received packet.
[0079] At any MAU stage in the Egress Pipeline, the restored received packet is looked up, and if a matching table entry is found, the processing indicated by the matching entry is performed. If a matching table entry is not found at any MAU stage, a predefined processing such as dropping the packet is performed. If the Egress Pipeline does not have the ability to perform fib lookup, the ASIC may output the restored received packet to a packet buffer and add appropriate header information to the received IP packet through the Egress Pipeline, or add and change header information, and send it to the appropriate output interface.
[0080] 7 is a schematic diagram showing an example of a hardware configuration of a computer 1200 functioning as the gateway device 100. A program installed on the computer 1200 can cause the computer 1200 to function as one or more "parts" of the device according to the present embodiment, or cause the computer 1200 to execute operations or one or more "parts" associated with the device according to the present embodiment, and / or cause the computer 1200 to execute a process or steps of the process according to the present embodiment. Such a program can be executed by the CPU 1212 to cause the computer 1200 to execute specific operations associated with some or all of the blocks of the flowcharts and block diagrams described herein.
[0081] The computer 1200 according to this embodiment includes a CPU 1212, a RAM 1214, and a graphics controller 1216, which are connected to each other by a host controller 1210. The computer 1200 also includes input / output units such as a communication interface 1222, a storage device 1224, a DVD drive, and an IC card drive, which are connected to the host controller 1210 via an input / output controller 1220. The DVD drive may be a DVD-ROM drive, a DVD-RAM drive, etc. The storage device 1224 may be a hard disk drive, a solid state drive, etc. The computer 1200 also includes a legacy input / output unit such as a ROM 1230 and a keyboard, which are connected to the input / output controller 1220 via an input / output chip 1240.
[0082] The CPU 1212 operates according to a program stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphic controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into itself, and causes the image data to be displayed on the display device 1218.
[0083] The communication interface 1222 communicates with other electronic devices via a network. The storage device 1224 stores programs and data used by the CPU 1212 in the computer 1200. The DVD drive reads programs or data from a DVD-ROM or the like and provides them to the storage device 1224. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.
[0084] The ROM 1230 stores therein a boot program or the like that is executed by the computer 1200 upon activation, and / or a program that depends on the hardware of the computer 1200. The input / output chip 1240 may also connect various input / output units to the input / output controller 1220 via a USB port, a parallel port, a serial port, a keyboard port, a mouse port, and the like.
[0085] The programs are provided by a computer-readable storage medium such as a DVD-ROM or an IC card. The programs are read from the computer-readable storage medium, installed in the storage device 1224, the RAM 1214, or the ROM 1230, which are also examples of computer-readable storage media, and executed by the CPU 1212. Information processing described in these programs is read by the computer 1200, and brings about cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be constructed by implementing operations or processing of information according to the use of the computer 1200.
[0086] For example, when communication is performed between the computer 1200 and an external device, the CPU 1212 may execute a communication program loaded in the RAM 1214 and instruct the communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 1212, the communication interface 1222 reads transmission data stored in a transmission buffer area provided in the RAM 1214, the storage device 1224, a DVD-ROM, or a recording medium such as an IC card, and transmits the read transmission data to a network, or writes reception data received from the network to a reception buffer area or the like provided on the recording medium.
[0087] Furthermore, the CPU 1212 may cause all or a necessary portion of a file or database stored in an external recording medium such as the storage device 1224, a DVD drive (DVD-ROM), an IC card, etc. to be read into the RAM 1214, and perform various types of processing on the data on the RAM 1214. The CPU 1212 may then write back the processed data to the external recording medium.
[0088] Various types of information, such as various types of programs, data, tables, and databases, may be stored in the recording medium and undergo information processing. The CPU 1212 may perform various types of processing on the data read from the RAM 1214, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequence of the program, and write back the results to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. in the recording medium. For example, when a plurality of entries each having an attribute value of a first attribute associated with an attribute value of a second attribute are stored in the recording medium, the CPU 1212 may search for an entry whose attribute value of the first attribute matches a specified condition from among the plurality of entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.
[0089] The above-described programs or software modules may be stored in a computer-readable storage medium on the computer 1200 or in the vicinity of the computer 1200. In addition, a recording medium such as a hard disk or a RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a computer-readable storage medium, thereby providing the programs to the computer 1200 via the network.
[0090] The blocks in the flowcharts and block diagrams in the present embodiment may represent stages of a process in which an operation is performed or "parts" of an apparatus responsible for performing the operation. Particular stages and "parts" may be implemented by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable storage medium, and / or a processor provided with computer-readable instructions stored on a computer-readable storage medium. The dedicated circuitry may include digital and / or analog hardware circuits, and may include integrated circuits (ICs) and / or discrete circuits. The programmable circuitry may include reconfigurable hardware circuits, such as, for example, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), and the like, including AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements.
[0091] A computer-readable storage medium may include any tangible device capable of storing instructions that are executed by a suitable device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture that includes instructions that can be executed to create means for performing the operations specified in the flowcharts or block diagrams. Examples of computer-readable storage media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, and the like. More specific examples of computer-readable storage media may include floppy disks, diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), electrically erasable programmable read-only memories (EEPROMs), static random access memories (SRAMs), compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), Blu-ray disks, memory sticks, integrated circuit cards, and the like.
[0092] The computer readable instructions may include either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages such as the “C” programming language or similar programming languages.
[0093] Computer readable instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, or to a programmable circuit, either locally or over a local area network (LAN), a wide area network (WAN), such as the Internet, etc., to cause the processor of the general purpose computer, special purpose computer, or other programmable data processing apparatus, or to a programmable circuit, to execute the computer readable instructions to generate means for performing the operations specified in the flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
[0094] Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It is clear to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the description of the claims that such modifications and improvements can also be included in the technical scope of the present invention.
[0095] It should be noted that the order of execution of each process, such as operations, procedures, steps, and stages, in the devices, systems, programs, and methods shown in the claims, specifications, and drawings is not specifically stated as "before" or "prior to," and that the process may be performed in any order unless the output of a previous process is used in a later process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, it does not mean that the process must be performed in this order. [Explanation of symbols]
[0096] 100 Gateway device, 102 Receiving routing table, 104 Payload transfer routing table, 106 Fallback routing table, 112 Memory unit, 114 Packet receiving unit, 120 Route control unit, 122 Packet processing unit, 124 Route search unit, 126 Route search unit, 128 Fallback processing unit, 210 Received IP packet, 212 IP / UDP header, 214 GTP-U header, 216 Payload IP packet, 220 Transmitted IP packet, 222 SRv6 header, 226 Payload IP packet, 230 Transmitted IP packet, 232 IP / UDP header, 234 GTP-U header, 236 Payload IP packet, 300 Setting, 1200 Computer, 1210 Host controller, 1212 CPU, 1214 RAM, 1216 Graphic controller, 1218 Display device, 1220 Input / output controller, 1222 Communication interface, 1224 storage device, 1230 ROM, 1240 input / output chip
Claims
1. a receiving routing table for forwarding a received IP packet in which a payload IP packet is encapsulated and received from an external device; a payload forwarding routing table for forwarding the payload IP packets; a fallback routing table for forwarding the received IP packet when an entry for forwarding the payload IP packet included in the received IP packet is not included in the payload forwarding routing table; A gateway device comprising:
2. A packet receiving unit for receiving IP packets; a route control unit that performs control so as to execute a destination route search for the received IP packet received by the packet receiving unit using the reception routing table, and if a route for the received IP packet exists, executes a destination route search for the payload IP packet using the payload transfer routing table, and if a route for the payload IP packet exists, transmits the payload IP packet to a destination, and if a route for the payload IP packet does not exist, executes a destination route search for the received IP packet using the fallback routing table. The gateway device according to claim 1 .
3. the received IP packet includes an IP header, a UDP header, a GTP-U header, and the payload IP packet; 3. The gateway device according to claim 2, wherein, when a route for the payload IP packet exists, the route control unit transmits the payload IP packet encapsulated with an appropriate header according to a result of a destination route search for the payload IP packet to the destination.
4. 4. The gateway device according to claim 3, wherein, when a route for the payload IP packet exists, the route control unit converts the IP header, the UDP header, and the GTP-U header into an IPv6 header, or a header conforming to SRv6 including an IPv6 header and an SR header, and transmits the received IP packet to the destination.
5. 5. The gateway device according to claim 2, wherein, when a route for the received IP packet exists, the route control unit determines memory position difference information indicating a difference between memory positions of the received IP packet and the payload IP packet, advances a pointer to the payload IP packet, and executes a destination route search for the payload IP packet by using the payload transfer routing table, and when a route for the payload IP packet does not exist, restores the received IP packet by using the memory position difference information, and executes a destination route search for the received IP packet by using the fallback routing table.
6. the received IP packet includes an IP header, a UDP header, a GTP-U header, and the payload IP packet; 5. The gateway device according to claim 2, wherein the route control unit controls so that, when a route for the received IP packet exists, the IP header, the UDP header, and the GTP-U header are removed from the received IP packet, and a destination route search for the payload IP packet is performed using the payload transfer routing table, and, when a route for the payload IP packet does not exist, the received IP packet is restored using the IP header, the UDP header, and the GTP-U header, and a destination route search for the received IP packet is performed using the fallback routing table.
7. When a route for the received IP packet exists, the route control unit: When a GTP-U message type in a GTP header of the received IP packet satisfies a first condition, a destination route search for the payload IP packet is performed using the payload forwarding routing table, and when a route for the payload IP packet exists, the payload IP packet encapsulated with an appropriate header according to the destination route search result for the payload IP packet is transmitted to a destination, and when a route for the payload IP packet does not exist, a destination route search for the received IP packet is performed using the fallback routing table; 5. The gateway device according to claim 2, wherein when a GTP-U message type in a GTP header of the received IP packet satisfies a second condition, the gateway device controls to perform a destination route search of the received IP packet using the fallback routing table, without performing a destination route search using the payload transfer routing table.
8. The route control unit includes: when a value of a GTP-U message type in a GTP-U header of the received IP packet is 255, a destination route search for the payload IP packet is performed using the payload forwarding routing table, and when a route for the payload IP packet exists, the payload IP packet encapsulated with an appropriate header according to the destination route search result for the payload IP packet is transmitted to a destination, and when a route for the payload IP packet does not exist, the destination route search for the received IP packet is performed using the fallback routing table; 8. The gateway device according to claim 7, wherein, when a value of a GTP-U message type in a GTP-U header of the received IP packet is within a range of 0 to 254, a destination route search is not performed using the payload transfer routing table, and a destination route search for the received IP packet is performed using the fallback routing table.
9. 5. The gateway device according to claim 1, further comprising a routing table capable of registering a routing entry that specifies the payload transfer routing table and is capable of specifying the fallback routing table.
10. 5. The gateway device according to claim 1, wherein the reception routing table has a routing entry that specifies the payload forwarding routing table registered in any one of routing tables present in the gateway, and that specifies the fallback routing table by referring to a routing entry that specifies the payload forwarding routing table and the fallback routing table.
11. The gateway device according to claim 1 , wherein the payload forwarding routing table includes a routing entry indicating a fallback.
12. 5. The gateway device according to claim 2, wherein the route control unit controls a routing table set as a fallback routing table from another routing table so that the routing table does not have any setting or routing entry that specifies the other routing table as a fallback routing table.
13. 1. A computer-implemented control method comprising: a packet receiving step of receiving an IP packet, the payload IP packet being encapsulated by an IP header or an IP header and a tunnel protocol header; a route control step of controlling to execute a destination route search for the received IP packet received in the packet reception step, using a reception routing table for transferring the received IP packet, and, if a route for the received IP packet exists, execute a destination route search for the payload IP packet, using a payload transfer routing table for transferring the payload IP packet, and, if a route for the payload IP packet exists, transmit the payload IP packet to the destination of the payload IP packet, or convert a header encapsulating the payload IP packet and transmit it to the destination, and, if a route for the payload IP packet does not exist, execute a destination route search for the received IP packet, using a fallback routing table for transferring the received IP packet when an entry for transferring the payload IP packet is not included in the payload transfer routing table; A control method comprising:
14. A program for causing a computer to execute the control method according to claim 13.
Citation Information
Patent Citations
Network control server, user terminal accommodation node, communication network, and network control program
JP2006245896A
Communication system, global controller, and program
JP2023057080A