diff options
-rw-r--r-- | .gitlab-ci.yml | 10 | ||||
-rw-r--r-- | proto/bgp/packets.c | 5 |
2 files changed, 14 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5655a39e..119d4be9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -369,7 +369,17 @@ test-ospf-custom: variables: TEST_NAME: cf-ospf-custom +test-ospf-vrf: + <<: *test-base + variables: + TEST_NAME: cf-ospf-vrf + test-bgp-base: <<: *test-base variables: TEST_NAME: cf-bgp-base + +test-bgp-auth: + <<: *test-base + variables: + TEST_NAME: cf-bgp-auth diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c index ee031c05..78fdd1e0 100644 --- a/proto/bgp/packets.c +++ b/proto/bgp/packets.c @@ -1157,7 +1157,10 @@ bgp_decode_next_hop_ip(struct bgp_parse_state *s, byte *data, uint len, rta *a) nh[0] = ipa_from_ip6(get_ip6(data)); nh[1] = ipa_from_ip6(get_ip6(data+16)); - if (ipa_is_ip4(nh[0]) || !ip6_is_link_local(nh[1])) + if (ipa_is_link_local(nh[0])) + { nh[1] = nh[0]; nh[0] = IPA_NONE; } + + if (ipa_is_ip4(nh[0]) || !ipa_is_link_local(nh[1])) nh[1] = IPA_NONE; } else |