def METHOD_NAME(iface):
    """Allow DHCP traffic on an interface.
    When using the iptables service, no other traffic is allowed.
    With firewalld, the whole interface is moved to the 'trusted',
    unrestricted zone.
    """
    if _serviceRunning('iptables'):
        _exec_cmd_checker(
            [
                _IPTABLES_BINARY.cmd,
                '--wait',
                '-I',
                'INPUT',
                '-i',
                iface,
                '-p',
                'udp',
                '--sport',
                '68',
                '--dport',
                '67',
                '-j',
                'ACCEPT',
            ]
        )  # DHCPv4
        _exec_cmd_checker(
            [
                _IPTABLES_BINARY.cmd,
                '--wait',
                '-I',
                'INPUT',
                '-i',
                iface,
                '-p',
                'udp',
                '--sport',
                '546',
                '--dport',
                '547',
                '-j',
                'ACCEPT',
            ]
        )  # DHCPv6
    elif _serviceRunning('firewalld'):
        _exec_cmd_checker(
            [
                _FIREWALLD_BINARY.cmd,
                '--zone=trusted',
                '--change-interface=' + iface,
            ]
        )
    else:
        logging.info('No firewall service detected.')