{"push_id":889062123,"size":86,"distinct_size":86,"ref":"refs/heads/take-3","head":"519f6ca1fd887fa13821a457e0c93a1445c1d3e0","before":"5ca6a961b105d704a87e6035221be5a8c4e9d9ee","commits":[{"sha":"a4138fbc6a4d85910a429578c97be63dbe923bce","author":{"email":"f3aee41145ed613719f8d1a0df687180999abdb6@cumulusnetworks.com","name":"Pradosh Mohapatra"},"message":"quagga: nexthop-tracking in zebra\n\nAdd next hop tracking support to Quagga. Complete documentation in doc/next-hop-tracking.txt.\n\nAddresses upstream comments.\n\n\"show ip bgp nexthop detail\" couldn't display multiple NHs due to a bug.\nFix that.\n\nFix reference counts for the nexthop cache entries\n\nSigned-off-by: Pradosh Mohapatra <pmohapat@cumulusnetworks.com>\nSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>\nSigned-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>\nSigned-off-by: Donald Sharp <sharpd@cumulusnetworks.com>\nSigned-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>\n\nFix reference counts for the nexthop cache entries.\n\nSigned-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/a4138fbc6a4d85910a429578c97be63dbe923bce"},{"sha":"5236ab11440b417c6777d88d608ccc443eebea69","author":{"email":"f7dae5427b3dec859a8db9747c62b0d6fc100992@cumulusnetworks.com","name":"Vipin Kumar"},"message":"bgpd: table-map feature\n\nCOMMAND:\n\ntable-map <route-map-name>\n\nDESCRIPTION:\n\nThis feature is used to apply a route-map on route updates from BGP to Zebra.\nAll the applicable match operations are allowed, such as match on prefix,\nnext-hop, communities, etc. Set operations for this attach-point are limited\nto metric and next-hop only. Any operation of this feature does not affect\nBGPs internal RIB.\n\nSupported for ipv4 and ipv6 address families. It works on multi-paths as well,\nhowever, metric setting is based on the best-path only.\n\nIMPLEMENTATION NOTES:\n\nThe route-map application at this point is not supposed to modify any of BGP\nroute's attributes (anything in bgp_info for that matter). To achieve that,\ncreating a copy of the bgp_attr was inevitable. Implementation tries to keep\nthe memory footprint low, code comments do point out the rationale behind a\nfew choices made.\n\nbgp_zebra_announce() was already a big routine, adding this feature would\nextend it further. Patch has created a few smaller routines/macros whereever\npossible to keep the size of the routine in check without compromising on the\nreadability of the code/flow inside this routine.\n\nFor updating a partially filtered route (with its nexthops), BGP to Zebra\nreplacement semantic of the next-hops serves the purpose well. However, with\nthis patch there could be some redundant withdraws each time BGP announces a\nroute thats (all the nexthops) gets denied by the route-map application.\nHandling of this case could be optimized by keeping state with the prefix and\nthe nexthops in BGP. The patch doesn't optimizing that case, as even with the\nredundant withdraws the total number of updates to zebra are still be capped\nby the total number of routes in the table.\n\nSigned-off-by: Vipin Kumar <vipin@cumulusnetworks.com>\nReviewed-by: Pradosh Mohapatra <pmohapat@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/5236ab11440b417c6777d88d608ccc443eebea69"},{"sha":"ebdd7b8c7749cb9c6f007c47554136a63fc32294","author":{"email":"0afbb0a4213923490de2664ec4da6c831a69d522@cumulusnetworks.com","name":"Dinesh Dutt"},"message":"Zebra: Use a fixed route metric when populating kernel\n\nThe route metric is not used by the Linux kernel and is irrelevant to\nthe forwarding decision made by the kernel. Metric is a parameter used\nonly by a routing protocol to compute best path(s) and to communicate this\ninfo to its peers. Consequently, there is no value in pushing the metric\nprovided by a protocol daemon to the kernel.\n\nThere is a significant advantage, at least on the Linux kernel, in pushing\na constant metric with a route populated by zebra. The metric is used as a\npriority field in the kernel and modifying the metric due to say topology\nchanges causes multiple routes to be inserted into the kernel, with differing\npriorities instead of replacing the existing one. This prevents us from\nusing replace semantic when a route changes.\n\nSo, this patch pushes a constant metric with a route populated by zebra.\n\nSigned-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/ebdd7b8c7749cb9c6f007c47554136a63fc32294"},{"sha":"e3da64b121e8b5b01a031442424f2fa76e116bf4","author":{"email":"046473b7332be0d01a6f0b66dce0095485a5b1ea@cumulusnetworks.com","name":"Daniel Walton"},"message":"The peer-groups parser is missing advertisement-interval and 'timers connect'\n\nSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/e3da64b121e8b5b01a031442424f2fa76e116bf4"},{"sha":"97c04f325bb5be44d993a21b5f9ccdb7183b7f6d","author":{"email":"f3aee41145ed613719f8d1a0df687180999abdb6@cumulusnetworks.com","name":"Pradosh Mohapatra"},"message":"Add a null check in bgp_address_del() function when connected addresses are removed.\n\nSigned-off-by: Pradosh Mohapatra <pmohapat@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/97c04f325bb5be44d993a21b5f9ccdb7183b7f6d"},{"sha":"0e4a3fe5ee948ec4cc69ffa71c1f13a816ce8e06","author":{"email":"be459340ddb9c8286fc08bebdce70ca287e03a1a@cumulusnetworks.com","name":"vivek"},"message":"BGPd: Make ipv6 unicast/multicast address-family work\n\nIn the absence of this patch, attempting to type \"address-family ipv6 unicast\"\nwould result in an \"Ambiguous command\" error and in the case of\n\"address-family ipv6 multicast\", the command would silently fail, without the\nprompt dropping into the address-family mode.\n\nThe cause is how the parse tree is constructed for ipv6 address family. There\nwas an error in extract.pl.in script and in vtysh.c files which assumed that\nthere was only address family ipv6 command, without unicast or multicast and\nso the command was failing.\n\nSigned-off-by: vivek <vivek@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/0e4a3fe5ee948ec4cc69ffa71c1f13a816ce8e06"},{"sha":"c3f388bc6c0efc350d465e0b166a2c1cb9a24837","author":{"email":"f3aee41145ed613719f8d1a0df687180999abdb6@cumulusnetworks.com","name":"Pradosh Mohapatra"},"message":"BGP: Show more meaningful outq value in 'show ip bgp summary' output.\n\n'outq' field in 'show ip bgp sum' displays the number of formatted packets\nto a peer. Since the route announcement follows an input-buffered pattern\n(i.e. adj-rib-out is a separate queue of routes per peer and packets are\nformatted from the routes at the time of TCP write), the outq field doesn't\nshow any interesting data worth watching.\n\nThe patch is to display the adj-rib-out queue depth instead.\n\nsigned-off-by: pmohapat@cumulusnetworks.com\nreviewed-by: dwalton@cumulusnetworks.com\n\nConflicts:\n\tbgpd/bgp_advertise.h\n\tbgpd/bgp_vty.c","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/c3f388bc6c0efc350d465e0b166a2c1cb9a24837"},{"sha":"15924fec51dc266ea244bced8575ab9145a88086","author":{"email":"f3aee41145ed613719f8d1a0df687180999abdb6@cumulusnetworks.com","name":"Pradosh Mohapatra"},"message":"BGP: Event-driven route announcement taking into account min route advertisement interval\n\nISSUE\n\nBGP starts the routeadv timer (peer->t_routeadv) to expire in 1 sec\nwhen a peer is established. From then on, the timer expires\nperiodically based on the configured MRAI value (default: 30sec for\nEBGP, 5sec for IBGP).  At the expiry, the write thread is triggered\nthat takes the routes from peer's sync FIFO (adj-rib-out) and sends\nUPDATEs. This has a few drawbacks:\n\n(1) Delay in new route announcement: Even when the last UPDATE message\n    was sent a while back, the next route change will necessarily have\n    to wait for routeadv expiry\n(2) CPU usage: The timer is always armed. If the operator chooses to\n    configure a lower value of MRAI (zero second is a preferred choice\n    in many deployments) for better convergence, it leads to high CPU\n    usage for BGP process, even at the times of no network churn.\n\nPATCH\n\nMake the route advertisement event-driven - When routes are added to\npeer's sync FIFO, check if the routeadv timer needs to be adjusted (or\nstarted). Conversely, do not arm the routeadv timer unconditionally.\n\nThe patch also addresses route announcements during read-only mode\n(update-delay).  During read-only mode operation, the routeadv timer\nis not started. When BGP comes out of read-only mode and all the\nroutes are processed, the timer is started for all peers with zero\nexpiry, so that the UPDATEs can be sent all at once. This leads to\n(near-)optimal UPDATE packing.\n\nFinally, the patch makes the \"max # packets to write to peer socket at\na time\" configurable. Currently it is hard-coded to 10. The command is\nat the top router-bgp mode and is called \"write-quanta <number>\". It\nis a useful convergence parameter to tweak.\n\nSigned-off-by: Pradosh Mohapatra <pmohapat@cumulusnetworks.com>\nReviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>\nSigned-off-by: Donald Sharp <sharpd@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/15924fec51dc266ea244bced8575ab9145a88086"},{"sha":"a16cb5b7e36e9f13730b69d9d322b675e5840f55","author":{"email":"0afbb0a4213923490de2664ec4da6c831a69d522@cumulusnetworks.com","name":"Dinesh G Dutt"},"message":"BGP: Fix FSM to handle active/passive connections better\n\nThe existing code didn't work well when dual connections resulted between\npeers during session bringup. This patch fixes that.\n\nSigned-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>\nSigned-off-by: Donald Sharp <sharpd@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/a16cb5b7e36e9f13730b69d9d322b675e5840f55"},{"sha":"2af3d32089114ac0a65d9e932aecd93192f9267d","author":{"email":"046473b7332be0d01a6f0b66dce0095485a5b1ea@cumulusnetworks.com","name":"Daniel Walton"},"message":"BGP doesn't count a route with an unreachable nexthop in PfxRcd\n\nSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/2af3d32089114ac0a65d9e932aecd93192f9267d"},{"sha":"727c7b32530eada3a02f8a69b4181eecd19facb1","author":{"email":"046473b7332be0d01a6f0b66dce0095485a5b1ea@cumulusnetworks.com","name":"dwalton@cumulusnetworks.com"},"message":"BGP: Save the last message from a peer that caused us to send a NOTIFICATION\n\nSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/727c7b32530eada3a02f8a69b4181eecd19facb1"},{"sha":"01dbfd2ec0df7ae82c297d6eb4a42bd26f1a5606","author":{"email":"f7dae5427b3dec859a8db9747c62b0d6fc100992@cumulusnetworks.com","name":"Vipin Kumar"},"message":"'neighbor <if-name> interface' config support in BGP including RA/Zebra changes.\n\nSigned-off-by: Vipin Kumar <vipin@cumulusnetworks.com>\nReviewed-by: Pradosh Mohapatra <pmohapat@cumulusnetworks.com>\n             Dinesh Dutt <ddutt@cumulusnetworks.com>\nSigned-off-by: Donald Sharp <sharpd@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/01dbfd2ec0df7ae82c297d6eb4a42bd26f1a5606"},{"sha":"11012ef2df754e1985ae361f871006b400aa5119","author":{"email":"0afbb0a4213923490de2664ec4da6c831a69d522@cumulusnetworks.com","name":"Dinesh Dutt"},"message":"BGPd: Support matching on local preference in route-map\n\nThis patch adds support for matching on local preference in\nBGP route-map.\n\nSigned-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/11012ef2df754e1985ae361f871006b400aa5119"},{"sha":"68420f529a5d85f2d1c0654aec55239d8d36a1af","author":{"email":"0afbb0a4213923490de2664ec4da6c831a69d522@cumulusnetworks.com","name":"Dinesh Dutt"},"message":"bgpd: bgpd-ibgp-policy-out-allow-mods.patch\n\nBGPd: Allow route-map policy modifications to also affect route reflectors.\n\nBy default, attribute modification via route-map policy out is ignored on\nreflected routes. This patch provides an option to allow this modification\nto occur. Once enabled, it affects all reflected routes.\n\nSigned-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/68420f529a5d85f2d1c0654aec55239d8d36a1af"},{"sha":"6ed4dbf001d6ac3f80af531c5cc4bb3121d5a9ee","author":{"email":"f7dae5427b3dec859a8db9747c62b0d6fc100992@cumulusnetworks.com","name":"Vipin Kumar"},"message":"bgpd: update prefix packing optimizations\n\nISSUE:\nDuring startup, BGP update prefix packing wasnt optimal and route installation\nwas found to be spread over.\n\nSOLUTION:\nWith this patch, update-delay post processing is serialized to achieve:\n a. better peer update packing\n    (which helps in reducing total number of BGP update packets)\n b. installation of the resulting routes in zebra as close to each others\n    as possible.\n    (which can help zebra batch its processing and updates to Kernel better)","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/6ed4dbf001d6ac3f80af531c5cc4bb3121d5a9ee"},{"sha":"57811d6b1a377f46b1ab446697d1352fe08187ca","author":{"email":"046473b7332be0d01a6f0b66dce0095485a5b1ea@cumulusnetworks.com","name":"Daniel Walton"},"message":"bgpd: Improve peer scaling\n\nReduce the amount of time it takes to bring up a large number of peers\n\nSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/57811d6b1a377f46b1ab446697d1352fe08187ca"},{"sha":"220af7cc155cd151be7749c65a49adfc3448d1ad","author":{"email":"f2726f1929fefd6e9b95787b98cd03f04332c5a5@cumulusnetworks.com","name":"James Li"},"message":"Zebra: Dissallow outside programs to delete Quagga routes\n\nDo not allow a program outside Quagga to delete a Quagga route from the kernel.\nTo delete a Quagga route, do it inside Quagga.\n\nSigned-off-by: James Li <jli@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/220af7cc155cd151be7749c65a49adfc3448d1ad"},{"sha":"cad6cbed71b7244221a900c42effb5ec6760c221","author":{"email":"0afbb0a4213923490de2664ec4da6c831a69d522@cumulusnetworks.com","name":"Dinesh G Dutt"},"message":"BGP: Reprocess the trigger points when an attached route map changes\n\nCurrently, modifications to route maps do not affect already processed\nroutes; they only affect new route updates. This patch addresses this\nlimitation.\n\nSigned-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>\nSigned-off-by: Donald Sharp <sharpd@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/cad6cbed71b7244221a900c42effb5ec6760c221"},{"sha":"17ae64b7f885e531bcc203447c612a0c95c785a8","author":{"email":"046473b7332be0d01a6f0b66dce0095485a5b1ea@cumulusnetworks.com","name":"Daniel Walton"},"message":"Fix \"no set metric\" for ospf6 and RIP\n\nSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/17ae64b7f885e531bcc203447c612a0c95c785a8"},{"sha":"a0c326ba71eb5cb12607ccea07f5ca9de43252e3","author":{"email":"046473b7332be0d01a6f0b66dce0095485a5b1ea@cumulusnetworks.com","name":"Daniel Walton"},"message":"Make \"no redistribute\" always remove the redistribute statement\n\nSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>","distinct":true,"url":"https://api.github.com/repos/donaldsharp/quagga/commits/a0c326ba71eb5cb12607ccea07f5ca9de43252e3"}]}