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