def METHOD_NAME(rbd, pool, gw, config):
    """Configure Ceph-NVMEoF Subsystems."""
    sub_nqn = config["nqn"]
    max_ns = config.get("max_ns", 32)
    gw.create_subsystem(sub_nqn, config["serial"], max_ns)
    gw.create_listener(sub_nqn, config["listener_port"])
    gw.add_host(sub_nqn, config["allow_host"])
    if config.get("bdevs"):
        name = generate_unique_id(length=4)
        count = config["bdevs"].get("count", 1)
        size = config["bdevs"].get("size", "1G")
        # Create image on ceph cluster
        for num in range(count):
            rbd.create_image(pool, f"{name}-image{num}", size)
        # Create block device and add namespace in gateway
        for num in range(count):
            gw.create_block_device(f"{name}-bdev{num}", f"{name}-image{num}", pool)
            gw.add_namespace(sub_nqn, f"{name}-bdev{num}")
    gw.get_subsystems()