RV_IBC_REGISTER

This ioctl registers an application name for the RVG and returns a key. Only registered application names, using the key, may use the IBC messaging facility on a particular RVG. Multiple application names can be registered for any RVG, up to a maximum of 32.

The ioctl argument structure for the RV_IBC_REGISTER command is:

    struct ibc_register_args {
        char            application_name[NAME_SZ];
        int             deliver_timeout;
        ibc_appid_t     application_id; 
};

Argument deliver_timeout specifies a time-out value in seconds for delivery of an IBC message after it has arrived at the Secondary RVG. When the time-out expires, the Secondary RVG discards the IBC message and continues replication. See RV_IBC_SEND and RV_IBC_RECEIVE for definition of message delivery. A deliver_timeout of 0 is used to specify no time-out.

Argument application_id is returned by the ioctl. It must be supplied as input argument to all other IBC ioctls. The NAME_SZ value is 32.

Use of IBC messages is inherently distributed. A copy or agent of the application is expected to be resident on each participating host, and each participating application must register on its own host. Those resident on the Secondary host must register using an application name identical to the name registered on the Primary host. The returned application_id has a local scope; it can be distributed to any cooperating applications on the same host, but it cannot be used successfully by an application on a remote host.

An IBC message received on the Secondary for an application name that is not registered is discarded after delivery timeout. Registration is not persistent across system reboots. Applications must be registered again after the host reboots. After the Secondary is rebooted, the application must be registered within ten minutes after vxnetd is started if an IBC message has already arrived.

The vxnetd command is started from the system startup script:

/etc/init.d/vxnm-vxnetd

On failure, the errno value can be one of many possible error codes, including generic operating system error codes. However, the only IBC-specific error codes are the following:

EIBC_NOMEM

Maximum number of applications (32) already registered.

EIBC_DUP_APPLICATION

application_name is already registered.