Dynamic VIPA creation results

Table 1 summarizes the results of attempting to create a dynamic VIPA when it (or the same IP address for HOME statement) already exists in the sysplex.
Table 1. Summary of dynamic VIPA creation results
First action Second action Result if second action is on the same stack Result if the second action is on a different stack within the sysplex
bind() bind() Second bind() succeeds, but no new VIPA is created. If both stacks are running V2R10 or later, and the first BIND DVIPA was created with MOVEABLE NONDISRUPTIVE:
  • On stack 2, bind() succeeds
  • On stack 1, the BIND VIPA remains in the HOME list (unadvertised) and any existing connections are preserved
  • New connections to that IP address go to the application on stack 2.
Otherwise, second bind fails.
bind() ioctl() ioctl() fails with warning condition code, but the application associated with the ioctl is still able to use the dynamic VIPA. ioctl() succeeds, bind is deleted (even if BIND DVIPA was created as MOVEABLE NONDISRUPTIVE)
bind() VIPADEFINE VIPADEFINE fails. VIPADEFINE fails.
bind() VIPABACKUP VIPABACKUP fails. VIPABACKUP fails.
bind() HOME See note at end of table. See note at end of table.
ioctl() bind() bind() succeeds, no new VIPA is created. bind() fails.
ioctl() ioctl() Second ioctl() fails with warning condition code, but the application associated with the ioctl is still able to use the dynamic VIPA. Second ioctl() succeeds.

If both stacks are running V2R10 or later, and the ioctl DVIPA on stack 1 was created with MOVEABLE NONDISRUPTIVE, the DVIPA on stack 1 remains in the HOME list (unadvertised) and any existing connections are preserved. Otherwise, the ioctl DVIPA on stack 1 is deleted and any existing connections are broken.

ioctl() VIPADEFINE VIPADEFINE fails. VIPADEFINE fails.
ioctl() VIPABACKUP VIPABACKUP fails. VIPABACKUP fails.
ioctl() HOME See note at end of table. See note at end of table.
VIPADEFINE bind() bind() succeeds, but no new VIPA is created. bind() fails.
VIPADEFINE ioctl() ioctl() fails. ioctl() fails.
VIPADEFINE VIPADEFINE If the second VIPADEFINE statement is an exact duplicate of the first, the second VIPADEFINE is ignored with no error message. For IPv4, the second VIPADEFINE fails if it has different options or a different mask than the first VIPADEFINE specified. For IPv6, the second VIPADEFINE fails if the interface name is already defined with a different address or the address is already defined for a different interface name. For IPv4, the second VIPADEFINE succeeds but activation on stack 2 might be deferred.

If both stacks are running V2R10 or later, and the DVIPA was created on stack 1 as MOVEABLE IMMEDIATE:

  • Second VIPADEFINE is activated immediately
  • Any connections to the DVIPA on stack 1 are preserved. (DVIPA stays in HOME list unadvertised)
Otherwise, the second VIPADEFINE activation is deferred until there are no connections on stack 1, at which point, stack 1 reverts to backup status.

For IPv6, if both the interface name and address on the second VIPADEFINE match the first VIPADEFINE, the DVIPA is activated on stack 2. Any connections to the DVIPA on stack 1 are preserved. If either the interface name or address is the same but the other is not, the second VIPADEFINE fails.

VIPADEFINE VIPABACKUP VIPABACKUP fails. Both succeed.
VIPADEFINE HOME See note at end of table. See note at end of table.
VIPABACKUP bind() bind() fails. If the IP address is already active on the bind() stack, the bind() will succeed. Otherwise, the bind() fails.
VIPABACKUP ioctl() ioctl() fails. ioctl() fails.
VIPABACKUP is backup status VIPADEFINE VIPADEFINE succeeds, replaces the VIPABACKUP.

For IPv6, both the interface name and the address on the VIPADEFINE must match the VIPABACKUP. If one matches and the other does not match, the VIPADEFINE fails.

VIPADEFINE succeeds.

For IPv6, both the interface name and the address on the VIPADEFINE must match the VIPABACKUP. If one matches and the other does not match, the VIPADEFINE fails.

VIPABACKUP in active status (after takeover) VIPADEFINE VIPADEFINE rejected

For IPv4, the VIPABACKUP DVIPA is MOVEABLE IMMEDIATE or WHENIDLE depending how the original VIPADEFINE DVIPA was created.

If both stacks are running V2R10 or later, and the VIPABACKUP DVIPA is MOVEABLE IMMEDIATE:
  • The VIPADEFINE is activated immediately.
  • Any connections to the DVIPA on stack 1 are preserved (DVIPA stays in HOME list unadvertised).
  • When there are no more connections, stack 1 reverts to backup status.

Otherwise, the VIPADEFINE activation on stack 2 is deferred until there are no active connections on stack 1, at which point stack 1 reverts to backup status.

For IPv6, if both the interface name and the address on the VIPADEFINE match the VIPABACKUP, the DVIPA is activated on stack 2. Any connections to stack 1 are preserved. If only one matches, the VIPADEFINE fails.

VIPABACKUP VIPABACKUP If the DVIPA is in backup status on this stack, the second VIPABACKUP succeeds. If the DVIPA is in active status on this stack (for example, after a takeover), a VIPABACKUP with a different rank will be rejected.

For IPv6, both the interface name and address must match the first VIPABACKUP. If one matches and the other is different, the second VIPABACKUP fails.

Second VIPABACKUP succeeds.

For IPv6, both the interface name and address must match the first VIPABACKUP. If one matches and the other is different, the second VIPABACKUP fails.

VIPABACKUP HOME See note at end of table. See note at end of table.
HOME bind() bind() succeeds, but no new VIPA is created. bind() fails.
HOME ioctl() ioctl() fails. ioctl() fails.
HOME VIPADEFINE VIPADEFINE fails. VIPADEFINE fails.
HOME VIPABACKUP VIPABACKUP fails. VIPABACKUP fails.
Note: Defining the same IP address in the HOME list as an existing dynamic VIPA will not be rejected by the TCP/IP stack, but it is likely to cause routing problems.