Returns True if given prefix is a string represent vpnv6 prefix.

    Vpnv6 prefix is made up of RD:Ipv6, where RD is represents route
    distinguisher and Ipv6 represents valid colon hexadecimal notation string.

def is_valid_vpnv6_prefix(prefix):
    """Returns True if given prefix is a string represent vpnv6 prefix.

    Vpnv6 prefix is made up of RD:Ipv6, where RD is represents route
    distinguisher and Ipv6 represents valid colon hexadecimal notation string.
    """
    if not isinstance(prefix, str):
        return False

    # Split the prefix into route distinguisher and IP
    tokens = prefix.split(':', 2)
    if len(tokens) != 3:
        return False

    # Validate route distinguisher
    if not is_valid_route_dist(':'.join([tokens[0], tokens[1]])):
        return False

    # Validate IPv6 prefix and return
    return is_valid_ipv6_prefix(tokens[2])