Coda File System

Next Previous Contents

7. Multicast

7.1 General Usage

@center( Not written yet )

7.2 Runtime Calls

RPC2_CreateMgrp -- Create a new RPC2 mgroup ID

Call:

RPC2_CreateMgrp( out RPC2_Handle *MgroupHandle, in RPC2_McastIdent *McastAddr, in RPC2_PortalIdent *McastPortal, in RPC2_SubsysIdent *Subsys, in RPC2_Integer SecurityLevel, in RPC2_EncryptionKey SessionKey, in RPC2_Integer EncryptionType, in long SideEffectType )

Parameters:

MgroupHandle

An integer, unique to a specific client, returned by the call. When combined with the clients network address, it uniquely identifies this mgroup connection. This is not necessarily a small-valued integer.,

McastAddr

The IP multicast address of the desired multicast group. This is the address that a server must use in a joingroup () system call. Only MGRPBYINETADDR is supported at present.,

McastPortal

The portal at which server (s) will be listening. All servers in the multicast group must be listening at the same portal.,

Subsys

The RPC2 subsystem corresponding to this multicast group. Each server in the multicast group must have exported this subsystem.,

SecurityLevel

same as in RPC2_Bind().,

SessionKey

Encryption key to be used for all communication on this multicast channel. RPC2 will send this (securely) to each server that is added via a RPC2_AddToMgrp)() call.,

EncryptionType

same as in RPC2_Bind)().,

Completion Codes:

RPC2_SUCCESS)

All went well,

RPC2_SEFAIL1)

Side effect routines reported failure.,

RPC2_SEFAIL2)

Side effect routines reported failure.,

RPC2_FAIL),

Some other mishap occurred.,

Description:

Creates a new RPC2 mgroup identifier, unique to a particular < multicastaddr, portal, subsystem > combination, and returns it to the caller. Once the identifier has been assigned, RPC2 mgroup members may be added and deleted via the RPC2_AddToMgrp) and RPC2_RemoveFromMgrp calls. The security level, encryption type and side effect types of each added connection must match the corresponding parameters of this RPC2_CreateMgrp call.

RPC2_AddToMgrp -- Add a connection ID (server) to an RPC2 mgroup

Call:

RPC2_AddToMgrpAdd( in RPC2_Handle MgroupHandle, in RPC2_Handle) ConnHandle )

Parameters:

MgroupHandle

identifies the mgroup to which the new server should be added,

ConnHandle

identifies the connection to be added to the mgroup,

Completion Codes:

RPC2_SUCCESS

All went well,

RPC2_NOMGROUP

MgroupHandle is not a valid mgroup,

RPC2_NOCONNECTION

ConnHandle is not a valid connection.,

RPC2_BADSECURITY

SecurityLevel or EncryptionType of ConnHandle does not match that of Mgroup,

RPC2_DUPLICATEMEMBER

ConnHandle is already a member of Mgroup,

RPC2_MGRPBUSY

A call is in progress on MgroupHandle.,

RPC2_CONNBUSY

A call is in progress on ConnHandle.,

RPC2_SEFAIL1

Error code returned by side effect routine.,

RPC2_SEFAIL2

Error code returned by side effect routine.,

RPC2_NAKED

The remote site corresponding to ConnHandle sent an explicit negative acknowledgement. This can happen if that site thought you were dead, or if someone at that site unbound your connection.,

RPC2_DEAD

The remote site corresponding to ConnHandle has been deemed dead or unreachable,

RPC2_FAIL

Some strange mishap occurred.,

Description:

Adds ConnHandle to the mgroup associated with MgroupHandle. RPC2 contacts the remote site to initialize its mgroup connection information. The security level, encryption type and side effect type of the connection being added must match that specified when Mgroup was defined.

RPC2_RemoveFromMgrp -- Remove a connection from an RPC2 mgroup

Call:

RPC2_RemoveFromMgrp( in RPC2_Handle MgroupHandle, in ConnHandle )

Parameters:

MgroupHandle

the mgroup to be shrunk,

ConnHandle

the connection to be removed from MgroupHandle,

Completion Codes:

RPC2_NOMGROUP

MgroupHandle does not refer to a valid mgroup connection,

RPC2_NOCONNECTION

ConnHandle is bogus.,

RPC2_NOTGROUPMEMBER

ConnHandle is not a member of MgroupHandle.,

RPC2_MGRPBUSY

A call is in progress on MgroupHandle,

RPC2_FAIL

Some strange mishap occurred,

Description:

`Removes ConnHandle from the mgroup associated with MgroupHandle

RPC2_DeleteMgrp -- Delete a RPC2 mgroup

Call:

RPC2_DeleteMgrp ( in RPC2_Handle MgroupHandle )

Parameters:

MgroupHandle

the mgroup to be deleted,

Completion Codes:

RPC2_SUCCESS

All went well,

RPC2_NOMGROUP

MgroupHandle is bogus.,

RPC2_MGRPBUSY

A call is in progress on MgroupHandle.,

RPC2_FAIL

Some other mishap occurred.,

Description:

Deletes an mgroup, removing any existing members before deletion


Next Previous Contents