L3VPN application listens on TunnelInterfaceStateListener to handle tunnel states. Whenever tunnel states change i.e say (a) UP --> DOWN or DOWN --> UP, (b) Add/Delete L3VPN needs to iterate through list of ports/Interfaces on a given DPN and appropriate manage the L3VPN flows.
DpnToInterfaceList operational DS managed by Interface Manager doesn't store the type of interfaces. Its required to be enhanced to store the type of each interfaces i.e L2VLAN / Tunnel / Other , so that application interested can handle only required type of interfaces in them.