def METHOD_NAME(topo, setup_test_entries, search_filter, use_control,
        controlValue, expected_nentries, expected_subentries):
    """Test LDAP Subentries control (RFC 3672)
    :id: 5cdb72eb-d227-49c8-9f7a-89314c717a85
    :setup: Standalone Instance
    :parametrized: yes
    :steps:
        1. Add test entries and subentries
        2. Search with subentries control visibility TRUE
        3. Search with subentries control visibility FALSE
        4. Search for normal entries
        5. Search for subentries
        6. Search for normal entries and subentries
    :expectedresults:
        1. Entries and subentries should be added
        2. Only subentries are visible
        3. Only normal entries are visible
        4. Only normal entries are visible
        5. Only subentries are visible
        6. Both normal entries and subentries are visible
    """
    if use_control and not has_subentries_control(topo):
        pytest.skip("This test is only required when LDAP Subentries "\
                "control is supported.")
    request_control = BooleanControl(
                controlType="1.3.6.1.4.1.4203.1.10.1",
                criticality=True, booleanValue=controlValue)
    if use_control:
        request_ctrl = [request_control]
    else:
        request_ctrl = None
    entries = topo.standalone.search_ext_s("ou=people," +
        DEFAULT_SUFFIX,
        ldap.SCOPE_SUBTREE,
        search_filter,
        serverctrls=request_ctrl)
    assert len(entries) == expected_nentries
    if expected_subentries is not None:
        if expected_subentries:
            for entry in entries:
                assert ensure_bytes("ldapsubentry") in \
                        entry.getValues("objectclass")
        else:
            for entry in entries:
                assert ensure_bytes("ldapsubentry") not in \
                        entry.getValues("objectclass")