Forwarding packets in a gateway performing network address translation (NAT)
First Claim
1. A method of processing a packet in a gateway device connected to a plurality of communication paths providing connection with corresponding networks, said method comprising:
- providing a search utility in said gateway, said search utility enabling the retrieval of both a forwarding information and a network address translation (NAT) information necessary for processing said packet in a single search operation, wherein said NAT information specifies a new address for an original address in said packet, said forwarding information specifying one of said plurality of communication paths to forward said packet, each of said plurality of communication paths being identified by a corresponding physical port;
receiving said packet containing said original address;
determining said forwarding information and said NAT information for said packet in a single search operation by using said search utility;
substituting said new address for said original address in said packet; and
forwarding said packet with said new address on the specified one of said plurality of communication paths in said forwarding information, wherein the providing comprises maintaining a single table for both the forwarding information and the NAT information such that the information can be retrieved in the single search operation, and wherein the table is stored in a content addressable memory (CAM) indexed by a source address and a destination address that are provided as a key in the CAM.
1 Assignment
0 Petitions
Accused Products
Abstract
A gateway device providing a search utility to determine both NAT information and forwarding information (“both pieces of information”) in a single search operation. The single search operation may be implemented using a single table storing both pieces of information necessary for processing a packet. As a result, both pieces of information can be potentially retrieved in a single memory access. Due to the single (or few) memory access, the throughput performance of a gateway may be enhanced. In an embodiment, the gateway is implemented as a service selection gateway which provides connectivity between multiple remote systems and service domains. The NAT/forwarding information is partitioned according to service domains such that the information needed to process packets from/to the same service domain is contained in the same table.
-
Citations
20 Claims
-
1. A method of processing a packet in a gateway device connected to a plurality of communication paths providing connection with corresponding networks, said method comprising:
-
providing a search utility in said gateway, said search utility enabling the retrieval of both a forwarding information and a network address translation (NAT) information necessary for processing said packet in a single search operation, wherein said NAT information specifies a new address for an original address in said packet, said forwarding information specifying one of said plurality of communication paths to forward said packet, each of said plurality of communication paths being identified by a corresponding physical port; receiving said packet containing said original address; determining said forwarding information and said NAT information for said packet in a single search operation by using said search utility; substituting said new address for said original address in said packet; and forwarding said packet with said new address on the specified one of said plurality of communication paths in said forwarding information, wherein the providing comprises maintaining a single table for both the forwarding information and the NAT information such that the information can be retrieved in the single search operation, and wherein the table is stored in a content addressable memory (CAM) indexed by a source address and a destination address that are provided as a key in the CAM. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A gateway device for processing a packet, said gateway device comprising:
-
interface means coupled to a plurality of communication paths, wherein each communication path provides connection with a corresponding network; means for searching enabling the retrieval of both a forwarding information and a network address translation (NAT) information necessary for processing said packet in a single search operation, wherein said NAT information specifies a new address for an original address in said packet, and said forwarding information specifying one of said plurality of communication paths to forward said packet; means for receiving said packet containing said original address; means for determining said forwarding information and said NAT information for said packet by using said single search; means for substituting said new address for said original address in said packet; and means for forwarding said packet with said new address on the communication path specified in said forwarding information, wherein the means for providing comprises maintaining a single table for both the forwarding information and the NAT information such that the information can be retrieved in the single search operation, and wherein the table is stored in a content addressable memory (CAM) indexed by a source address and a destination address that are provided as a key in the CAM. - View Dependent Claims (8, 9, 10)
-
-
11. A computer readable medium storing one or more sequences of instructions for causing a gateway device to process a packet, said gateway device connected to a plurality of communication paths providing connection with corresponding networks, wherein execution of said one or more sequences of instructions by one or more processors contained in said gateway device causes said gateway device to perform the actions of:
-
providing a search utility in said gateway, said search utility enabling the retrieval of both a forwarding information and a network address translation (NAT) information necessary for processing said packet in a single search operation, wherein said NAT information specifies a new address for an original address in said packet and said forwarding information specifies one of said plurality of communication paths to forward said packet; receiving said packet containing said original address; determining said forwarding information and said NAT information for said packet in a single search operation by using said search utility; substituting said new address for said original address in said packet; and forwarding said packet with said new address on the communication path specified in said forwarding information, wherein the providing comprises maintaining a single table for both the forwarding information and the NAT information such that the information can be retrieved in the single search operation, and wherein the table is stored in a content addressable memory (CAM) indexed by a source address and a destination address that are provided as a key in the CAM. - View Dependent Claims (12, 13, 14)
-
-
15. A gateway device for processing a packet, said gateway device comprising:
-
a plurality of ports, each of said plurality of ports being coupled to a corresponding one of a plurality of communication paths providing connection with a corresponding network; a memory unit storing a forwarding information and a network address translation (NAT) information necessary for processing said packet, wherein said NAT information specifies a new address for an original address in said packet, and said forwarding information specifying one of said plurality of communication paths to forward said packet; an inbound interface receiving said packet containing said original address; a forwarding and NAT block determining said forwarding information and said NAT information for said packet using a single search, said forwarding and NAT block substituting said new address for said original address in said packet; and an outbound interface forwarding said packet with said new address on the communication path specified in said forwarding information, wherein the providing comprises maintaining a single table for both the forwarding information and the NAT information such that the information can be retrieved in the single search operation, and wherein the table is stored in a content addressable memory (CAM) indexed by a source address and a destination address that are provided as a key in the CAM. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification