Add Arista EOS support
Thanks Brooks!
This adds support for Arista EOS using a new flag: -e. EOS shares a lot of similarities with IOS,
but there is a difference in the syntax of prefix-lists that I wanted to fix.
The difference can be seen with bgpq4 -S ARIN -4 -s AS36459, which returns:
no ip prefix-list NN
ip prefix-list NN seq 1 permit 192.30.252.0/22
ip prefix-list NN seq 2 permit 192.30.252.0/23
ip prefix-list NN seq 3 permit 192.30.252.0/24
ip prefix-list NN seq 4 permit 192.30.253.0/24
ip prefix-list NN seq 5 permit 192.30.254.0/24
ip prefix-list NN seq 6 permit 192.30.255.0/24
Interestingly, this syntax works fine in EOS, but EOS isn't able to handle the same syntax for ipv6
prefix-lists. Instead, the seq and permit/deny that compose the rule needs to be inside the prefix-list
block.
Now bgpq4 -S ARIN -4 -e AS36459 generates:
no ip prefix-list NN
ip prefix-list NN
seq 1 permit 192.30.252.0/22
seq 2 permit 192.30.252.0/23
seq 3 permit 192.30.252.0/24
seq 4 permit 192.30.253.0/24
seq 5 permit 192.30.254.0/24
seq 6 permit 192.30.255.0/24
With the current 10 second timeout I have observed intermittent failures reporting `FATAL ERROR:select timeout` when querying large objects.
This has only been observed when using IRRD instances supporting `A` queries which led me down a path of investigating the server side timeout, the default of which in irrd4 is 30 seconds, thus 30 seconds was chosen as the read timeout (bgpq4 currently has no option to pass `!T`).
The increased timeout has been running as a local patch in my environment for more than two months with no observed failures, testing the upstream version locally still results in intermittent failures.
Commentary on the Github issue indicated ~9 second response times from Europe, which could be related to the higher latency (150ms+) cross region.
Fixes multiple:
warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result]
warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
Improves some error messages.