Fix gateway ARP lookup
This commit is contained in:
parent
279e273909
commit
54067dbeac
14
ip.rkt
14
ip.rkt
|
@ -130,11 +130,10 @@
|
||||||
(define host-route-projector (compile-projection (host-route (?!) ? ?)))
|
(define host-route-projector (compile-projection (host-route (?!) ? ?)))
|
||||||
(define gateway-route-projector (compile-projection (gateway-route (?!) (?!) ? ?)))
|
(define gateway-route-projector (compile-projection (gateway-route (?!) (?!) ? ?)))
|
||||||
(define net-route-projector (compile-projection (net-route (?!) (?!) ?)))
|
(define net-route-projector (compile-projection (net-route (?!) (?!) ?)))
|
||||||
(define gateway-arp-projector (compile-projection
|
(define gateway-arp-projector (arp-query IPv4-ethertype
|
||||||
(arp-query IPv4-ethertype
|
gateway-addr
|
||||||
gateway-addr
|
(?! (ethernet-interface interface-name ?))
|
||||||
(?! (ethernet-interface interface-name ?))
|
(?!)))
|
||||||
(?!))))
|
|
||||||
|
|
||||||
(define (covered-by-some-other-route? addr routes)
|
(define (covered-by-some-other-route? addr routes)
|
||||||
(for/or ([r (in-set routes)])
|
(for/or ([r (in-set routes)])
|
||||||
|
@ -148,8 +147,9 @@
|
||||||
(define host-ips (trie-project/set/single g host-route-projector))
|
(define host-ips (trie-project/set/single g host-route-projector))
|
||||||
(define gw-nets+netmasks (trie-project/set g gateway-route-projector))
|
(define gw-nets+netmasks (trie-project/set g gateway-route-projector))
|
||||||
(define net-nets+netmasks (trie-project/set g net-route-projector))
|
(define net-nets+netmasks (trie-project/set g net-route-projector))
|
||||||
(define gw-ip+hwaddr (let ((vs (trie-project/set g gateway-arp-projector)))
|
(define gw-ip+hwaddr
|
||||||
(and vs (not (set-empty? vs)) (set-first vs))))
|
(let ((vs (trie-project/set g (compile-projection gateway-arp-projector))))
|
||||||
|
(and vs (not (set-empty? vs)) (set-first vs))))
|
||||||
(when (and gw-ip+hwaddr (not (gateway-route-state-gateway-hwaddr s)))
|
(when (and gw-ip+hwaddr (not (gateway-route-state-gateway-hwaddr s)))
|
||||||
(log-info "Discovered gateway ~a at ~a on interface ~a."
|
(log-info "Discovered gateway ~a at ~a on interface ~a."
|
||||||
(ip-address->hostname gateway-addr)
|
(ip-address->hostname gateway-addr)
|
||||||
|
|
Loading…
Reference in New Issue