mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 23:29:36 +00:00
[bgpd] bug #419: partial aspath-limit incorrectly causes session reset
2008-06-01 jfletche@gmail.com * bgp_attr.c: (bgp_attr_aspathlimit) fix silly bug in flags check that was causing BGP to drop sessions if it received a aspath-limit with partial set. Fixes bug #419.
This commit is contained in:
parent
0e7c124f87
commit
a15cfd16fc
@ -1,4 +1,11 @@
|
|||||||
|
2008-06-01 jfletche@gmail.com
|
||||||
|
|
||||||
|
* bgp_attr.c: (bgp_attr_aspathlimit) fix silly bug in flags check
|
||||||
|
that was causing BGP to drop sessions if it received a
|
||||||
|
aspath-limit with partial set. Fixes bug #419.
|
||||||
|
|
||||||
2008-04-10 Denis Ovsienko
|
2008-04-10 Denis Ovsienko
|
||||||
|
|
||||||
* bgp_aspath.[ch]: (aspath_filter_exclude) New function allows
|
* bgp_aspath.[ch]: (aspath_filter_exclude) New function allows
|
||||||
filtering out arbitrary ASns from AS_PATH attribute.
|
filtering out arbitrary ASns from AS_PATH attribute.
|
||||||
* bgp_aspath.[ch]: (aspath_print_vty) Accept suffix to let calling
|
* bgp_aspath.[ch]: (aspath_print_vty) Accept suffix to let calling
|
||||||
|
@ -695,7 +695,8 @@ bgp_attr_aspathlimit (struct peer *peer, bgp_size_t length,
|
|||||||
|
|
||||||
total = length + (CHECK_FLAG (flag, BGP_ATTR_FLAG_EXTLEN) ? 4 : 3);
|
total = length + (CHECK_FLAG (flag, BGP_ATTR_FLAG_EXTLEN) ? 4 : 3);
|
||||||
|
|
||||||
if (flag != (BGP_ATTR_FLAG_TRANS|BGP_ATTR_FLAG_OPTIONAL))
|
if (!CHECK_FLAG(flag, BGP_ATTR_FLAG_TRANS)
|
||||||
|
|| !CHECK_FLAG(flag, BGP_ATTR_FLAG_OPTIONAL))
|
||||||
{
|
{
|
||||||
zlog (peer->log, LOG_ERR,
|
zlog (peer->log, LOG_ERR,
|
||||||
"AS-Pathlimit attribute flag isn't transitive %d", flag);
|
"AS-Pathlimit attribute flag isn't transitive %d", flag);
|
||||||
@ -804,7 +805,7 @@ bgp_attr_aspath (struct peer *peer, bgp_size_t length,
|
|||||||
|| ! CHECK_FLAG (flag, BGP_ATTR_FLAG_TRANS))
|
|| ! CHECK_FLAG (flag, BGP_ATTR_FLAG_TRANS))
|
||||||
{
|
{
|
||||||
zlog (peer->log, LOG_ERR,
|
zlog (peer->log, LOG_ERR,
|
||||||
"Origin attribute flag isn't transitive %d", flag);
|
"As-Path attribute flag isn't transitive %d", flag);
|
||||||
bgp_notify_send_with_data (peer,
|
bgp_notify_send_with_data (peer,
|
||||||
BGP_NOTIFY_UPDATE_ERR,
|
BGP_NOTIFY_UPDATE_ERR,
|
||||||
BGP_NOTIFY_UPDATE_ATTR_FLAG_ERR,
|
BGP_NOTIFY_UPDATE_ATTR_FLAG_ERR,
|
||||||
|
Loading…
Reference in New Issue
Block a user