With the help of \renaud and jwh at #openbsd I have solved it putting this into /etc/rc.local:
arp -Fs 192.168.1.50 00:25:90:a2:aa:91 Please, sorry for the report, I thought it was a bug. On Thu, Sep 15, 2016 at 12:52:09PM +0200, Francisco Gaitan wrote: > >Synopsis: I can't set permanent arp entries in the ERL router > >Category: system > >Environment: > System : OpenBSD 6.0 > Details : OpenBSD 6.0-current (GENERIC) #27: Mon Sep 12 00:55:34 > UTC 2016 > visa@octeon:/usr/src/sys/arch/octeon/compile/GENERIC > > Architecture: OpenBSD.octeon > Machine : octeon > >Description: > > Hello. I'm trying to set permament arp entries in my router. > This happens in OpenBSD 6.0-release. I have installed -current > and the problem is still happening. > > I have tried this in my amd64 machine and all works fine there, > so I suppose this is a bug (I also asked in #openbsd first) > > This is a fresh -current installation. It happened exactly > the same in my previous 6.0-release installation. > > mac adddresses are spoofed for privacy. > > >How-To-Repeat: > > # arp -Fs 192.168.1.50 00:25:90:a2:aa:91 > 192.168.1.50 (192.168.1.50) deleted > arp: writing to routing socket: File exists > > # arp -a > Host Ethernet Address Netif Expire Flags > 192.168.1.1 44:d9:e7:9f:0d:1b cnmac1 permanent l > 192.168.1.50 00:25:90:a2:aa:91 cnmac1 20m0s > > # arp -d 192.168.1.50 > 192.168.1.50 (192.168.1.50) deleted > # arp -s 192.168.1.50 00:25:90:a2:aa:12 > arp: writing to routing socket: File exists > > # arp -a > Host Ethernet Address Netif Expire Flags > 192.168.1.1 44:d9:e7:9f:0d:1b cnmac1 permanent l > 192.168.1.50 00:25:90:a2:aa:91 cnmac1 19m47s > > dmesg: > Copyright (c) 1982, 1986, 1989, 1991, 1993 > The Regents of the University of California. All rights reserved. > Copyright (c) 1995-2016 OpenBSD. All rights reserved. https://www.OpenBSD.org > > OpenBSD 6.0-current (GENERIC) #27: Mon Sep 12 00:55:34 UTC 2016 > visa@octeon:/usr/src/sys/arch/octeon/compile/GENERIC > real mem = 536870912 (512MB) > avail mem = 524369920 (500MB) > warning: no entropy supplied by boot loader > mainbus0 at root > cpu0 at mainbus0: Cavium OCTEON CPU rev 0.1 500 MHz, Software FP emulation > cpu0: cache L1-I 32KB 4 way D 8KB 64 way, L2 128KB 8 way > clock0 at mainbus0: int 5 > iobus0 at mainbus0 > dwctwo0 at iobus0 base 0x1180068000000 irq 56 > usb0 at dwctwo0: USB revision 2.0 > uhub0 at usb0 configuration 1 interface 0 "Octeon DWC2 root hub" rev > 2.00/1.00 addr 1 > octrng0 at iobus0 base 0x1400000000000 irq 0 > cn30xxgmx0 at iobus0 base 0x1180008000000 > cnmac0 at cn30xxgmx0: RGMII, address 44:d9:e7:9f:0d:3c > atphy0 at cnmac0 phy 7: AR8035 10/100/1000 PHY, rev. 2 > cnmac1 at cn30xxgmx0: RGMII, address 44:d9:e7:9f:0d:3d > atphy1 at cnmac1 phy 6: AR8035 10/100/1000 PHY, rev. 2 > cnmac2 at cn30xxgmx0: RGMII, address 44:d9:e7:9f:0d:3e > atphy2 at cnmac2 phy 5: AR8035 10/100/1000 PHY, rev. 2 > uartbus0 at mainbus0 > com0 at uartbus0 base 0x1180000000800 irq 34: ns16550a, 64 byte fifo > com0: console > com1 at uartbus0 base 0x1180000000c00 irq 35: ns16550a, 64 byte fifo > /dev/ksyms: Symbol table not valid. > umass0 at uhub0 port 1 configuration 1 interface 0 "SanDisk Cruzer Fit" rev > 2.00/1.27 addr 2 > umass0: using SCSI over Bulk-Only > scsibus0 at umass0: 2 targets, initiator 0 > sd0 at scsibus0 targ 1 lun 0: <SanDisk, Cruzer Fit, 1.27> SCSI4 0/direct > removable serial.07815571020310117511 > sd0: 14907MB, 512 bytes/sector, 30529536 sectors > vscsi0 at root > scsibus1 at vscsi0: 256 targets > softraid0 at root > scsibus2 at softraid0: 256 targets > boot device: sd0 > root on sd0a (7578e614430eb5aa.a) swap on sd0b dump on sd0b > WARNING: No TOD clock, believing file system. > WARNING: CHECK AND RESET THE DATE! > > usbdevs: > Controller /dev/usb0: > addr 1: high speed, self powered, config 1, DWC2 root hub(0x0000), > Octeon(0x0000), rev 1.00 > port 1 addr 2: high speed, power 200 mA, config 1, Cruzer Fit(0x5571), > SanDisk(0x0781), rev 1.27, iSerialNumber 4C530001020310117511 >