]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: fix AS4_PATH attr flag check (BZ#676)
authorDenis Ovsienko <infrastation@yandex.ru>
Thu, 27 Oct 2011 16:04:08 +0000 (20:04 +0400)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 21 Nov 2011 14:35:48 +0000 (18:35 +0400)
AS_PATH is a well-known, transitive path attribute and cannot be flagged
as "Partial". This is what commit
77a20b8af32c926176f8492a086d9e4ec670496b implemented, but it did not
account, that bgp_attr_aspath() is also used to process AS4_PATH, which
is an optional, transitive path attribute and as such may be flagged as
"Partial". This change justfies the test condition.

bgpd/bgp_attr.c

index 4967e09a679b075d65ea5481ae167e805aea6607..2205e2679ea53203a0e33eddf1d11b4e57014e51 100644 (file)
@@ -826,7 +826,7 @@ bgp_attr_aspath (struct peer *peer, bgp_size_t length,
   total = length + (CHECK_FLAG (flag, BGP_ATTR_FLAG_EXTLEN) ? 4 : 3);
 
   /* Check the attribute flags                                          */
-  if (CHECK_FLAG (flag, BGP_ATTR_FLAG_PARTIAL))
+  if (!as4_path && CHECK_FLAG (flag, BGP_ATTR_FLAG_PARTIAL))
     {
       zlog (peer->log, LOG_ERR,
            "AS_PATH attribute must not be flagged as \"partial\" (%u)", flag);