Claims
- 1. A method of assigning a port for a connection originated by one of multiple application instances, the multiple application instances executing on different data processing systems and utilizing a common network address, comprising:
providing an indication of available ports for the common network address to each of the different data processing systems executing the multiple application instances; and selecting a port identified as available as the port for the connection utilizing the common network address.
- 2. The method of claim 1, wherein providing an indication of available ports comprises maintaining an identification of available ports associated with the common network address in a storage accessible by each of the multiple data processing systems; and
wherein selecting a port comprises selecting a port identified as available in the storage accessible by each of the data processing systems.
- 3. The method of claim 2, wherein the step of selecting a port identified as available is responsive to the one of the multiple applications requesting to establish a connection utilizing the common network address as a source address for the connection.
- 4. The method of claim 2, wherein the common network address is a virtual Internet Protocol address.
- 5. The method of claim 2, wherein the identification of available ports comprises an identification of ports associated with existing connections utilizing the common network address such that ports which are not identified as associated with existing connections are identified as available.
- 6. The method of claim 2, further comprising establishing the connection utilizing the selected port and the common network address as a source network address and port of the connection.
- 7. The method of claim 6, wherein establishing the connection further comprises identifying the selected port as unavailable in the storage accessible by each of the data processing systems.
- 8. The method of claim 7, further comprising:
terminating the connection utilizing the selected port and the common network address; and identifying the selected port as available in the storage accessible by each of the data processing systems.
- 9. The method of claim 2, wherein the different data processing systems comprise a Sysplex and the storage accessible by each of the data processing systems comprises a coupling facility.
- 10. The method of claim 9, wherein the steps of maintaining an identification of available ports associated with the common network address in a storage accessible by each of the data processing systems and selecting a port identified as available in the storage accessible by each of the data processing systems are carried out by communication protocol stacks of the data processing systems.
- 11. The method of claim 10, wherein the step of maintaining an identification of available ports associated with the common network address further comprises:
maintaining a first structure in the coupling facility which indicates whether the port is available for assignment by any of the communication protocol stacks; and maintaining a second structure in the coupling facility for each of the communication protocol stacks which indicates which ports are in use by the corresponding communication protocol stack.
- 12. The method of claim 11, where the step of maintaining further comprises:
detecting a failure of one of the communication protocol stacks; and revising the first structure based on the second structure corresponding to the failed communication protocol stack so as to indicate that the ports in used by the failed communication protocol stack are available for use.
- 13. A method of coordinating port assignments for connections utilizing a dynamic virtual Internet Protocol address (DVIPA) as a source address, wherein the DVIPA is utilized as a source address for connections originated by a plurality of data processing systems, comprising:
maintaining an indication of available ports associated with the DVIPA in a storage facility which is commonly accessible to communication protocol stacks of the plurality of data processing systems; and selecting a port for a connection utilizing the DVIPA as a source address based on the indication of available ports associated with the DVIPA in the storage facility.
- 14. The method of claim 13, wherein maintaining an indication of available ports and selecting a port are carried out by the communication protocol stacks of the plurality of data processing systems.
- 15. The method of claim 14, wherein maintaining an indication of available ports associated with the DVIPA comprises maintaining a structure in a coupling facility of a Sysplex, the structure indicating whether a port is in use by a connection utilizing the DVIPA as a source address.
- 16. The method of claim 15, wherein selecting a port comprises:
accessing the coupling facility to obtain the structure; and evaluating the structure to select a port which is not in use by a connection.
- 17. The method of claim 16, further comprising updating the structure in the coupling facility to reflect that the selected port is in use by a connection utilizing the DVIPA as a source address.
- 18. The method of claim 16, wherein accessing the coupling facility and updating the coupling facility comprise:
obtaining the structure from the coupling facility; locking the structure in the coupling facility to prevent access to the structure by other communication protocol stacks; then revising the structure to reflect that the selected port is in use; returning the structure to the coupling facility; and then unlocking the structure in the coupling facility to allow access to the structure by other communication protocol stacks.
- 18. The method of claim 17, wherein the structure comprises a bitmap and wherein revising the structure comprises setting a bit of the bitmap to a predefined value to indicate that a port corresponding to the bit is in use.
- 19. The method of claim 17, wherein the structure comprises an enumerated list of available ports and wherein revising the structure comprises removing selected port from the enumerated list.
- 20. The method of claim 14, wherein maintaining an indication of available ports and selecting a port are selectively carried out by the communication protocol stacks responsive to a predefined keyword being provided in a configuration statement which defines the DVIPA to the communication protocol stack.
- 21. The method of claim 20, wherein the configuration statement is at least one of a VIPADEFine statement, a VIPADISTribute statement and a VIPARANGE statement.
- 22. The method of claim 20, further comprising updating the indication of available ports to reflect existing connections using the DVIPA if the predefined keyword is added to a configuration statement after initialization of a routing communication protocol stack.
- 23. The method of claim 15, wherein maintaining a structure in a coupling facility further comprises updating the structure in the coupling facility to reflect that a port of a connection utilizing the DVIPA as a source address is not in use when the connection utilizing the DVIPA as a source address terminates.
- 24. The method of claim 23, wherein updating the structure in the coupling facility comprise:
obtaining the structure from the coupling facility; locking the structure in the coupling facility to prevent access to the structure by other communication protocol stacks; then revising the structure to reflect that the port associated with the terminated connection is not in use; returning the structure to the coupling facility; and then unlocking the structure in the coupling facility to allow access to the structure by other communication protocol stacks.
- 25. The method of claim 24, wherein the structure comprises a bitmap and wherein revising the structure comprises setting a bit of the bitmap to a predefined value to indicate that a port corresponding to the bit is not in use.
- 26. The method of claim 24, wherein the structure comprises an enumerated list of available ports and wherein revising the structure comprises adding the port associated with the terminated connection to the enumerated list.
- 27. The method of claim 14, wherein maintaining an indication of available ports associated with the DVIPA comprises maintaining a copy of a connection routing hash table associated with the DVIPA in a coupling facility of a Sysplex, the connection routing hash table indicating source address and source port and destination address and destination port for connections utilizing the DVIPA.
- 28. The method of claim 27, wherein selecting a port comprises:
determining a connection routing hash table entry for a source address and source port and a destination address and destination port of a connection utilizing the DVIPA as a source address; evaluating the connection routing hash table in the coupling facility to determine if an entry exists corresponding to the determined connection routing hash table entry; and selecting the port utilized in determining the connection routing hash table entry if a corresponding entry does not exist.
- 29. The method of claim 27, further comprising updating the connection routing hash table in the coupling facility to incorporate the determined connection routing hash table entry.
- 30. The method of claim 29, wherein evaluating the connection routing hash table and updating the connection routing hash table comprise:
obtaining the connection routing hash table from the coupling facility; locking the structure in the coupling facility to prevent access to the connection routing hash table by other communication protocol stacks; then incorporating the determined connection routing hash table entry into the connection routing hash table; returning the connection routing hash table to the coupling facility; and then unlocking the connection routing hash table in the coupling facility to allow access to the connection routing hash table by other communication protocol stacks.
- 31. The method of claim 27, wherein maintaining a copy of a connection routing hash table in a coupling facility further comprises updating the connection routing hash table in the coupling facility to reflect that a connection utilizing the DVIPA as a source address is not in use when the connection utilizing the DVIPA as a source address terminates.
- 32. The method of claim 31, wherein updating the connection routing hash table in the coupling facility comprises:
obtaining the connection routing hash table from the coupling facility; locking the connection routing hash table in the coupling facility to prevent access to the connection routing hash table by other communication protocol stacks; then revising the connection routing hash table to remove an entry corresponding to the terminated connection; returning the connection routing hash table to the coupling facility; and then unlocking the connection routing hash table in the coupling facility to allow access to the connection routing hash table by other communication protocol stacks.
- 33. The method of claim 13, wherein the step of maintaining an identification of available ports further comprises:
maintaining a first structure in the storage facility which indicates whether the port is available for assignment by any of the communication protocol stacks; and maintaining a second structure in the storage facility for each of the communication protocol stacks which indicates which ports are in use by the corresponding communication protocol stack.
- 34. The method of claim 33, where the step of maintaining further comprises:
detecting a failure of one of the communication protocol stacks; and revising the first structure based on the second structure corresponding to the failed communication protocol stack so as to indicate that the ports in used by the failed communication protocol stack are available for use.
- 35. The method of claim 13, further comprising the steps of:
receiving a bind request to the DVIPA which specifies a port; determining if the specified port is available based on the indication of available ports associated with the DVIPA in the storage facility; and rejecting the bind request if the specified port is not indicated as available.
- 36. The method of claim 35, further comprising the steps of:
accepting the bind request if the specified port is indicated as available; and updating the indication of available ports in the storage facility if the bind request is accepted.
- 37. A system for coordinating port assignments for connections utilizing a dynamic virtual Internet Protocol address (DVIPA) as a source address, wherein the DVIPA is utilized as a source address for connections originated by a plurality of data processing systems, comprising:
a plurality of communication protocol stacks executing on the plurality of data processing systems; a storage facility accessible to the plurality of communication protocol stacks; and wherein the plurality of communication protocol stacks are configured to maintain an indication of available ports associated with the DVIPA in the storage facility and select a port for a connection utilizing the DVIPA as a source address based on the indication of available ports associated with the DVIPA in the storage facility.
- 38. The system of claim 37, wherein the storage facility comprises a coupling facility of a Sysplex and wherein the communication protocol stacks are further configured to maintaining a structure in the coupling facility, the structure indicating whether a port is in use by a connection utilizing the DVIPA as a source address.
- 39. The system of claim 38, wherein the structure comprises a bitmap and wherein the communication protocol stacks are configured to set a bit of the bitmap to a predefined value to indicate that a port corresponding to the bit is in use.
- 40. The system of claim 38, wherein the structure comprises an enumerated list of available ports and wherein the communication protocol stacks are configured to remove the selected port from the enumerated list.
- 41. The system of claim 38, the communication protocol stacks are further configured to maintain a copy of a connection routing hash table associated with the DVIPA in the coupling facility, the connection routing hash table indicating source address and source port and destination address and destination port for connections utilizing the DVIPA.
- 42. The system of claim 41, wherein the communication protocol stacks are further configured to select the port by determining a connection routing hash table entry for a source address and source port and a destination address and destination port of a connection utilizing the DVIPA as a source address, evaluating the connection routing hash table in the coupling facility to determine if an entry exists corresponding to the determined connection routing hash table entry and selecting the port utilized in determining the connection routing hash table entry if a corresponding entry does not exist.
- 43. A system for assigning a port for a connection originated by one of multiple application instances, the multiple application instances executing on different data processing systems and utilizing a common network address, comprising:
means for providing an indication of available ports for the common network address to each of the different data processing systems executing the multiple application instances; and means for selecting a port identified as available as the port for the connection utilizing the common network address.
- 44. A system for coordinating port assignments for connections utilizing a dynamic virtual Internet Protocol address (DVIPA) as a source address, wherein the DVIPA is utilized as a source address for connections originated by a plurality of data processing systems, comprising:
means for maintaining an indication of available ports associated with the DVIPA in a storage facility which is commonly accessible to communication protocol stacks of the plurality of data processing systems; and means for selecting a port for a connection utilizing the DVIPA as a source address based on the indication of available ports associated with the DVIPA in the storage facility.
- 45. A computer program product for assigning a port for a connection originated by one of multiple application instances, the multiple application instances executing on different data processing systems and utilizing a common network address, comprising:
a computer readable media having computer readable program code embodied therein, the computer readable program code comprising:
computer readable program code provides an indication of available ports for the common network address to each of the different data processing systems executing the multiple application instances; and computer readable program code which selects a port identified as available as the port for the connection utilizing the common network address.
- 46. A computer program product for coordinating port assignments for connections utilizing a dynamic virtual Internet Protocol address (DVIPA) as a source address, wherein the DVIPA is utilized as a source address for connections originated by a plurality of data processing systems, comprising:
a computer readable media having computer readable program code embodied therein, the computer readable program code comprising:
computer readable program code which maintains an indication of available ports associated with the DVIPA in a storage facility which is commonly accessible to communication protocol stacks of the plurality of data processing systems; and computer readable program code which selects a port for a connection utilizing the DVIPA as a source address based on the indication of available ports associated with the DVIPA in the storage facility.
RELATED APPLICATIONS
[0001] The present application is related to commonly assigned and concurrently filed U.S. patent application Ser. No. ______, entitled “METHODS, SYSTEMS AND COMPUTER PROGRAM PRODUCTS FOR SOURCE ADDRESS SELECTION” (Attorney Docket No. 5577-234), the disclosure of which is incorporated herein by reference as if set forth fully herein.