mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 11:30:30 +00:00
If we RX an OPEN with a bad ASN the NOTIFICATION we send should include the ASN
This commit is contained in:
parent
94f342861d
commit
c9e3a6f417
@ -914,6 +914,7 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)
|
|||||||
struct in_addr remote_id;
|
struct in_addr remote_id;
|
||||||
int mp_capability;
|
int mp_capability;
|
||||||
u_int8_t notify_data_remote_as[2];
|
u_int8_t notify_data_remote_as[2];
|
||||||
|
u_int8_t notify_data_remote_as4[4];
|
||||||
u_int8_t notify_data_remote_id[4];
|
u_int8_t notify_data_remote_id[4];
|
||||||
u_int16_t *holdtime_ptr;
|
u_int16_t *holdtime_ptr;
|
||||||
unsigned long local_addr;
|
unsigned long local_addr;
|
||||||
@ -946,6 +947,7 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)
|
|||||||
* that we do not know which peer is connecting to us now.
|
* that we do not know which peer is connecting to us now.
|
||||||
*/
|
*/
|
||||||
as4 = peek_for_as4_capability (peer, optlen);
|
as4 = peek_for_as4_capability (peer, optlen);
|
||||||
|
memcpy (notify_data_remote_as4, &as4, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Just in case we have a silly peer who sends AS4 capability set to 0 */
|
/* Just in case we have a silly peer who sends AS4 capability set to 0 */
|
||||||
@ -953,8 +955,10 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)
|
|||||||
{
|
{
|
||||||
zlog_err ("%s bad OPEN, got AS4 capability, but AS4 set to 0",
|
zlog_err ("%s bad OPEN, got AS4 capability, but AS4 set to 0",
|
||||||
peer->host);
|
peer->host);
|
||||||
bgp_notify_send (peer, BGP_NOTIFY_OPEN_ERR,
|
bgp_notify_send_with_data (peer,
|
||||||
BGP_NOTIFY_OPEN_BAD_PEER_AS);
|
BGP_NOTIFY_OPEN_ERR,
|
||||||
|
BGP_NOTIFY_OPEN_BAD_PEER_AS,
|
||||||
|
notify_data_remote_as4, 4);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -968,8 +972,10 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)
|
|||||||
{
|
{
|
||||||
zlog_err ("%s [AS4] NEW speaker using AS_TRANS for AS4, not allowed",
|
zlog_err ("%s [AS4] NEW speaker using AS_TRANS for AS4, not allowed",
|
||||||
peer->host);
|
peer->host);
|
||||||
bgp_notify_send (peer, BGP_NOTIFY_OPEN_ERR,
|
bgp_notify_send_with_data (peer,
|
||||||
BGP_NOTIFY_OPEN_BAD_PEER_AS);
|
BGP_NOTIFY_OPEN_ERR,
|
||||||
|
BGP_NOTIFY_OPEN_BAD_PEER_AS,
|
||||||
|
notify_data_remote_as4, 4);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -993,8 +999,10 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)
|
|||||||
zlog_err ("%s bad OPEN, got AS4 capability, but remote_as %u"
|
zlog_err ("%s bad OPEN, got AS4 capability, but remote_as %u"
|
||||||
" mismatch with 16bit 'myasn' %u in open",
|
" mismatch with 16bit 'myasn' %u in open",
|
||||||
peer->host, as4, remote_as);
|
peer->host, as4, remote_as);
|
||||||
bgp_notify_send (peer, BGP_NOTIFY_OPEN_ERR,
|
bgp_notify_send_with_data (peer,
|
||||||
BGP_NOTIFY_OPEN_BAD_PEER_AS);
|
BGP_NOTIFY_OPEN_ERR,
|
||||||
|
BGP_NOTIFY_OPEN_BAD_PEER_AS,
|
||||||
|
notify_data_remote_as4, 4);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user