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:
|
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:
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:
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. |