hostrc=/etc/mkcloud/cloudrc.host
test -e $hostrc || hostrc=~/cloud.d/cloudrc.host
test -e $hostrc && . $hostrc
cloudspernode=32

# note, cloudadminnet must be in the same /23 as cloudpublicnet
function cloudadminnet()
{
    n=$1
    echo -n 192.168.$((255-2*n))
}

function cloudironicnet()
{
    n=$1
    echo -n 192.168.$((4*n))
}

function cloudpublicnet()
{
    n=$1
    echo -n 192.168.$((254-2*n))
}

function vcloudpublicnet()
{
    n=$1
    echo -n 10.162.$((vcloudbase-1+n))
}

# mkcloud host id
# returns number of cloud - e.g. mkcha => 0 and mkchz => 25
function mkch_id()
{
    hostname | perl -pe 's/mkch(.)/ord($1)-ord("a")/e'
}

function routedcloudpublicnet()
{
    local n=$1
    local offset=164
    local mkch_id=$(mkch_id)
    local base2=$(($mkch_id * $cloudspernode))
    local base1=$(($offset + $base2/256))
    base2=$(($base2 % 256))
    echo -n 10.$base1.$(($base2+$n-1))
}

function ipv6prefix()
{
    local n=$1
    local mkch_id=$(mkch_id)
    printf fd3b:f495:9651:%x%02x "$mkch_id" "$n"
}
