quagga-unstable: Delete AS_CONFED_SEQUENCE when prepending an AS_SEQUENCE type segment
authorVasilis Tsiligiannis <acinonyx@openwrt.gr>
Sun, 26 Jul 2009 12:15:00 +0000 (12:15 +0000)
committerVasilis Tsiligiannis <acinonyx@openwrt.gr>
Sun, 26 Jul 2009 12:15:00 +0000 (12:15 +0000)
SVN-Revision: 17010

package/openwrt-packages/net/quagga-unstable/patches/130-confed_aspath_delete_on_prepend.patch [new file with mode: 0644]

diff --git a/package/openwrt-packages/net/quagga-unstable/patches/130-confed_aspath_delete_on_prepend.patch b/package/openwrt-packages/net/quagga-unstable/patches/130-confed_aspath_delete_on_prepend.patch
new file mode 100644 (file)
index 0000000..3970b13
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/bgpd/bgp_aspath.c
++++ b/bgpd/bgp_aspath.c
+@@ -1208,6 +1208,10 @@ aspath_prepend (struct aspath *as1, stru
+   while (seg1 && seg1->next)
+     seg1 = seg1->next;
++  /* Delete any AS_CONFED_SEQUENCE segment from as2. */
++  if (seg1->type == AS_SEQUENCE && seg2->type == AS_CONFED_SEQUENCE)
++    as2 = aspath_delete_confed_seq (as2);
++
+   /* Compare last segment type of as1 and first segment type of as2. */
+   if (seg1->type != seg2->type)
+     return aspath_merge (as1, as2);