Skip to content
Snippets Groups Projects
  • Reiner Hauser's avatar
    b8d65761
    Allow to dynamically allocate a unique multicast address. · b8d65761
    Reiner Hauser authored
    The OKS value of the multicast address is allowed to be * instead of
    a real IP address. In this case the following procedure is used to allocate a
    unique MC address across all partitions. The network/netmask part of the string
    should still be defined, e.g. */10.149.0.0/255.255.0.0.
    
    The allocate_multicast_address() method of NameService should be called by a
    single application in the partition (typically the HLT supervisor). It will
    first iterate over all existing IS objects of type 'MultiCastGroup' in the
    RunParams IS server of the initial partition. If it finds an entry which
    matches its own partition, the multicast address from this object will be
    used. This means that MC groups will be stable as long as the initial partition
    is up and running.
    
    If the method does not find an entry, it will try to insert a new object
    which contains the multicast address as a string in its name. This guarantees
    the uniqueness of the object and therefore address. The method will loop over
    a range of pre-defined multicast address until insertion succeeds. If the range
    is exhausted an exception CannotAllocateMulticast is thrown.
    
    As a final step either the static or dynamically allocated address and network
    are published in the local partition in all DFConfig IS servers as an object
    with the fixed name 'MultiCastAddress'.
    
    The lookup_multicast_address() method simply looks up the latter object in its
    appropriate DFConfig IS server and returns it.
    
    Note that the IS object contains both the partition name and the network part, but
    the latter should always be taken straight from OKS for purposes of configuration.
    The IS object simply contains it as auxilliary information.
    b8d65761
    History
    Allow to dynamically allocate a unique multicast address.
    Reiner Hauser authored
    The OKS value of the multicast address is allowed to be * instead of
    a real IP address. In this case the following procedure is used to allocate a
    unique MC address across all partitions. The network/netmask part of the string
    should still be defined, e.g. */10.149.0.0/255.255.0.0.
    
    The allocate_multicast_address() method of NameService should be called by a
    single application in the partition (typically the HLT supervisor). It will
    first iterate over all existing IS objects of type 'MultiCastGroup' in the
    RunParams IS server of the initial partition. If it finds an entry which
    matches its own partition, the multicast address from this object will be
    used. This means that MC groups will be stable as long as the initial partition
    is up and running.
    
    If the method does not find an entry, it will try to insert a new object
    which contains the multicast address as a string in its name. This guarantees
    the uniqueness of the object and therefore address. The method will loop over
    a range of pre-defined multicast address until insertion succeeds. If the range
    is exhausted an exception CannotAllocateMulticast is thrown.
    
    As a final step either the static or dynamically allocated address and network
    are published in the local partition in all DFConfig IS servers as an object
    with the fixed name 'MultiCastAddress'.
    
    The lookup_multicast_address() method simply looks up the latter object in its
    appropriate DFConfig IS server and returns it.
    
    Note that the IS object contains both the partition name and the network part, but
    the latter should always be taken straight from OKS for purposes of configuration.
    The IS object simply contains it as auxilliary information.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.