Gateway device, control method, and program
Patent Information
- Application Number
- PCT/JP2024/010320
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-07
- Filing Date
- 2024-03-15
- Publication Date
- 2025-03-13
Smart Images

Figure JP2024010320_13032025_PF_FP_ABST
Abstract
Description
Gateway device, control method, and program
[0001] The present invention relates to a gateway device, a control method, and a program.
[0002] Patent Document 1 describes an ULCL UPF (Uplink Classifier User Plane Function). [Prior art documents] [Patent documents] [Patent document 1] JP 2021-175108 A General disclosure
[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 encapsulated with a payload IP packet received from an external device. 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 included 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; to perform a destination route search for the payload IP packet using the payload forwarding routing table if a route for the received IP packet exists; to send the payload IP packet to a destination if a route for the payload IP packet exists; and to perform a destination route search for the received IP packet using the fallback routing table if a route for the payload IP packet does not exist. The received IP packet may include an IP header, a UDP header, a GTP-U header, and the payload IP packet; and, if a route for the payload IP packet exists, the route control unit may convert the IP header, UDP header, and GTP-U header into other headers and send the received IP packet to the destination. The route control unit may encapsulate the payload IP packet with an SRv6 header. When the output interface for forwarding the packet is a VLAN interface, the route control unit may use a VLAN header in addition to an Ethernet (registered trademark) header as the appropriate header. When the output interface for forwarding the packet is a VLAN interface and the VLAN interface is also an SRv6 backbone interface, the route control unit may use an Ethernet header, a VLAN header, an IPv6 header, and an SR header as the appropriate header. When a route for the payload IP packet exists, the route control unit may convert the IP header, the UDP header, and the GTP-U header into an IPv6 header or an SRv6-compliant header including an IPv6 header and an SR header, and transmit the received IP packet to the destination. When a route for the payload IP packet exists, the route control unit may transmit the payload IP packet encapsulated with an appropriate header according to the result of the destination route search for the payload IP packet to the destination of 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 in memory location between 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, if 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, if 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, when a route for the received IP packet exists, remove the IP header, UDP header, and GTP-U header from the received IP packet and 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 does not exist, restore the received IP packet using the IP header, UDP header, and GTP-U header and perform a destination route search for the received IP packet using the fallback routing table. The route control unit may control the routing table set as the fallback routing table from another routing table so that it does not have any setting or routing entry that specifies the other routing table as the fallback routing table.
[0007] In any of the gateway devices described above, the route control unit may be configured to: when a route for the received IP packet exists and the received IP packet is not a GTP-U message, perform a destination route search for the payload IP packet using the payload transfer routing table; 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; 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 transfer routing table. The packet that is not a GTP-U message may be a packet whose GTP-U message type is 255. The packet that is a GTP-U message may be a packet whose GTP-U message type is 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 references a routing entry that specifies the payload forwarding routing table and the fallback routing table, the routing entry being 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 that indicates fallback. The route control unit may control a routing table set as the fallback routing table from another routing table so that it does not have a setting or routing entry that specifies the other routing table as the 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 reception 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 controlling: performing a destination route lookup for the received IP packet received in the packet reception step using a reception routing table for forwarding the received IP packet; and, if a route for the received IP packet exists, performing a destination route lookup for the payload IP packet using a payload forwarding routing table for forwarding the payload IP packet; and, if a route for the payload IP packet exists, transmitting the payload IP packet to its destination or converting a header encapsulating the payload IP packet and transmitting it to its destination; and, if a route for the payload IP packet does not exist, performing a destination route lookup 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, and subcombinations of these features may also constitute inventions.
[0012] 1 schematically illustrates an example of a gateway device 100. 1 schematically illustrates an example of the functional configuration of the gateway device 100. 1 schematically illustrates an example of the flow of software processing by the gateway device 100. 1 schematically illustrates an example of the flow of hardware processing by the gateway device 100. 1 schematically illustrates an example of a setting 300. 1 schematically illustrates an example of the configuration of a packet switching programmable ASIC (Application Specific Integrated Circuit). 1 schematically illustrates an example of the hardware configuration of a computer 1200 that functions as the gateway device 100.
[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 as claimed. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0014] A gateway device is known that has the function of converting packets conforming to GTP-U, which is used in mobile networks that communicate using a communication method compliant with the 3rd Generation Partnership Project (3GPP (registered trademark)) standard, into packets conforming to SRv6. For example, the gateway device searches for an entry that matches the destination address of a received IP packet that includes an IP header, a GTP-U header, and a payload IP packet. If an entry is found, the gateway device removes the GTP-U header and performs a route search using a payload forwarding routing table to search for the payload IP packet. If an entry is found, the gateway device adds an IPv6 header, or an IPv6 header and an SRv6 header, and forwards the packet to the SRv6 network. This allows for appropriate conversion, but problems arise when a route search using the payload forwarding routing table is performed and no entries match, 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 was originally supposed to receive it. However, no gateway device had such a function. The gateway device 100 according to this embodiment has a function that contributes to solving this problem.
[0015] 1 schematically illustrates an example of a gateway device 100. The gateway device 100 has a function of converting packets received from a mobile network and transmitting the converted packets to an IP network such as an SR (Segment Routing) network. The gateway device 100, for example, forwards IP packets received from a wireless base station that should normally be forwarded to a node such as a UPF (User Plane Function) based on a GTP-U (GPRS Tunneling Protocol for User Plane) 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 in accordance with the result of a destination route search for the payload IP packet contained in a GTP-U-compliant packet received from a radio base station via a mobile network, and transmits the encapsulated payload IP packet to a server such as an MEC. For example, the gateway device 100 may convert the payload IP packet contained in a GTP-U-compliant packet received from a radio base station via a mobile network into an SRv6-compliant packet or the like in accordance with the result of a destination route search for the payload IP packet, and transmit the encapsulated payload IP packet to a server such as an MEC via an SR network. For example, the gateway device 100 may encapsulate the payload IP packet with an Ethernet header in accordance with the result of a destination route search for the payload IP packet contained in a GTP-U-compliant packet received from a radio base station via a mobile network, and transmit the encapsulated payload IP packet to a server such as an 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, if the output interface for forwarding the packet is a VLAN (Virtual Local Area Network) interface, the gateway device 100 may use a VLAN header in addition to an Ethernet (registered trademark) header as an appropriate header. Furthermore, if 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 appropriate headers. The gateway device may use various headers as appropriate headers based on the type of output interface determined as a result of the route search. Hereinafter, when it is necessary to determine an appropriate header, a header determined by a similar method may be used.
[0018] 1 illustrates a case in which, when the gateway device 100 receives an IP packet 210 including an IP / User Datagram Protocol (UDP) header 212, a GTP-U header 214, and a payload IP packet 216, the gateway device 100 converts the received IP packet 210 into an outgoing 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 outgoing IP packet 220 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 received IP packet 210 and a payload forwarding routing table 104 for forwarding a payload IP packet 216. When the gateway device 100 receives the received IP packet 210, it performs a destination route search for the received IP packet 210 using the reception routing table 102. If a route for the received IP packet 210 exists, the gateway device 100 performs a destination route search for the payload IP packet 216 using the payload forwarding routing table 104. Here, if 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 the 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, conventional network functions would drop the received IP packet 210. However, dropping the received IP packet 210 that should have been forwarded to a node such as a UPF is undesirable because it may result in dropping a packet that should have been forwarded by the mobile network. Furthermore, even if the payload IP packet 216 is matched to a default route and forwarded to the destination it should have been forwarded to, the payload IP packet 216 bypasses 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 102 included in the gateway device 100 may include a routing entry that specifies the payload forwarding routing table 104 and can specify the fallback routing table 106. Alternatively, the reception routing table 102 may include a routing entry that specifies the fallback routing table 106 and specifies the payload forwarding routing table 104. The payload forwarding routing table 104 may include a routing entry indicating a fallback. By including the fallback routing table 106, the gateway device 100 can transmit the received IP packet 210 to its original destination node, such as a UPF, without dropping it when the payload forwarding routing table 104 does not include an entry for forwarding the payload IP packet 216.
[0022] If no route for the payload IP packet 216 exists, the gateway device 100 performs 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 send the received IP packet 210 to the original destination. If the received IP packet 210 can be sent 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 receiving 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 receiving routing table 102, a payload forwarding routing table 104, and a fallback routing table 106 using a fib (forwarding information base) table function.
[0024] 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 to prevent 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 the 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 performs 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, determines memory location difference information indicating the 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 the difference between the memory location of the beginning of the received IP packet 210 and the memory location of the beginning of the payload IP packet 216 included in the received IP packet 210. The gateway device 100 advances a pointer to the beginning of the payload IP packet 216, and performs 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, to the destination, an outgoing 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, depending on the result of the destination route search. If a route for the payload IP packet 216 does not exist, the gateway device 100 restores the received IP packet 210 using the memory location difference information, and performs a destination route search for the received IP packet 210 using the fallback routing table 106. The gateway device 100 transmits, to the destination, an outgoing IP packet 230 including an IP / UDP header 232, a GTP-U header 234, and a payload IP packet 236. 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 a received IP packet 210, for example, in the following manner. The gateway device 100 performs 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 performs 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 adds an IPv6 header or an SRv6 header 222 including an IPv6 header and an SR header to the payload IP packet 226 according to the result of the destination route search, and transmits the resulting IP packet 220 to the destination. If a route for the payload IP packet 216 does not exist, the gateway device 100 restores the received IP packet 210 using the IP / UDP header 212 and the GTP-U header 214, and performs 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, which includes the IP / UDP header 232, the GTP-U header 234, and the payload IP packet 236, to the destination. This enables the gateway device 100 to realize the forwarding of the received IP packet 210 by hardware processing.
[0027] ULCL is a known technology that extracts IP packets that meet specific conditions from IP packets transmitted by a radio base station and transmits them to a different Data Network (DN). Using ULCL, it is possible to forward some IP packets to an MEC and some IP packets to a UPF. However, ULCL requires the establishment of sessions and tunnels between the radio base station, the UPF, and the MEC and the ULCL UPF. In contrast, with the gateway device 100 according to this embodiment, if sessions and tunnels are established between the radio base station and the UPF and between the radio base station and the MEC, for example, the gateway device 100 can control the forwarding of IP packets to the MEC or the UPF, thereby reducing the overall number of sessions and tunnels. This contributes to increased management flexibility and improved communication efficiency.
[0028] 2 shows an example of the 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 include all of these units.
[0029] The storage unit 112 stores various types of 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 IP packets from an external source. The packet receiving unit 114 may receive IP packets from a mobile network. The packet receiving unit 114 may receive IP packets from a wireless base station. The packet receiving unit 114 may receive IP packets in which payload IP packets are encapsulated.
[0031] The route control unit 120 performs a destination route search for a received IP packet received by the packet receiving unit 114 using the reception routing table 102, and if a route for the received IP packet exists, performs a destination route search for a payload IP packet included in the received IP packet using the payload transfer routing table 104. If a route for the payload IP packet exists, the route control unit 120 sends the payload IP packet to the 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 the destination route search for the received IP packet is performed 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 encapsulates the payload IP packet with an appropriate header according to the result of the destination route search and transmits the encapsulated payload IP packet as a transmission IP packet to the destination. The route control unit 120 may, for example, encapsulate the payload IP packet with an SRv6 header.
[0033] If a route for the received IP packet exists, the route control unit 120 may determine memory location difference information indicating the difference in memory location between the received IP packet and the payload IP packet, advance a pointer to the beginning of the payload IP packet, and perform a destination route search for the payload IP packet using the payload forwarding routing table 104; if a route for the payload IP packet does not exist, the route control unit 120 may 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 106.
[0034] If a route for the received IP packet exists, the route control unit 120 may remove the IP header, UDP header, and GTP-U header from the received IP packet and store them separately, and perform a destination route search for the payload IP packet using the payload transfer routing table 104; if a route for the payload IP packet does not exist, the route control unit 120 may restore the received IP packet using the IP header, UDP header, and GTP-U header, and perform 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 it does not have any settings or routing entries that specify the other routing table as the fallback routing table.
[0036] The packet processing unit 122 may process a 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 performs 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] Based on the destination route search result of 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 memory location difference information to the route search unit 124 to start the fallback processing unit 128. 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 memory location difference information to the fallback processing unit 128 to start the fallback processing unit 128. The fallback processing unit 128 may start a destination route search for the received IP packet using the fallback routing table 106 and the memory location difference information.
[0039] The route search unit 126 searches for a destination route of the payload IP packet 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 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 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.
[0041] The packet processing unit 122 may perform a destination route search for the payload IP packet using the payload transfer 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 processing content depending on whether the received IP packet is a GTP-U message. For example, if 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 transfer routing table 104, and if 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. If 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, if 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 transfer routing table.
[0043] The gateway device 100 identifies whether a 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 GTP-U message type value 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. Furthermore, if the GTP-U message type value 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 of the received IP packet depending on the GTP-U message type, a GTP-U message required for maintaining and managing a session, such as a PDU session, to which the GTP-U message belongs is forwarded to the UPF through a route search performed using the fallback routing table 106. This allows for reliable route search and fallback processing for payload IP packets while maintaining sessions such as anchor PDU sessions.
[0044] The gateway device 100 may change the processing content 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 for the payload IP packet using the payload transfer routing table 104, and if 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. If 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 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 for the received IP packet using the fallback routing table 106 without performing a destination route search using the payload transfer routing table. The first condition may be met if 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 in the range of 0 to 254.
[0045] 3 shows an example of the flow of software processing by the gateway device 100. Here, the flow of processing from receiving an IP packet to forwarding the IP packet will be described.
[0046] In step (sometimes abbreviated as S) 102, the packet receiving unit 114 receives an IP packet. In S104, the route control unit 120 searches for a destination route 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 S106; 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 locations of the received IP packet and 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 searches for a destination route 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 encapsulates the payload IP packet with an appropriate header and forwards it to the destination as a transmission IP packet.
[0049] In S114, the route control unit 120 restores the received IP packet 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 initiates 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 forwards the restored received IP packet to the destination.
[0051] 4 shows an example of the flow of hardware processing by the gateway device 100. Here, the flow of processing 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 performs 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; 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 searches for a destination route 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 encapsulates the payload IP packet with an appropriate header and forwards it 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 initiates 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 forwards 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 example of implementing the 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 forwarding payload IP packets. The gateway device 100 may specify YYY as the fallback-fib fib table.
[0059] The gateway device 100 may set the routing entry X.X.X.X / 32 for forwarding the received IP packet by specifying Z as the fib table for forwarding the received IP packet, as in "sr steer l3 XXXX / 32 via bsid b:: fib-table Z" shown in FIG. 5 .
[0060] For example, when a packet with a fallback-fib setting is targeted during packet processing within a gtp4 / 6.dt (gtp4.dt or gtp6.dt) node, 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 packet metadata, and sets the next node to ip4 / 6 (ip4 or ip6)-lookup. ip4 / 6 (ip4 or ip6)-lookup may be the first route search unit. A route with fallback as the next hop is created in the fib of the payload IP packet. This route may be, for example, a default route. When processing is performed by the IP4 / 6-lookup of the payload IP packet, if the route matches a route in which the fallback is the next hop, the gateway device 100 sets the IP4 / 6-fallback node as the next node; if there is no match, the gateway device 100 sets the next node according to the route. The IP4 / 6-fallback may be a fallback processing unit. The IP4 / 6-fallback node changes the fib table to a fallback fib table, moves the buffer position pointer back by the amount of movement of the buffer position pointer recorded in the metadata, and sets the IP4 / 6-lookup node of the address family of the received packet recorded in the metadata as the next node.
[0061] The gateway device 100 does not need to use the part "ip route add 0.0.0.0 / 0 table XXX via fallback" in the setting 300 illustrated in FIG.
[0062] For example, when a packet with fallback-fib setting is targeted in the node processing of gtp4 / 6.dt, the gateway device 100 immediately checks the existence of a destination route for the payload IP packet in the fib table for the payload IP packet, and if a route exists, it remains as is; if a route does not exist, it rewinds the buffer position pointer to restore the received packet, and then sets the appropriate ip4 / 6-lookup node according to the address family as the next node.
[0063] As another method, for example, when a packet with fallback-fib settings 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, then checks the address family of the payload IP packet, and selects the GTP-Fallback4 / 6 node as the next node depending on the result. The GTP-Fallback4 / 6 node may be a second route search unit. Within the GTP-Fallback4 / 6 node, the gateway device 100 advances the buffer position pointer to the payload IP packet, performs a lookup in the set fib table, and if there is no route (= drop), changes the fib table to the fallback fib table, returns the buffer position pointer to the position of the received IP packet, restores the received packet, and selects the IP4 / 6-lookup node as the next node depending on the recorded address family. If a path exists, the next node according to the lookup result is set as the next node.
[0064] As another method, for example, when a packet with a fallback-fib setting is targeted within the 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 packet metadata, and sets the next node to ip4 / 6-fallback. In this case, ip4 / 6-fallback may be a second route search unit. Within ip4 / 6-fallback, a lookup is performed using the set fib table, and if a route does not exist (= drop), the fib table is changed to the fallback fib table, the pointer is moved back by the amount of movement of the recorded buffer position pointer, and the ip4 / 6-lookup node of the recorded address family is set as the next node. If a path 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 example of implementing the hardware processing.
[0066] 6 shows an example of the configuration of a packet switching programmable ASIC. First, an implementation in which lookup is performed using only one inner packet will be described.
[0067] Using a language such as P4 (Programming Protocol-Independent Packet Processors), fields for storing the Outer IPv4 / v6 header, UDP header, and GTP-U header, and a field for specifying the fib to look up when fallback occurs, are generated in the PHV (Packet Header Vector) of the ASIC packet processing pipeline.
[0068] Next, the ASIC inputs the received packet into the Pipeline.
[0069] Next, the Ingress Parser of the Pipeline stores the header information of the received packet and the Inner payload packet in the PHV. The Outer IPv4 / v6 header, UDP header, and GTP-U header of the received packet are stored in the PHV. If the UDP header can be considered a standard, the UDP header field may be omitted. The PHV field storing the Outer IPv4 / v6 header, UDP header, and GTP-U header is saved until the existence of a matching table entry is determined in the next or subsequent stages passed through in the Pipeline.
[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 that matches the Inner payload packet header is found in any MAU stage in the pipeline, the process indicated by the matching entry is performed.
[0071] Next, if a matching table entry is not found in any MAU stage in the Pipeline, or if a table entry indicating 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 original 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 an appropriate output destination interface.
[0072] Next, an implementation in which lookup is performed twice, in an inner packet and an outer packet, will be described.
[0073] Using the P4 language or the like, fields for storing the Outer IPv4 / v6 header, UDP header, and GTP-U header, and a field for specifying the fib to look up when fallback occurs are generated in the PHV (Packet Header Vector) of the ASIC packet processing pipeline.
[0074] Next, the ASIC inputs the received packet into the Pipeline.
[0075] Next, the Ingress Parser of the Pipeline stores the header information of the received packet and the Inner payload packet in the PHV. The Outer IPv4 / v6 header, UDP header, and GTP-U header of the received packet are stored in the PHV. If the UDP header can be considered a standard, the UDP header field may be omitted. The PHV field storing the Outer IPv4 / v6 header, UDP header, and GTP-U header is saved until the existence of a matching table entry is determined in the next or subsequent stages passed through in the Pipeline.
[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 that matches the Inner payload packet header is found in any MAU stage in the pipeline, the process indicated by the matching entry is performed.
[0077] If a matching table entry is not found in 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 fib lookup, the fallback fib table is looked up using the Outer IPv4 / v6 header, UDP header, and GTP-U header stored in the PHV at any MAU stage before the packet is output from the Pipeline to the packet buffer. If a table entry matching the received IP packet header is found, the original received IP packet is restored as the process indicated by the matching entry, and then output to the packet buffer. 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 the packet to the packet buffer.
[0078] If the Egress Pipeline has the capability to perform fib lookup, the ASIC outputs the restored received packet to a packet buffer and then inputs it to the Egress Pipeline. At this time, in one of the MAU stages in the Egress Pipeline, the ASIC stores in the PHV a value specifying a fib table for lookup of 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, predefined processing such as dropping the packet is performed. If the Egress Pipeline does not have the ability to perform a fiber lookup, the ASIC may output the restored received packet to a packet buffer and add appropriate header information to the received IP packet, or add and change header information, through the Egress Pipeline, and transmit the packet to an appropriate output interface.
[0080] 7 schematically illustrates an example of the 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 can cause the computer 1200 to perform operations associated with the device according to the present embodiment or one or more "parts," and / or can cause the computer 1200 to perform a process according to the present embodiment or steps of the process. Such a program can be executed by the CPU 1212 to cause the computer 1200 to perform specific operations associated with some or all of the blocks in 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 interconnected by a host controller 1210. The computer 1200 also includes input / output units such as a communications 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, or the like. The storage device 1224 may be a hard disk drive, a solid-state drive, or the like. The computer 1200 also includes a ROM 1230 and a legacy input / output unit such as a keyboard, which are connected to the input / output controller 1220 via an input / output chip 1240.
[0082] The CPU 1212 operates according to programs stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphics controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into the graphics controller 1216 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 programs that depend 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, etc.
[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, RAM 1214, or 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 a method may be configured by implementing operations or processing of information in accordance with the use of the computer 1200.
[0086] For example, when communication is performed between computer 1200 and an external device, CPU 1212 may execute a communication program loaded into RAM 1214 and instruct communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of CPU 1212, communication interface 1222 reads transmission data stored in a transmission buffer area provided in RAM 1214, 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 received 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 may 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 on the recording medium and may undergo information processing. The CPU 1212 may perform various types of processing on 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 sequences of the programs, and write the results back to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. on the recording medium. For example, if multiple entries, each having an attribute value of a first attribute associated with an attribute value of a second attribute, are stored on 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 multiple 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 or near the computer 1200. A recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can also 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 embodiments may represent stages of a process in which an operation is performed or "parts" of a device 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 field programmable gate arrays (FPGAs) and programmable logic arrays (PLAs), 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 an appropriate device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including 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, magnetic, optical, electromagnetic, and semiconductor storage media. 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 disc read-only memories (CD-ROMs), digital versatile discs (DVDs), Blu-ray discs, 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 locally or over a local area network (LAN), a wide area network (WAN) such as the Internet, to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, or programmable circuitry, such that the processor or programmable circuitry executes 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 will be apparent to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the claims that such modifications and improvements can also be included within the technical scope of the present invention.
[0095] It should be noted that the execution order 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," "prior to," etc., and that the processes can be performed in any order unless the output of a previous process is used in a subsequent process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, this does not mean that the processes must be performed in this order.
[0096] 100 Gateway device, 102 Receiving routing table, 104 Payload transfer routing table, 106 Fallback routing table, 112 Storage 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 Graphics controller, 1218 Display device, 1220 Input / output controller, 1222 communication interface, 1224 storage device, 1230 ROM, 1240 input / output chip
Claims
1. A gateway device having: a receiving routing table for forwarding a received IP packet in which a payload IP packet is encapsulated and received from an external source; a payload forwarding routing table for forwarding the payload IP packet; and 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.
2. A gateway device as described in claim 1, comprising: a packet receiving unit that receives an IP packet; and 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 receiving routing table, and if a route for the received IP packet exists, to perform a destination route search for the payload IP packet using the payload forwarding routing table, and if a route for the payload IP packet exists, to send the payload IP packet to a destination, and if 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.
3. The gateway device according to claim 2, wherein the received IP packet includes 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 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. 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 compliant with SRv6 including an IPv6 header and an SR header, and transmits the received IP packet to the destination.
5. A gateway device according to any one of claims 2 to 4, wherein the route control unit, when a route for the received IP packet exists, determines memory position difference information indicating a difference in 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, and, when a route for the payload IP packet does not exist, restores the received IP packet using the memory position difference information, and controls to execute a destination route search for the received IP packet using the fallback routing table.
6. The gateway device according to any one of claims 2 to 4, wherein the received IP packet includes an IP header, a UDP header, a GTP-U header, and the payload IP packet, and the route control unit controls, when a route for the received IP packet exists, to remove the IP header, the UDP header, and the GTP-U header from the received IP packet and execute a destination route search for the payload IP packet using the payload transfer routing table, and, when a route for the payload IP packet does not exist, to restore the received IP packet using the IP header, the UDP header, and the GTP-U header and execute a destination route search for the received IP packet using the fallback routing table.
7. The gateway device according to any one of claims 2 to 4, wherein the route control unit controls to perform a destination route search for the payload IP packet using the payload transfer routing table when a route for the received IP packet exists and a GTP-U message type in the GTP header of the received IP packet satisfies a first condition, and to transmit the payload IP packet encapsulated with an appropriate header according to the destination route search result of the payload IP packet to a destination when a route for the payload IP packet exists and to 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, and to perform a destination route search for the received IP packet using the fallback routing table when a GTP-U message type in the GTP header of the received IP packet satisfies a second condition.
8. The gateway device according to claim 7, wherein the route control unit: when a value of a GTP-U message type in a GTP-U header of the received IP packet is 255, performs a destination route search for the payload IP packet using the payload transfer routing table; when a route for the payload IP packet exists, transmits the payload IP packet encapsulated with an appropriate header according to the destination route search result for the payload IP packet to a destination; when a route for the payload IP packet does not exist, controls to perform a destination route search for the received IP packet using the fallback routing table; and when a value of a GTP-U message type in a GTP-U header of the received IP packet is within a range from 0 to 254, controls to perform a destination route search for the received IP packet using the fallback routing table without performing a destination route search using the payload transfer routing table.
9. 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. A gateway device as described in any one of claims 1 to 8, wherein the receiving routing table has a routing entry that specifies the payload forwarding routing table registered in any routing table present in the gateway, and that specifies the payload forwarding routing table and the fallback routing table by referring to a routing entry that specifies 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. A gateway device as claimed in any one of claims 2 to 8, 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 settings or routing entries that specify the other routing table as a fallback routing table.
13. A control method executed by a computer, comprising: a packet reception step of receiving an IP packet in which a payload IP packet is encapsulated with an IP header or an IP header and a tunnel protocol header; and a route control step of performing 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, performing a destination route search for the payload IP packet, using a payload forwarding routing table for forwarding the payload IP packet, and, if a route for the payload IP packet exists, transmitting the payload IP packet to its destination, or converting a header that encapsulates 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 a 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.
14. A program for causing a computer to execute the control method according to claim 13.
Citation Information
Patent Citations
Pcf device, AF device, nef device, and method thereof
JP2021175108A
Network control server, user terminal accommodation node, communication network, and network control program
JP2006245896A
Communication system, global controller, and program
JP2023057080A