To bring up (and/or tear down) a subport the guest OS "(c) must know which vNIC the subport belongs to".
Assumed a VM is booted with multiple virtual NICs (vNIC_1, ..., vNIC_N), each connected to a trunk (Trunk_1, ..., Trunk_N), a consumer of the trunk_details extension has still access to all the information required to assemble a configuration layout for guest consumption and setup. So where exactly do you see Neutron having a gap to be filled?
One more thing:
You say, and I quote:
To bring up (and/or tear down) a subport the guest OS "(c) must know which vNIC the subport belongs to".
Assumed a VM is booted with multiple virtual NICs (vNIC_1, ..., vNIC_N), each connected to a trunk (Trunk_1, ..., Trunk_N), a consumer of the trunk_details extension has still access to all the information required to assemble a configuration layout for guest consumption and setup. So where exactly do you see Neutron having a gap to be filled?