diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-08-16 15:29:23 +0200 |
---|---|---|
committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-09-06 22:50:58 +0200 |
commit | 065eaa36290decd582bd299855bbc86a890b07c2 (patch) | |
tree | 00290377dc2e7f04f7e8953e3378a6b27785bd34 /bgpd | |
parent | bgpd: convert bgp_nht.c to use flog_warn (diff) | |
download | frr-065eaa36290decd582bd299855bbc86a890b07c2.tar.xz frr-065eaa36290decd582bd299855bbc86a890b07c2.zip |
bgpd: Convert bgp_open.c to use flog_warn
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'bgpd')
-rw-r--r-- | bgpd/bgp_errors.c | 24 | ||||
-rw-r--r-- | bgpd/bgp_errors.h | 4 | ||||
-rw-r--r-- | bgpd/bgp_open.c | 33 |
3 files changed, 50 insertions, 11 deletions
diff --git a/bgpd/bgp_errors.c b/bgpd/bgp_errors.c index 70cdf53bd..6a0b0a9ee 100644 --- a/bgpd/bgp_errors.c +++ b/bgpd/bgp_errors.c @@ -158,6 +158,30 @@ static struct log_ref ferr_bgp_warn[] = { .suggestion = "Gather log data, open an Issue and restart FRR" }, { + .code = BGP_WARN_CAPABILITY_INVALID_LENGTH, + .title = "BGP has received a capability with an invalid length", + .description = "BGP has received a capability from it's peer who's size is wrong", + .suggestion = "Gather log files from here and from peer and open an Issue", + }, + { + .code = BGP_WARN_CAPABILITY_INVALID_DATA, + .title = "BGP has received capability data with invalid information", + .description = "BGP has noticed that during processing of capability information that data was wrong", + .suggestion = "Gather log files from here and from peer and open an Issue", + }, + { + .code = BGP_WARN_CAPABILITY_VENDOR, + .title = "BGP has recieved capability data specific to a particular vendor", + .description = "BGP has received a capability that is vendor specific and as such we have no knowledge of how to use this capability in FRR", + .suggestion = "On peer turn off this feature" + }, + { + .code = BGP_WARN_CAPABILITY_UNKNOWN, + .title = "BGP has received capability data for a unknown capability", + .description = "BGP has received a capability that it does not know how to decode. This may be due to a new feature that has not been coded into FRR or it may be a bug in the remote peer", + .suggestion = "Gather log files from here and from peer and open an Issue", + }, + { .code = END_FERR, } }; diff --git a/bgpd/bgp_errors.h b/bgpd/bgp_errors.h index 6accd4423..4de04f760 100644 --- a/bgpd/bgp_errors.h +++ b/bgpd/bgp_errors.h @@ -94,6 +94,10 @@ enum bgp_log_refs { BGP_WARN_EVPN_ESI, BGP_WARN_INVALID_LABEL_STACK, BGP_WARN_ZEBRA_SEND, + BGP_WARN_CAPABILITY_INVALID_LENGTH, + BGP_WARN_CAPABILITY_INVALID_DATA, + BGP_WARN_CAPABILITY_VENDOR, + BGP_WARN_CAPABILITY_UNKNOWN, }; extern void bgp_error_init(void); diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c index 5bdee5f51..2a32f02f4 100644 --- a/bgpd/bgp_open.c +++ b/bgpd/bgp_open.c @@ -254,7 +254,8 @@ static int bgp_capability_mp(struct peer *peer, struct capability_header *hdr) /* Verify length is 4 */ if (hdr->length != 4) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_LENGTH, "MP Cap: Received invalid length %d, non-multiple of 4", hdr->length); return -1; @@ -449,7 +450,8 @@ static int bgp_capability_restart(struct peer *peer, /* Verify length is a multiple of 4 */ if ((caphdr->length - 2) % 4) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_LENGTH, "Restart Cap: Received invalid length %d, non-multiple of 4", caphdr->length); return -1; @@ -546,7 +548,8 @@ static int bgp_capability_addpath(struct peer *peer, /* Verify length is a multiple of 4 */ if (hdr->length % 4) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_LENGTH, "Add Path: Received invalid length %d, non-multiple of 4", hdr->length); return -1; @@ -604,7 +607,8 @@ static int bgp_capability_enhe(struct peer *peer, struct capability_header *hdr) /* Verify length is a multiple of 4 */ if (hdr->length % 6) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_LENGTH, "Extended NH: Received invalid length %d, non-multiple of 6", hdr->length); return -1; @@ -646,7 +650,8 @@ static int bgp_capability_enhe(struct peer *peer, struct capability_header *hdr) if (afi != AFI_IP || nh_afi != AFI_IP6 || !(safi == SAFI_UNICAST || safi == SAFI_LABELED_UNICAST)) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_DATA, "%s Unexpected afi/safi/next-hop afi: %u/%u/%u " "in Extended Next-hop capability, ignoring", peer->host, pkt_afi, pkt_safi, pkt_nh_afi); @@ -677,7 +682,8 @@ static int bgp_capability_hostname(struct peer *peer, len = stream_getc(s); if (stream_get_getp(s) + len > end) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_DATA, "%s: Received malformed hostname capability from peer %s", __FUNCTION__, peer->host); return -1; @@ -707,7 +713,8 @@ static int bgp_capability_hostname(struct peer *peer, } if (stream_get_getp(s) + 1 > end) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_DATA, "%s: Received invalid domain name len (hostname capability) from peer %s", __FUNCTION__, peer->host); return -1; @@ -715,7 +722,8 @@ static int bgp_capability_hostname(struct peer *peer, len = stream_getc(s); if (stream_get_getp(s) + len > end) { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_DATA, "%s: Received runt domain name (hostname capability) from peer %s", __FUNCTION__, peer->host); return -1; @@ -952,10 +960,12 @@ static int bgp_capability_parse(struct peer *peer, size_t length, specific capabilities. It seems reasonable for now... */ - zlog_warn("%s Vendor specific capability %d", + flog_warn(BGP_WARN_CAPABILITY_VENDOR, + "%s Vendor specific capability %d", peer->host, caphdr.code); } else { - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_UNKNOWN, "%s unrecognized capability code: %d - ignored", peer->host, caphdr.code); memcpy(*error, sp, caphdr.length + 2); @@ -970,7 +980,8 @@ static int bgp_capability_parse(struct peer *peer, size_t length, } if (stream_get_getp(s) != (start + caphdr.length)) { if (stream_get_getp(s) > (start + caphdr.length)) - zlog_warn( + flog_warn( + BGP_WARN_CAPABILITY_INVALID_LENGTH, "%s Cap-parser for %s read past cap-length, %u!", peer->host, lookup_msg(capcode_str, caphdr.code, |