According to this link arp-s command should work like this.
arp -s address hw_addr is used to set up a new table entry. The format of the hw_addr parameter is dependent on the hardware class, but for most classes one can assume that the usual presentation can be used. For the Ethernet class, this is 6 bytes in hexadecimal, separated by colons. When adding proxy arp entries (that is those with the pub lish flag set) a netmask may be specified to proxy arp for entire subnets. This is not good practice, but is supported by older kernels because it can be useful. If the temp flag is not supplied entries will be permanent stored into the ARP cache. To simplify setting up entries for one of your own network interfaces, you can use the arp −Ds address ifname form. In that case the hardware address is taken from the interface with the specified name.
root@OpenWrt:~# arp -s 192.168.0.65 aa:bb:cc:dd:ee:ff
IP address HW type Flags HW address Mask Device
192.168.0.29 0x1 0x2 5c:ea:1d:37:9d:23 * eth0.2
192.168.0.1 0x1 0x2 60:19:71:e3:bb:17 * eth0.2
192.168.1.132 0x1 0x2 10:e7:c6:ea:73:18 * br-lan
root@OpenWrt:~# arp -n
IP address HW type Flags HW address Mask Device
192.168.0.29 0x1 0x2 5c:ea:1d:37:9d:23 * eth0.2
192.168.0.1 0x1 0x2 60:19:71:e3:bb:17 * eth0.2
192.168.1.132 0x1 0x2 10:e7:c6:ea:73:18 * br-lan
root@OpenWrt:~#
However using this it doesnt add up the new arp entry.