code: def sub_interfaces(self):
          
          interfaces = self.all_interfaces
          sub_interfaces = []
          for interface in interfaces:
              if isinstance(interface, VlanInterface):
                  if interface.has_interfaces:
                      for subaddr in interface.interfaces:
                          sub_interfaces.append(subaddr)
                  else:
                      sub_interfaces.append(interface)
              else:
                  sub_interfaces.append(interface)
          
          return sub_interfaces
docs: Flatten out all top level interfaces and only return sub interfaces.
          It is recommended to use :meth:`~all_interfaces`, :meth:`~interfaces`
          or :meth:`~vlan_interfaces` which return collections with helper
          methods to get sub interfaces based on index or attribute value pairs.
  
          :rtype: list(SubInterface)