Ack reception timeouts when trying to connect camera

I have a Basler a2A2590-22gmBAS that Iโ€™m trying to set up with aravis in link-local mode.

If I donโ€™t set up a DHCP server on my system, it falls back to link-local, which is expected.
However, when I stop my DHCP server and reconnect the camera, I get Ack reception timeout messages when trying to connect to it:

[linux ~]# ARV_DEBUG="all:4" arv-camera-test-0.8 
Looking for the first available camera
[09:43:17.177] ๐Ÿ…ธ interface> Found 0 USB3Vision device (among 3 USB devices)
[09:43:17.178] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[09:43:17.178] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 192.168.254.251 (192.168.254.255)
[09:43:17.178] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 10.1.0.1 (10.1.0.255)
[09:43:17.178] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 169.254.100.1 (169.254.100.1)
[09:43:17.179] ๐Ÿ…ณ cp> packet_type  = ack
                     command      = discovery-ack
                     size         = 248
                     id           = 65535
                     manufacturer = Basler
                     name         = Basler-2
                     model        = a2A2590-22gmBAS
                     address      = 169.254.253.58
                     00000000 00 00 00 03 00 f8 ff ff 00 02 00 01 80 00 00 01  ................
                     00000010 00 00 00 30 53 37 02 a1 80 00 00 07 00 00 00 06  ...0S7..........
                     00000020 00 00 00 00 00 00 00 00 00 00 00 00 a9 fe fd 3a  ...............:
                     00000030 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00  ................
                     00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000050 42 61 73 6c 65 72 00 00 00 00 00 00 00 00 00 00  Basler..........
                     00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000070 61 32 41 32 35 39 30 2d 32 32 67 6d 42 41 53 00  a2A2590-22gmBAS.
                     00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000090 31 30 38 30 33 30 2d 31 33 00 00 00 00 00 00 00  108030-13.......
                     000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000b0 6e 6f 6e 65 00 00 00 00 00 00 00 00 00 00 00 00  none............
                     000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000e0 34 30 32 31 37 37 37 35 00 00 00 00 00 00 00 00  40217775........
                     000000f0 42 61 73 6c 65 72 2d 32 00 00 00 00 00 00 00 00  Basler-2........
[09:43:17.179] ๐Ÿ…ธ interface> [GvInterface::discovery] Device 'Basler-a2A2590-22gmBAS-40217775' found (interface 169.254.100.1) user_id 'Basler-2' - MAC '00:30:53:37:02:a1'
[09:43:17.179] ๐Ÿ…ธ device> [GvDevice::new] Interface address = 169.254.100.1
[09:43:17.179] ๐Ÿ…ธ device> [GvDevice::new] Device address = 169.254.253.58
[09:43:17.179] ๐Ÿ†ƒ cp> packet_type  = cmd
                     packet_flags = ack-required
                     command      = read-memory-cmd
                     size         = 8
                     id           = 65301
                     address      =        512 (0x00000200)
                     size         =        512 (0x00000200)
                     00000000 42 01 00 84 00 08 ff 15 00 00 02 00 00 00 02 00  B...............
[09:43:17.680] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:17.680] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:17.680] ๐Ÿ†ƒ cp> packet_type  = cmd
                     packet_flags = ack-required
                     command      = read-memory-cmd
                     size         = 8
                     id           = 65301
                     address      =        512 (0x00000200)
                     size         =        512 (0x00000200)
                     00000000 42 01 00 84 00 08 ff 15 00 00 02 00 00 00 02 00  B...............
[09:43:18.180] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:18.180] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:18.180] ๐Ÿ†ƒ cp> packet_type  = cmd
                     packet_flags = ack-required
                     command      = read-memory-cmd
                     size         = 8
                     id           = 65301
                     address      =        512 (0x00000200)
                     size         =        512 (0x00000200)
                     00000000 42 01 00 84 00 08 ff 15 00 00 02 00 00 00 02 00  B...............
[09:43:18.681] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:18.681] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:18.681] ๐Ÿ†ƒ cp> packet_type  = cmd
                     packet_flags = ack-required
                     command      = read-memory-cmd
                     size         = 8
                     id           = 65301
                     address      =        512 (0x00000200)
                     size         =        512 (0x00000200)
                     00000000 42 01 00 84 00 08 ff 15 00 00 02 00 00 00 02 00  B...............
[09:43:19.181] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:19.181] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:19.182] ๐Ÿ†ƒ cp> packet_type  = cmd
                     packet_flags = ack-required
                     command      = read-memory-cmd
                     size         = 8
                     id           = 65301
                     address      =        512 (0x00000200)
                     size         =        512 (0x00000200)
                     00000000 42 01 00 84 00 08 ff 15 00 00 02 00 00 00 02 00  B...............
[09:43:19.682] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
[09:43:19.682] ๐Ÿ†† device> [GvDevice::read_memory] Ack reception timeout
No camera found: GigEVision read_memory timeout

The camera can be found using arv-tool-0.8:

[09:45:32.535] ๐Ÿ…ธ interface> Found 0 USB3Vision device (among 3 USB devices)
[09:45:32.536] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[09:45:32.536] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 192.168.254.251 (192.168.254.255)
[09:45:32.536] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 10.1.0.1 (10.1.0.255)
[09:45:32.536] ๐Ÿ…ธ interface> [GvDiscoverSocket::new] Add interface 169.254.100.1 (169.254.100.1)
[09:45:32.537] ๐Ÿ…ณ cp> packet_type  = ack
                     command      = discovery-ack
                     size         = 248
                     id           = 65535
                     manufacturer = Basler
                     name         = Basler-2
                     model        = a2A2590-22gmBAS
                     address      = 169.254.253.58
                     00000000 00 00 00 03 00 f8 ff ff 00 02 00 01 80 00 00 01  ................
                     00000010 00 00 00 30 53 37 02 a1 80 00 00 07 00 00 00 06  ...0S7..........
                     00000020 00 00 00 00 00 00 00 00 00 00 00 00 a9 fe fd 3a  ...............:
                     00000030 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00  ................
                     00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000050 42 61 73 6c 65 72 00 00 00 00 00 00 00 00 00 00  Basler..........
                     00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000070 61 32 41 32 35 39 30 2d 32 32 67 6d 42 41 53 00  a2A2590-22gmBAS.
                     00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000090 31 30 38 30 33 30 2d 31 33 00 00 00 00 00 00 00  108030-13.......
                     000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000b0 6e 6f 6e 65 00 00 00 00 00 00 00 00 00 00 00 00  none............
                     000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000e0 34 30 32 31 37 37 37 35 00 00 00 00 00 00 00 00  40217775........
                     000000f0 42 61 73 6c 65 72 2d 32 00 00 00 00 00 00 00 00  Basler-2........
[09:45:32.537] ๐Ÿ…ธ interface> [GvInterface::discovery] Device 'Basler-a2A2590-22gmBAS-40217775' found (interface 169.254.100.1) user_id 'Basler-2' - MAC '00:30:53:37:02:a1'
[09:45:32.537] ๐Ÿ…ณ cp> packet_type  = ack
                     command      = discovery-ack
                     size         = 248
                     id           = 65535
                     manufacturer = Basler
                     name         = Basler-2
                     model        = a2A2590-22gmBAS
                     address      = 169.254.253.58
                     00000000 00 00 00 03 00 f8 ff ff 00 02 00 01 80 00 00 01  ................
                     00000010 00 00 00 30 53 37 02 a1 80 00 00 07 00 00 00 06  ...0S7..........
                     00000020 00 00 00 00 00 00 00 00 00 00 00 00 a9 fe fd 3a  ...............:
                     00000030 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00  ................
                     00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000050 42 61 73 6c 65 72 00 00 00 00 00 00 00 00 00 00  Basler..........
                     00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000070 61 32 41 32 35 39 30 2d 32 32 67 6d 42 41 53 00  a2A2590-22gmBAS.
                     00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     00000090 31 30 38 30 33 30 2d 31 33 00 00 00 00 00 00 00  108030-13.......
                     000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000b0 6e 6f 6e 65 00 00 00 00 00 00 00 00 00 00 00 00  none............
                     000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
                     000000e0 34 30 32 31 37 37 37 35 00 00 00 00 00 00 00 00  40217775........
                     000000f0 42 61 73 6c 65 72 2d 32 00 00 00 00 00 00 00 00  Basler-2........
[09:45:32.537] ๐Ÿ…ธ interface> [GvInterface::discovery] Device 'Basler-a2A2590-22gmBAS-40217775' found (interface 10.1.0.1) user_id 'Basler-2' - MAC '00:30:53:37:02:a1'
[09:45:33.538] ๐Ÿ…ณ misc> Regex '^.*$' created from glob '*'
Basler-a2A2590-22gmBAS-40217775 (169.254.253.58)

dmesg output when camera is connected:

[74884.018411] igb 0000:8a:00.1 enp138s0f1: igb: enp138s0f1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

Relevant output of ip a (the interface where my camera is connected to):

5: enp138s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8192 qdisc mq qlen 1000
    link/ether 74:fe:48:68:a3:66 brd ff:ff:ff:ff:ff:ff
    inet 10.1.0.1/24 brd 10.1.0.255 scope global enp138s0f1
       valid_lft forever preferred_lft forever
    inet 169.254.100.1/32 scope global enp138s0f1
       valid_lft forever preferred_lft forever
    inet6 fe80::76fe:48ff:fe68:a366/64 scope link 
       valid_lft forever preferred_lft forever

Is it not possible to communicate with this camera in link-local ip mode?

Right before pressing the โ€˜Create topicโ€™ button I noticed the cause of the issue, decided to post anyway to share the solution:

I created the interface address 169.254.100.1 with a /32 subnet mask, but this should be /16:

ip addr add 169.254.100.1/16 dev enp138s0f1

The camera obviously cannot connect to this interface because itโ€™s in another subnet (169.254.253.58/16, not /32)