def get_arp_table(self, vrf="<STR_LIT>"):
arp_table = []<EOL>command = "<STR_LIT>".format(vrf or "<STR_LIT:all>")<EOL>output = self._send_command(command)<EOL>separator = r"<STR_LIT>"<EOL>arp_list = re.split(separator, output, flags=re.M)<EOL>if len(arp_list) != <NUM_LIT:2>:<EOL><INDENT>raise ValueError("<STR_LIT>".format(output))<EOL><DEDENT>arp_entries = arp_list[<NUM_LIT:1>].strip()<EOL>for line in arp_entries.splitlines():<EOL><INDENT>if len(line.split()) >= <NUM_LIT:4>:<EOL><INDENT>line = re.sub(r"<STR_LIT>", "<STR_LIT>", line, flags=re.M)<EOL>address, age, mac, interface = line.split()<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>".format(line.split()))<EOL><DEDENT>if age == "<STR_LIT:->":<EOL><INDENT>age = -<NUM_LIT:1.0><EOL><DEDENT>elif "<STR_LIT::>" not in age:<EOL><INDENT>try:<EOL><INDENT>age = float(age)<EOL><DEDENT>except ValueError:<EOL><INDENT>age = -<NUM_LIT:1.0><EOL><DEDENT><DEDENT>else:<EOL><INDENT>age = convert_hhmmss(age)<EOL>age = float(age)<EOL><DEDENT>age = round(age, <NUM_LIT:1>)<EOL>if not re.search(RE_IPADDR, address):<EOL><INDENT>raise ValueError("<STR_LIT>".format(address))<EOL><DEDENT>if not re.search(RE_MAC, mac):<EOL><INDENT>raise ValueError("<STR_LIT>".format(mac))<EOL><DEDENT>entry = {<EOL>"<STR_LIT>": interface,<EOL>"<STR_LIT>": helpers.mac(mac),<EOL>"<STR_LIT>": address,<EOL>"<STR_LIT>": age,<EOL>}<EOL>arp_table.append(entry)<EOL><DEDENT>return arp_table<EOL>
Get arp table information.

Return a list of dictionaries having the following set of keys:
    * interface (string)
    * mac (string)
    * ip (string)
    * age (float)

For example::
    [
        {
            'interface' : 'MgmtEth0/RSP0/CPU0/0',
            'mac'       : '5c:5e:ab:da:3c:f0',
            'ip'        : '172.17.17.1',
            'age'       : 12.0
        },
        {
            'interface': 'MgmtEth0/RSP0/CPU0/0',
            'mac'       : '66:0e:94:96:e0:ff',
            'ip'        : '172.17.17.2',
            'age'       : 14.0
        }
    ]