Skip to content

Commit

Permalink
Merge branch 'rvaratharaj/5.8_fixes' into 'dev'
Browse files Browse the repository at this point in the history
bgpd: lttng traces for bgp neighbor connections

 #

See merge request nbu-sws/CL/FRR/frr!660
  • Loading branch information
routingrocks committed Feb 16, 2024
2 parents 2305506 + 50822a1 commit b1cb735
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 7 deletions.
5 changes: 5 additions & 0 deletions bgpd/bgp_network.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
#include "bgpd/bgp_network.h"
#include "bgpd/bgp_zebra.h"
#include "bgpd/bgp_nht.h"
#include "bgpd/bgp_trace.h"

extern struct zebra_privs_t bgpd_privs;

Expand Down Expand Up @@ -431,6 +432,8 @@ static void bgp_accept(struct thread *thread)
"%s: Failure to set socket ttl for connection to %s, error received: %s(%d)",
__func__, peer1->host,
safe_strerror(errno), errno);
frrtrace(3, frr_bgp, bgp_err_str, peer1->host,
peer1->flags, 1);
return;
}

Expand Down Expand Up @@ -719,6 +722,8 @@ int bgp_connect(struct peer *peer)
zlog_debug("%s: Failure to create socket for connection to %s, error received: %s(%d)",
__func__, peer->host, safe_strerror(errno),
errno);
frrtrace(3, frr_bgp, bgp_err_str, peer->host,
peer->flags,2);
return -1;
}

Expand Down
14 changes: 14 additions & 0 deletions bgpd/bgp_trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -1197,6 +1197,20 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_LOGLEVEL(frr_bgp, gr_bgp_state, TRACE_INFO)

TRACEPOINT_EVENT(
frr_bgp,
bgp_err_str,
TP_ARGS(char *, peer_host,
uint64_t, peer_flags,
uint8_t, location),
TP_FIELDS(
ctf_string(peer, peer_host)
ctf_integer(uint64_t, peer_flags, peer_flags)
ctf_integer(uint8_t, location, location)
)
)
TRACEPOINT_LOGLEVEL(frr_bgp, bgp_err_str, TRACE_INFO)

/* clang-format on */

#include <lttng/tracepoint-event.h>
Expand Down
28 changes: 21 additions & 7 deletions tools/frr_babeltrace.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,11 @@ def location_zebra_err_string(field_val):
elif field_val == 2:
return ("IFLA_GRE_LOCAL missing from GRE IF message")
elif field_val == 3:
return ("IFLA_GRE_REMOTE missing from GRE IF message")
return ("IFLA_GRE_REMOTE missing from GRE IF message")
elif field_val == 4:
return ("IFLA_GRE_LINK missing from GRE IF message")
return ("IFLA_GRE_LINK missing from GRE IF message")
elif field_val == 5:
return ("IFLA_VXLAN_ID missing from VXLAN IF message")
return ("IFLA_VXLAN_ID missing from VXLAN IF message")
elif field_val == 6:
return ("IFLA_VXLAN_LOCAL missing from VXLAN IF message")
elif field_val == 7:
Expand Down Expand Up @@ -262,6 +262,12 @@ def location_last_route_re(field_val):
elif field_val == 2:
return ("RE not installed")

def location_bgp_err_str(field_val):
if field_val == 1:
return ("failed in bgp_accept")
elif field_val == 2:
return ("failed in bgp_connect")

def print_prefix_addr(field_val):
"""
pretty print "struct prefix"
Expand Down Expand Up @@ -756,20 +762,20 @@ def parse_frr_zebra_if_dplane_ifp_handling(event):
def parse_frr_zebra_if_dplane_ifp_handling_new(event):
field_parsers = {"location" : location_if_dplane_ifp_handling_new}
parse_event(event, field_parsers)

def parse_frr_bgp_gr_deferral_timer_start(event):
field_parsers = {"location": print_location_gr_deferral_timer_start,
"afi": print_afi_string,
"safi": print_safi_string}

parse_event(event, field_parsers)

def parse_frr_bgp_gr_deferral_timer_expiry(event):
field_parsers = {"afi": print_afi_string,
"safi": print_safi_string}

parse_event(event, field_parsers)

def parse_frr_bgp_gr_eors(event):
field_parsers = {"location": print_location_gr_eors,
"afi": print_afi_string,
Expand Down Expand Up @@ -815,7 +821,7 @@ def parse_frr_update_prefix_filter(event):

def parse_frr_bgp_attr_type_unsupported(event):
field_parsers = {"attr" : location_attr_type_unsupported}

parse_event(event, field_parsers)

def parse_frr_zebra_gr_last_route_re(event):
Expand Down Expand Up @@ -845,6 +851,12 @@ def parse_frr_zebra_netlink_msg_err(event):
def parse_frr_zebra_netlink_intf_err(event):
field_parsers = {"location" : location_netlink_intf_err}
parse_event(event, field_parsers)

def parse_frr_bgp_err_str(event):
field_parsers = {"location" : location_bgp_err_str}
parse_event(event, field_parsers)


############################ evpn parsers - end *#############################

def main():
Expand Down Expand Up @@ -971,6 +983,8 @@ def main():
parse_frr_zebra_netlink_msg_err,
"frr_zebra:netlink_intf_err":
parse_frr_zebra_netlink_intf_err,
"frr_bgp:bgp_err_str":
parse_frr_bgp_err_str,
}

# get the trace path from the first command line argument
Expand Down

0 comments on commit b1cb735

Please sign in to comment.