diff options
| -rw-r--r-- | bfdd/bfd_packet.c | 7 | ||||
| -rw-r--r-- | bfdd/bfdd_vty.c | 6 | ||||
| -rwxr-xr-x | tools/frr-reload.py | 17 |
3 files changed, 27 insertions, 3 deletions
diff --git a/bfdd/bfd_packet.c b/bfdd/bfd_packet.c index 0c72ee7581..5d8bf47fcd 100644 --- a/bfdd/bfd_packet.c +++ b/bfdd/bfd_packet.c @@ -1742,9 +1742,10 @@ void bfd_peer_mac_set(int sd, struct bfd_session *bfd, strlcpy(arpreq_.arp_dev, ifp->name, sizeof(arpreq_.arp_dev)); if (ioctl(sd, SIOCGARP, &arpreq_) < 0) { - zlog_warn( - "BFD: getting peer's mac on %s failed error %s", - ifp->name, strerror(errno)); + if (bglobal.debug_network) + zlog_debug( + "BFD: getting peer's mac on %s failed error %s", + ifp->name, strerror(errno)); UNSET_FLAG(bfd->flags, BFD_SESS_FLAG_MAC_SET); memset(bfd->peer_hw_addr, 0, sizeof(bfd->peer_hw_addr)); diff --git a/bfdd/bfdd_vty.c b/bfdd/bfdd_vty.c index 15444e4e9d..496d5019b5 100644 --- a/bfdd/bfdd_vty.c +++ b/bfdd/bfdd_vty.c @@ -213,6 +213,8 @@ static struct json_object *__display_peer_json(struct bfd_session *bs) uint32_t avg = 0; uint32_t max = 0; + if (bs->key.ifname[0]) + json_object_string_add(jo, "interface", bs->key.ifname); json_object_int_add(jo, "id", bs->discrs.my_discr); json_object_int_add(jo, "remote-id", bs->discrs.remote_discr); json_object_boolean_add(jo, "passive-mode", @@ -246,6 +248,10 @@ static struct json_object *__display_peer_json(struct bfd_session *bs) json_object_string_add(jo, "diagnostic", diag2str(bs->local_diag)); json_object_string_add(jo, "remote-diagnostic", diag2str(bs->remote_diag)); + if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_CONFIG)) + json_object_string_add(jo, "type", "configured"); + else + json_object_string_add(jo, "type", "dynamic"); json_object_int_add(jo, "receive-interval", bs->timers.required_min_rx / 1000); diff --git a/tools/frr-reload.py b/tools/frr-reload.py index a0ddeb72b1..17bf73316c 100755 --- a/tools/frr-reload.py +++ b/tools/frr-reload.py @@ -1567,6 +1567,7 @@ def compare_context_objects(newconf, running): candidates_to_add = [] delete_bgpd = False area_stub_no_sum = "area (\S+) stub no-summary" + deleted_keychains = [] # Find contexts that are in newconf but not in running # Find contexts that are in running but not in newconf @@ -1617,6 +1618,22 @@ def compare_context_objects(newconf, running): ): continue + # Check if key chain is being deleted: + # - If it is being deleted then avoid deleting its contexts + # - Else delete its configuration without removing the root node + elif ( + running_ctx_keys[0].startswith("key chain ") + and len(running_ctx_keys) == 1 + ): + deleted_keychains.append(running_ctx_keys[0]) + lines_to_del.append((running_ctx_keys, None)) + elif ( + running_ctx_keys[0].startswith("key chain ") + and len(running_ctx_keys) > 1 + and running_ctx_keys[0] in deleted_keychains + ): + continue + # Delete an entire vni sub-context under "address-family l2vpn evpn" elif ( "router bgp" in running_ctx_keys[0] |
