mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 10:56:37 +00:00
Merge pull request #14079 from donaldsharp/last_reset_cause_slimming
bgpd: The last_reset_cause in the peer structure is too large
This commit is contained in:
commit
d2c0d224b9
@ -956,8 +956,9 @@ static void bgp_notify_send_internal(struct peer *peer, uint8_t code,
|
|||||||
if (use_curr && peer->curr) {
|
if (use_curr && peer->curr) {
|
||||||
size_t packetsize = stream_get_endp(peer->curr);
|
size_t packetsize = stream_get_endp(peer->curr);
|
||||||
assert(packetsize <= peer->max_packet_size);
|
assert(packetsize <= peer->max_packet_size);
|
||||||
memcpy(peer->last_reset_cause, peer->curr->data, packetsize);
|
if (peer->last_reset_cause)
|
||||||
peer->last_reset_cause_size = packetsize;
|
stream_free(peer->last_reset_cause);
|
||||||
|
peer->last_reset_cause = stream_dup(peer->curr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For debug */
|
/* For debug */
|
||||||
|
@ -14862,15 +14862,15 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json,
|
|||||||
BGP_UPTIME_LEN, 0, NULL));
|
BGP_UPTIME_LEN, 0, NULL));
|
||||||
|
|
||||||
bgp_show_peer_reset(vty, p, NULL, false);
|
bgp_show_peer_reset(vty, p, NULL, false);
|
||||||
if (p->last_reset_cause_size) {
|
if (p->last_reset_cause) {
|
||||||
msg = p->last_reset_cause;
|
msg = p->last_reset_cause->data;
|
||||||
vty_out(vty,
|
vty_out(vty,
|
||||||
" Message received that caused BGP to send a NOTIFICATION:\n ");
|
" Message received that caused BGP to send a NOTIFICATION:\n ");
|
||||||
for (i = 1; i <= p->last_reset_cause_size;
|
for (i = 1; i <= p->last_reset_cause->size;
|
||||||
i++) {
|
i++) {
|
||||||
vty_out(vty, "%02X", *msg++);
|
vty_out(vty, "%02X", *msg++);
|
||||||
|
|
||||||
if (i != p->last_reset_cause_size) {
|
if (i != p->last_reset_cause->size) {
|
||||||
if (i % 16 == 0) {
|
if (i % 16 == 0) {
|
||||||
vty_out(vty, "\n ");
|
vty_out(vty, "\n ");
|
||||||
} else if (i % 4 == 0) {
|
} else if (i % 4 == 0) {
|
||||||
|
@ -1189,6 +1189,8 @@ static void peer_free(struct peer *peer)
|
|||||||
|
|
||||||
bgp_unlock(peer->bgp);
|
bgp_unlock(peer->bgp);
|
||||||
|
|
||||||
|
stream_free(peer->last_reset_cause);
|
||||||
|
|
||||||
memset(peer, 0, sizeof(struct peer));
|
memset(peer, 0, sizeof(struct peer));
|
||||||
|
|
||||||
XFREE(MTYPE_BGP_PEER, peer);
|
XFREE(MTYPE_BGP_PEER, peer);
|
||||||
|
@ -1716,8 +1716,7 @@ struct peer {
|
|||||||
* a new value to the last_reset reason
|
* a new value to the last_reset reason
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint16_t last_reset_cause_size;
|
struct stream *last_reset_cause;
|
||||||
uint8_t last_reset_cause[BGP_MAX_PACKET_SIZE];
|
|
||||||
|
|
||||||
/* The kind of route-map Flags.*/
|
/* The kind of route-map Flags.*/
|
||||||
uint16_t rmap_type;
|
uint16_t rmap_type;
|
||||||
|
Loading…
Reference in New Issue
Block a user