Patent ID: 7340746

Claim:
A method for a computer system for providing communication between a first system and a second system, wherein the first system uses IPv4 (Internet Protocol version 4) and the second system uses IPv6 (Internet Protocol version 6), the method comprising: providing an IPv4 application on the first system; inserting an Application Programming Interface (API) level translator layer, wherein the API level translator layer is implemented without using an IPv6 stack; making a function call to a socket API for IPv4; intercepting the function call by the API level translator layer, wherein interception of the function call is not required to occur after a packet is passed to an IPv4 stack; translating the function call to a translated function call wherein the translated function call uses raw sockets; making a function call to the socket API for the translated function call that uses raw sockets; setting the socket option on a raw socket to supply new IP headers; passing the packet to the IPv4 stack; providing an alternate implementation for a sending-related IPv4 socket function, wherein the alternate implementation comprises: intercepting an IPv4 socket API call to send a packet; translating the IPv4 socket API call to use a raw socket; providing transport and IPv6 headers ahead of user supplied payload data; fragmenting the packet as required; calling a corresponding IPv4 socket API function for the raw socked; and passing the packet to the IPv4 stack; and providing an alternate implementation for a reception-related IPv4 socket function, wherein the alternate implementation comprises: receiving an incoming packet on a raw socket; checking a source host to determine the proper destination for the incoming packet as required; checking a port number for the incoming packet; stripping transport and IP headers from the incoming packet; and passing a payload to the IPv4 application.