def tcpdump_capture(device,
                    interface,
                    port=None,
                    capture_file='pkt_capture.pcap',
                    filters=None):
    """Capture network traffic using tcpdump.
    Note: This function will keep capturing until you Kill tcpdump.
    The kill_process method can be used to kill the process.

    :param device: lan or wan
    :type device: Object
    :param interface: interface on which the packets to be captured (eg: eth0)
    :type interface: String
    :param port: Port number to capture. Can be a single port or range of ports (for https: 443 or 443-433)
    :type port: String
    :param capture_file: Filename to create in which packets shall be stored. Defaults to 'pkt_capture.pcap'
    :type capture_file: String, Optional
    :param filters: dictionary of additional filters and filter_values as key value pair (eg: {"-v":"","-c": "4"})
    :type filters: dict
    :return: Console ouput of tcpdump sendline command.
    :rtype: string
    """
    base = "tcpdump -i %s -n -w %s " % (interface, capture_file)
    run_background = " &"
    filter_str = ' '.join([' '.join(i)
                           for i in filters.items()]) if filters else ''
    if port:
        device.sudo_sendline(base + "\'portrange %s\' " % (port) + filter_str +
                             run_background)
    else:
        device.sudo_sendline(base + filter_str + run_background)
    device.expect_exact('tcpdump: listening on %s' % interface)
    return device.before