def show_interface(enode, dev, shell=None):
    """
    Show the configured parameters and stats of an interface.

    :param enode: Engine node to communicate with.
    :type enode: topology.platforms.base.BaseNode
    :param str dev: Unix network device name. Ex 1, 2, 3..
    :rtype: dict
    :return: A combined dictionary as returned by both
     :func:`topology_lib_ip.parser._parse_ip_addr_show`
     :func:`topology_lib_ip.parser._parse_ip_stats_link_show`
    """
    assert dev

    cmd = 'ip addr list dev {ldev}'.format(ldev=dev)
    response = enode(cmd, shell=shell)

    first_half_dict = _parse_ip_addr_show(response)

    d = None
    if (first_half_dict):
        cmd = 'ip -s link list dev {ldev}'.format(ldev=dev)
        response = enode(cmd, shell=shell)
        second_half_dict = _parse_ip_stats_link_show(response)

        d = first_half_dict.copy()
        d.update(second_half_dict)
    return d
Show the configured parameters and stats of an interface.

    :param enode: Engine node to communicate with.
    :type enode: topology.platforms.base.BaseNode
    :param str dev: Unix network device name. Ex 1, 2, 3..
    :rtype: dict
    :return: A combined dictionary as returned by both
     :func:`topology_lib_ip.parser._parse_ip_addr_show`
     :func:`topology_lib_ip.parser._parse_ip_stats_link_show`