Soft Del: The attribute shall contain none of these values, but might have others
I'm not sure I understand how SOFTDEL differs from LDAP_MOD_DELETE. Do you mean that values listed in SOFTDEL will be deleted if they exist, or otherwise ignored?
Yes; LDAP_MOD_DELETE requires that the listed values exist. The delete-all-values case is separate. If we had
cn: a cn: b
and ran
changetype: modify softdel: cn cn: b cb: c
Then the result would be success and cn=a remaining. Yes, this is useful!
Do you have a use case for this? I'm implementing add-if-not-present to ease the implementation of the version number overlay, so I could implement softdel as well.
I think all of these could make sense also protocol-wise (including softadd), but I'm not in the mood right now to start the formalization process, so I'd leave it to a later time.
p.