summaryrefslogtreecommitdiffstats
path: root/package/openwrt-packages/net/quagga-unstable/patches/130-confed_aspath_delete_on_prepend.patch
blob: 3970b13d91df11b8a4225fdee215806695f69d11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
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);