<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def mac(self):
 """ Show MAC address table """

        res = 'Port       Mac                VLAN\n'
        result = (yield from self._node._hypervisor.send('ethsw show_mac_addr_table {}'.format(self._node.name)))
        for line in result:
            mac, vlan, nio = line.replace('  ', ' ').split(' ')
            mac = mac.replace('.', '')
            mac = "{}:{}:{}:{}:{}:{}".format(
                mac[0:2],
                mac[2:4],
                mac[4:6],
                mac[6:8],
                mac[8:10],
                mac[10:12])
            for port_number, switch_nio in self._node.nios.items():
                if switch_nio.name == nio:
                    res += 'Ethernet' + str(port_number) + '  ' + mac + '  ' + vlan + '\n'
                    break
        return res