def get_interfaces(self):
raise NotImplementedError<EOL>
Returns a dictionary of dictionaries. The keys for the first dictionary will be the \
interfaces in the devices. The inner dictionary will containing the following data for \
each interface:

 * is_up (True/False)
 * is_enabled (True/False)
 * description (string)
 * last_flapped (float in seconds)
 * speed (int in Mbit)
 * MTU (in Bytes)
 * mac_address (string)

Example::

    {
    u'Management1':
        {
        'is_up': False,
        'is_enabled': False,
        'description': '',
        'last_flapped': -1.0,
        'speed': 1000,
        'mtu': 1500,
        'mac_address': 'FA:16:3E:57:33:61',
        },
    u'Ethernet1':
        {
        'is_up': True,
        'is_enabled': True,
        'description': 'foo',
        'last_flapped': 1429978575.1554043,
        'speed': 1000,
        'mtu': 1500,
        'mac_address': 'FA:16:3E:57:33:62',
        },
    u'Ethernet2':
        {
        'is_up': True,
        'is_enabled': True,
        'description': 'bla',
        'last_flapped': 1429978575.1555667,
        'speed': 1000,
        'mtu': 1500,
        'mac_address': 'FA:16:3E:57:33:63',
        },
    u'Ethernet3':
        {
        'is_up': False,
        'is_enabled': True,
        'description': 'bar',
        'last_flapped': -1.0,
        'speed': 1000,
        'mtu': 1500,
        'mac_address': 'FA:16:3E:57:33:64',
        }
    }